이번 글에서는 쿠버네티스 클러스터에서 마스터 노드와 워커 노드에 필요한 네트워킹 설정에 대해 알아보겠습니다. 쿠버네티스 클러스터는 마스터 노드와 워커 노드로 구성되며, 각 노드는 네트워크에 연결된 인터페이스가 최소 하나 있어야 합니다. 이러한 설정은 클러스터의 안정성과 보안을 보장하기 위해 필수적입니다.
각 노드의 네트워크 인터페이스에는 고유한 IP 주소와 MAC 주소가 필요합니다. 특히, 기존 가상 머신(VM)을 복제하여 노드를 만들 경우, 이 설정을 주의 깊게 확인해야 합니다. 중복된 MAC 주소나 IP 주소는 네트워크 충돌을 일으킬 수 있기 때문입니다.
구성 | 포트번호 |
---|---|
API 서버 (kube-apiserver) | 6443 |
kubelet | 10250 |
kube-scheduler | 10259 |
kube-controller-manager | 10257 |
워커 노드의 서비스 포트 | 30000-32767 |
etcd 서버 | 2379, 2380 |
쿠버네티스 문서 페이지에서 열어야 할 포트 목록을 확인할 수 있습니다. 네트워크 설정 시 방화벽, IP 테이블 규칙 또는 GCP, Azure, AWS와 같은 클라우드 환경의 네트워크 보안 그룹에서 이 포트를 고려해야 합니다. 문제가 발생할 경우, 이 부분을 먼저 확인하는 것이 문제 해결의 첫걸음이 될 수 있습니다.
방화벽에서 포트를 열 때의 예시는 다음과 같습니다:
# API 서버 포트 열기
sudo iptables -A INPUT -p tcp --dport 6443 -j ACCEPT
# kubelet 포트 열기
sudo iptables -A INPUT -p tcp --dport 10250 -j ACCEPT
# etcd 포트 열기
sudo iptables -A INPUT -p tcp --dport 2379 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 2380 -j ACCEPT
# 서비스 포트 범위 열기
sudo iptables -A INPUT -p tcp --dport 30000:32767 -j ACCEPT
쿠버네티스 클러스터의 안정적이고 안전한 운영을 위해 네트워킹 설정은 매우 중요합니다. 각 노드의 네트워크 인터페이스 설정을 철저히 하고, 필요한 포트를 정확하게 열어주어야 합니다. 이를 통해 클러스터의 성능과 보안을 최적화할 수 있습니다. 네트워킹 설정을 잘못하면 클러스터가 불안정해질 수 있으므로, 반드시 쿠버네티스 문서를 참조하여 정확한 설정을 진행하시기 바랍니다.