반응형
Kubernetes Cluster 구축하는 방법
우분투 24.04 LTS 환경에서 1 컨트롤 플레인과 3 워커 노드로 구성하는 Kubernetes 클러스터 구축 방법입니다.
쿠버네티스 클러스터 구성 요소
Kubernetes Cluster Architecture
1. 시스템 준비(모든 노드)
필수 패키지 설치
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl gpg
Swap 비활성화
sudo swapoff -a
sudo sed -i '/ swap / s/^/#/' /etc/fstab
커널 모듈 설정
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
sysctl 설정
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
sudo sysctl --system
2. Container Runtime 설치(모든 노드)
containerd 권장
더보기
---
Docker 설치
curl -fsSL https://get.docker.com -o get-docker.sh
sudo bash get-docker.sh
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
newgrp docker
도커 데몬 systemd cgroup 설정
sudo mkdir -p /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
sudo systemctl restart docker
---
설치
sudo apt install -y containerd
sudo systemctl enable --now containerd
기본 설정 생성
sudo mkdir -p /etc/containerd
sudo sh -c "containerd config default | sudo tee /etc/containerd/config.toml"
systemd cgroup 사용하도록 수정
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
재시작
sudo systemctl restart containerd
3. Kubernetes 설치(모든 노드)
KUBERNETES_VERSION=v1.33
GPG 키 추가
sudo mkdir -p -m 755 /etc/apt/keyrings
sudo curl -fsSL https://pkgs.k8s.io/core:/stable:/${KUBERNETES_VERSION}/deb/Release.key \
| sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
apt repo 추가
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
kubeadm, kubelet, kubectl 설치
sudo apt update
Control Plane Node
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
Worker Node
sudo apt install -y kubelet kubeadm
sudo apt-mark hold kubelet kubeadm
설치 확인
kubelet --version
kubeadm version --output short
kubectl version --client
4. Control Plane 초기화 (kc-controlplane-223)
sudo kubeadm init --pod-network-cidr=10.10.0.0/16
kubeadm join 명령어는 Worker 노드에서 사용
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
5. CNI 플러그인 설치 (Calico 예시)
CALICO_VERSION=v3.30.2
curl -fsSL https://raw.githubusercontent.com/projectcalico/calico/${CALICO_VERSION}/manifests/calico.yaml -O calico.yaml
sed -i 's/cidr: 192\.168\.0\.0\/16/cidr: 10.10.0.0\/16/g' calico.yaml
kubectl apply -f calico.yaml
6. Worker 노드 조인 (kc-node-225, 226, 227)
sudo kubeadm join 192.168.50.223:6443 --token <TOKEN> \
--discovery-token-ca-cert-hash sha256:<HASH>
7. 클러스터 확인 (Control Plane)
kubectl get nodes -o wide
KubernetesCluster
KubernetesCluster
KubernetesCluster
728x90
반응형
'리눅스' 카테고리의 다른 글
VMware ESXi의 평가판 라이선스를 갱신하는 방법 (0) | 2025.08.25 |
---|---|
우분투 24.04에서 PAM 기반 비밀번호 유효성 제한 및 계정 정책 설정 (0) | 2025.08.19 |
CentOS 7에서 pam_faillock 모듈을 사용해서 계정 잠금 정책을 설정하는 방법 (1) | 2025.08.18 |
우분투 서버에 NGINX, PHP-FPM, Redis, PostgreSQL을 설치하고 연동하는 방법 (0) | 2025.08.08 |
우분투 24.04에서 StorCLI를 설치하는 방법 (3) | 2025.08.08 |