본문 바로가기
Server

Rocky_Linux에 Docker와 Kubernetes 설치하기_2

by Lcoding 2025. 2. 1.
반응형

안녕하세요.

 

오늘은 VMware에 설치된 Rocky_Linux에 Docker와 Kubernetes 설치하기 2편으로  Kubernetes를 설치해보겠습니다.

 

* Rocky_Linux는  RedHat 계열이기에 apt가 아닌 dnf를 이용하여 패키지 설치를 진행하였습니다.

 

1. Swap 비활성화 명령어

- Kubernetes는 swap이 활성화된 상태에서 제대로 동작하지 않습니다. 

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

 

2. 방화벽 설정 (필요한 포트 열기)
마스터 노드에서는 다음 포트를 열어야 합니다.

sudo firewall-cmd --permanent --add-port=6443/tcp  # API Server
sudo firewall-cmd --permanent --add-port=2379-2380/tcp  # etcd
sudo firewall-cmd --permanent --add-port=10250/tcp  # Kubelet
sudo firewall-cmd --permanent --add-port=10251-10252/tcp  # Scheduler & Controller Manager
sudo firewall-cmd --reload

 

워커 노드에서는 다음 포트를 열어야 합니다.

sudo firewall-cmd --permanent --add-port=10250/tcp  # Kubelet
sudo firewall-cmd --permanent --add-port=30000-32767/tcp  # NodePort 서비스
sudo firewall-cmd --reload

 

3. SELinux 비활성화

sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config

 

4. IP Forwarding 활성화

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
EOF

sudo sysctl --system

 

 

 

 

 

5. Docker 컨테이너 런타임 설정

- Kubernetes는 containerd를 기본 런타임으로 사용하므로 설정이 필요합니다.

sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml >/dev/null
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
sudo systemctl restart containerd

 

6. Kubernetes 패키지 설치
- Kubernetes 저장소 추가

cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/repodata/repomd.xml.key
EOF

 

7. kubeadm, kubelet, kubectl 설치

sudo dnf install -y kubelet kubeadm kubectl
sudo systemctl enable --now kubelet

 

 

 

 

8. 마스터 노드 설정

- 클러스터 초기화
마스터 노드에서 다음 명령어를 실행합니다.

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

 

출력되는 kubeadm join이후 명령어를 복사해 둡니다. 나중에 워커 노드를 추가할 때 사용됩니다.

 

 

9. kubectl 설정

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


이제 kubectl get nodes 명령어를 실행하면 마스터 노드가 NotReady 상태로 나올 것입니다. 

 

NotReady 상태

 

 

10. CNI 네트워크 플러그인 설치


Kubernetes 클러스터는 네트워크 플러그인이 필요합니다. Calico를 설치합니다.

kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/calico.yaml

 

1~3분정도 기다린 후, 다시 노드 상태를 확인합니다.

 

kubectl get nodes

 

모든 노드가 Ready 상태라면 성공적으로 클러스터가 구축된 것입니다.

 

Ready로 변경

 

11. 워커 노드 추가

각 워커 노드에서 마스터 노드에서 제공한 kubeadm join 명령어를 실행하면 됩니다.

sudo kubeadm join 192.168.1.100:6443 --token abcdef.1234567890abcdef \
    --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

 

이제 마스터 노드에서 kubectl get nodes 를 실행하면 워커 노드가 추가된 것을 확인할 수 있습니다.

12. 클러스터 검증

- 모든 노드 확인

kubectl get nodes



13. 파드 실행 테스트

kubectl run nginx --image=nginx --port=80
kubectl get pods


잘 실행된다면 Kubernetes 클러스터 구성이 완료된 것입니다.

 

여기까지 Kubernetes 설치 및 클러스터 구성을 진행해보았습니다.

 

감사합니다.

 

1편 바로가기

https://lcoding.tistory.com/200

 

Rocky_Linux에 Docker와 Kubernetes 설치하기_1

안녕하세요. 오늘은 VMware에 설치된 Rocky_Linux에 Docker와 Kubernetes 설치하기 1편으로 Docker를 설치해보겠습니다. Rocky_Linux는  RedHat 계열이기에 apt가 아닌 dnf를 이용하여 패키지 설치를 진행하였습

lcoding.tistory.com

 

반응형

# 로딩 화면 동작 코드(Code) 설정하기
loading