반응형
쿠버네티스 워커 노드를 설치하고 클러스터에 참여시키기
kubeadm 초기화
kubeadm reset
kubelet와 containerd 서비스 비활성화
sudo systemctl --now disable kubelet
sudo systemctl --now disable containerd
방화벽(UFW) 중지 및 비활성화
sudo systemctl stop ufw && sudo systemctl disable ufw
Swap 비활성화
sudo swapoff -a
sudo sed -i '/\s*swap\s*/ s/^/#/' /etc/fstab
커널 모듈 로드 설정 및 로드
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
커널 파라미터 네트워크 설정 및 적용
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system
시스템 리부팅
sudo reboot
NTP(Network Time Protocol) 설치 및 활성화
sudo apt-get install -y ntp
sudo systemctl --now enable ntp
ntpq -p
필수 패키지 설치
sudo apt-get update
sudo apt-get install -y gnupg2 software-properties-common apt-transport-https ca-certificates lsb-release curl
728x90
Containerd 설치
Docker 리포지토리 설정
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key --keyring /etc/apt/trusted.gpg.d/docker.gpg add -
echo "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
Containerd 설치 및 설정
sudo apt-get update
sudo apt-get install -y containerd.io
sudo systemctl --now enable containerd
sudo mkdir -p /etc/containerd
sudo containerd config default | sudo tee /etc/containerd/config.toml
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml
sudo systemctl restart containerd
쿠버네티스 설치
쿠버네티스 리포지토리 설정
KUBERNETES_VERSION="v1.30"
sudo mkdir -p -m 755 /etc/apt/keyrings
curl -fsSL https://pkgs.k8s.io/core:/stable:/${KUBERNETES_VERSION}/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:/${KUBERNETES_VERSION}/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list
쿠버네티스 설치 및 고정
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo systemctl --now enable kubelet
sudo apt-mark hold kubelet kubeadm kubectl
워커 노드 클러스터 구성
쿠버네티스 클러스터에 워커 노드로 참여합니다.
kubeadm join 192.168.10.110:6443 \
--token 5do9rg.al3ah30r66t8sem8 \
--discovery-token-ca-cert-hash sha256:d0283d0436c3737c581badda1f57550a683813ff50d0d6bb6f9f9ae600c8d630
control-plane에서 워커 노드가 클러스터에 참여하는지 확인합니다.
- 클러스터 상태 확인
kubectl get nodes
NAME STATUS ROLES AGE VERSION
node111 Ready control-plane 43h v1.30.3
node112 Ready control-plane 43h v1.30.3
node113 Ready control-plane 43h v1.30.3
worker1 Ready <none> 9s v1.27.16
토근 확인 및 재생성
- kubeadm 토큰은 유효 기간이 있기 때문에 만료될 수 있습니다.
- 마스터 노드에서 새로운 토큰을 생성하고 discovery-token-ca-cert-hash를 얻을 수 있습니다.
kubeadm token create --print-join-command
$ kubeadm token create --print-join-command
kubeadm join 192.168.10.110:6443 --token 5do9rg.al3ah30r66t8sem8 --discovery-token-ca-cert-hash sha256:d0283d0436c3737c581badda1f57550a683813ff50d0d6bb6f9f9ae600c8d630
kubeadm token list
$ kubeadm token list
TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS
5do9rg.al3ah30r66t8sem8 23h 2024-08-17T10:27:09Z authentication,signing <none> system:bootstrappers:kubeadm:default-node-token
728x90
반응형
'리눅스' 카테고리의 다른 글
쿠버네티스에 Ingress Controller를 설치하고 이를 통해 외부에서 NGINX 웹 서비스에 접근할 수 있도록 설정하는 방법 (0) | 2024.08.19 |
---|---|
쿠버네티스 클러스터에서 노드를 새로운 노드로 교체하는 방법 (0) | 2024.08.16 |
쿠버네티스 클러스터에서 노드를 재기동하는 방법 (0) | 2024.08.16 |
쿠버네티스 서비스 유형 (0) | 2024.08.16 |
쿠버네티스 클러스터를 구현하는 방법 (0) | 2024.08.15 |