Node 네트워크
Node 네트워크
모든 노드 공통
- 네트워크 인터페이스: 최소 1개 이상의 네트워크 인터페이스를 가져야한다.
- IP 주소: 노드가 가진 네트워크 인터페이스에 IP가 할당되어 있어야 한다.
- 고유한 식별자
- Hostname: 클러스터 내에서 유일해야한다. (cf: 이건 proxmox에서도 그랬음 -> Proxmox 호스트네임 주의점)
- Mac 주소: 클러스터 내에서 유일해야한다.
정보
- 위의 요구사항들을 보고 엥? 너무 당연한 얘기들 아닌가? 자동으로 되는거 아닌가? 라고 생각할 수 있다.
- 하지만, 가장 많이 겪는 오류 중 하나이다.
- 예를들어 VM을 Clone 하여 노드를 생성할 경우, MAC 주소나 Hostname이 중복되어 안되는 경우가 매우 많다. (매우 주의)
포트 구성

마스터 노드
| 프로토콜 | 포트 범위 | 프로세스/컴포넌트 | 설명 |
|---|---|---|---|
| TCP | 6443 | Kubernetes API Server | 워커 노드, Kubectl, 외부 사용자 등 모든 요청이 들어오는 통로 |
| TCP | 2379-2380 | etcd server client API | 2379: 클라이언트 통신용2380: 다중 마스터 구성 시 etcd 노드 간 데이터 동기화용 |
| TCP | 10250 | Kubelet API | 마스터 노드 자체의 Kubelet 통신용 (마스터에도 Kubelet 존재 가능) |
| TCP | 10259 | kube-scheduler | 스케줄러 동작 포트 |
| TCP | 10257 | kube-controller-manager | 컨트롤러 매니저 동작 포트 |
워커 노드
| 프로토콜 | 포트 범위 | 프로세스/컴포넌트 | 설명 |
|---|---|---|---|
| TCP | 10250 | Kubelet API | 마스터 노드(API Server)가 워커 노드의 상태를 확인하고 명령을 내릴 때 사용 |
| TCP | 30000-32767 | NodePort Services | 외부 사용자가 배포된 서비스(애플리케이션)에 접근하기 위해 예약된 포트 범위 |
팁
클러스터를 구성할 때 위 포트들이 열려있는지 확인해야하는 요소
- 노드 자체 방화벽
iptables규칙- (클라우드 환경일 경우) 보안 그룹
알아두어야 할 네트워크 명령어 (중요)
ip link
- 시스템에 존재하는 모든 네트워크 인터페이스(예:
eth0,docker0,cni0)의 목록과 상태(UP/DOWN), MAC 주소를 확인하는 명령어
ip addr
- 각 네트워크 인터페이스에 할당된 IP 주소 정보를 확인하는 명령어
ip addr add 192.168.1.10/24 dev eth0
eth0인터페이스에192.168.1.10IP 주소를 수동으로 할당하는 명령어- 디버깅 할 때, 인터페이스에 IP 주소가 할당되어있지 않을 경우에 사용한다.
ip route
- 현재 설정된 라우팅 테이블을 확인한다. 패킷이 목적지로 가기 위해 어떤 인터페이스와 게이트웨이를 거치는지 파악할 때 사용한다.
ip route add 192.168.1.0/24 via 192.168.2.1
192.168.1.0/24대역으로 가는 패킷을192.168.2.1게이트웨이를 통해 보내도록 정적 경로(Static Route)를 추가하는 명령어- 디버깅 할 때, 라우팅 테이블이 제대로 설정되어있지 않을 경우 이를 설정할 때 사용한다.
arp
- ARP 테이블을 확인합니다. 특정 IP 주소와 매핑된 물리적 MAC 주소를 확인할 때 사용한다.
- ARP - IP 주소를 MAC 주소로 바꿔주는 프로토콜
- 디버깅 할 때, IP 주소와 MAC 주소가 맞지 않을 경우 이를 설정할 때 사용한다.
netstat -plnt
- 현재 서버에서 수신 대기 중(Listening)인 TCP 포트와 해당 프로그램을 확인한다.
-p: 프로그램(PID/이름) 표시-l: Listening 상태만 표시-n: 호스트명 대신 숫자로 표시 (IP:Port)-t: TCP 프로토콜만 표시
- 쿠버네티스 필수 포트(6443, 10250 등)가 정상적으로 열려있는지 확인할 때 사용한다.
route
- 라우팅 테이블을 확인합니다 (
ip route와 유사하지만 구형 명령어이며,net-tools패키지에 포함됨).
cat /proc/sys/net/ipv4/ip_forward
- 리눅스 커널의 IP 포워딩 활성화 여부를 확인한다.
1: 활성화 (패킷을 다른 인터페이스로 전달 가능)0: 비활성화
- 쿠버네티스 파드(Pod) 간 통신을 위해 반드시
1로 설정되어 있어야 합니다.- 이에 대한 내용 정리 -> IP 포워딩 활성화
레퍼런스
- https://kubernetes.io/docs/reference/networking/ports-and-protocols/
- Udemy - Certified Kubernetes Administrator (CKA) with Practice Tests (Mumshad)