본문 바로가기

DKE/Kubernetes

Kubernetes 설치하기 (Ubuntu 20.04) / 2023.06.06

1. 모든 노드 (마스터 및 워커) 에서 아래 작업 수행

1-1. 각 노드에서 권한 변경

sudo su

1-2. 모든 노드에서 swap, 방화벽 비활성화

swapoff -a
sed -i '/swap/d' /etc/fstab
sudo ufw disable

1-3. 쿠버네티스 설치에 필요한 패키지들 추가

apt-get update && apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
  deb https://apt.kubernetes.io/ kubernetes-xenial main
  EOF
apt-get update

1-4. 쿠버네티스 패키지 설치

apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl

2. 마스터 노드에서 초기화 수행

sudo kubeadm init --pod-network-cidr=192.168.0.0/16

초기화 완료시 kubeadm join 메시지가 뜨는데 기록해두기!!!!!  추후 워커 노드 조인할 때 필요

* 오류 (container runtime is not running) 

[ERROR CRI]: container runtime is not running: output: time="2023-06-07T17:14:55+09:00" level=fatal msg="validate service connection: CRI v1 runtime API is not implemented for endpoint \"unix:///var/run/containerd/containerd.sock\": rpc error: code = Unimplemented desc = unknown service runtime.v1.RuntimeService"
#명령어 차례대로 실행
apt remove containerd
apt update
apt install containerd.io
rm /etc/containerd/config.toml
systemctl restart containerd

3. 초기화가 완료된 후, 마스터노드에서 다음 명령어를 실행하여 Kubectl 구성 로드 (root에서도 수행)

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=$HOME/.kube/config

4. 워커 노드 추가 각 워커 노드 모두 수행 

kubeadm join <마스터 노드 IP>:6443 --token <Token 값> --discovery-token-ca-cert-hash <Cert 해시값>

5. 마스터 노드에서 노드 검증

kubectl get nodes

6. Calico 설치

curl https://raw.githubusercontent.com/projectcalico/calico/v3.26.0/manifests/calico.yaml -O

kubectl apply -f calico.yaml

7. 최종 확인

kubectl get nodes
kubectl get pods -A