Ubuntu에 k8s 설치하기
2025. 2. 21. 22:09ㆍk8s
참조: https://white-polarbear.tistory.com/161
쿠버네티스(Kubernetes) 실습 환경 구성 - 초기 구성
■ 쿠버네티스 실습 환경Oracle VirtualBox 최신 버전Ubuntu 24.04 Desktop 버전도커 최신 버전 사용쿠버네티스 버전 1.28 → 1.29 (업그레이드 진행)런타임 환경 containerd 사용3-Node Cluster 환경 구성 (Master Plane
white-polarbear.tistory.com
환경설정
# 패키지 설정
sudo apt-get install -y net-tools openssh-server vim tree htop
# 방화벽 제거(필요한 경우만)
sudo ufw disable
sudo ufw status
# 메모리 swap 제거
sudo swapoff -a
free
sudo sed -i '/swap/s/^/#/' /etc/fstab
# NTP 설정
sudo apt-get install -y ntp
sudo systemctl restart ntp
sudo systemctl status ntp
sudo ntpq -p
# containerd 환경구성
cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
overlay
br_netfilter
EOF
cat /etc/modules-load.d/containerd.conf
sudo modprobe overlay
sudo modprobe br_netfilter
# 통신 구성
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
cat /etc/modules-load.d/k8s.conf
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
cat /etc/sysctl.d/k8s.conf
cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
cat /etc/sysctl.d/99-kubernetes-cri.conf
sudo sysctl --system
containerd 설치
sudo apt install -y containerd
sudo mkdir -p /etc/containerd
sudo containerd config default | sudo tee /etc/containerd/config.toml
sudo vi /etc/containerd/config.toml
# SystemdCgroup = true 설정변경
---------------------------------------------------
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
..
SystemdCgroup = true
---------------------------------------------------
sudo systemctl restart containerd.service
sudo systemctl status containerd.service
k8s 설치
sudo apt-get update
# repository 공개키 다운로드 및 설정
sudo apt-get install -y apt-transport-https ca-certificates curl gpg
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-cache policy kubeadm
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
# 업데이트 방지
sudo apt-mark hold kubelet kubeadm kubectl
# 버전 확인
kubeadm version
kubectl version
kubelet --version
# 자동 시작 등록
sudo systemctl daemon-reload
sudo systemctl restart kubelet.service
sudo systemctl enable --now kubelet.service
k8s 초기화
sudo kubeadm init
# kubectl 사용을 위한 환경 설정
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# 환경변수 등록
vi .profile
-----------------------------------------------------
export KUBECONFIG=$HOME/.kube/config
-----------------------------------------------------
source .profile
echo $KUBECONFIG
# 확인: node 상태가 Reday가 되어야 함
kubectl get node
network plugin 설치
# plugin이 없으면, coredns가 배포안됨
kubectl get pod -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-5dd5756b68-ppv9m 0/1 ContainerCreating 0 12m
kube-system coredns-5dd5756b68-vzv5d 0/1 ContainerCreating 0 12m
kube-system etcd-barisein-thinkpad-x220 1/1 Running 838 12m
kube-system kube-apiserver-barisein-thinkpad-x220 1/1 Running 893 12m
kube-system kube-controller-manager-barisein-thinkpad-x220 1/1 Running 0 12m
kube-system kube-proxy-x9cvc 1/1 Running 0 12m
kube-system kube-scheduler-barisein-thinkpad-x220 1/1 Running 927 12m
# calico 설치
curl -O https://raw.githubusercontent.com/gasida/KANS/main/kans3/calico-kans.yaml
kubectl apply -f calico-kans.yaml
kubectl get pod -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-97d84d657-rhvsn 1/1 Running 0 82s
kube-system calico-node-m5752 1/1 Running 0 82s
kube-system coredns-5dd5756b68-ppv9m 1/1 Running 0 16m
kube-system coredns-5dd5756b68-vzv5d 1/1 Running 0 16m
kube-system etcd-barisein-thinkpad-x220 1/1 Running 838 16m
kube-system kube-apiserver-barisein-thinkpad-x220 1/1 Running 893 16m
kube-system kube-controller-manager-barisein-thinkpad-x220 1/1 Running 0 16m
kube-system kube-proxy-x9cvc 1/1 Running 0 16m
kube-system kube-scheduler-barisein-thinkpad-x220 1/1 Running 927 16m
'k8s' 카테고리의 다른 글
Worker node 생성 (0) | 2025.02.22 |
---|---|
Master node에 Pod 배포하기 (0) | 2025.02.21 |
Node status가 NotReady 인경우 (0) | 2025.02.20 |
error: error loading config file "/etc/kubernetes/admin.conf": open /etc/kubernetes/admin.conf: permission denied (0) | 2025.02.20 |
K8s default endpoints: unix:///var/run/dockershim.sock 변경하기 (0) | 2025.02.20 |