네트워크 인터페이스 설정으로 Kubernetes 안정성 높이기

1–2분

Kubernetes를 멀티 인터페이스 환경에서 설치할 땐 꼭 네트워크 인터페이스를 나눠서 설정해야 합니다. 그렇지 않으면 kubelet이나 CNI가 엉뚱한 IP를 선택해 통신 장애나 설치 실패로 이어질 수 있어요.

이번 글에서는 다음을 기준으로 정리할게요!

  • node-ipiface 설정이 왜 필요할까?
  • 실제 설치 과정
  • 네트워크 흐름 예시로 개념 쉽게 이해하기

✅ 왜 인터페이스를 나눠야 할까?

클러스터가 여러 NIC(네트워크 인터페이스 카드)를 갖고 있다면, 다음 세 가지 네트워크가 각각 다를 수 있어요

  • external network – 사용자 접근 (예: 17.x.x.x)
  • internal network – 노드 간 통신 (예: 192.168.x.x)
  • pod network – Pod 간 통신 (예: 10.x.x.x)

✅통신 Flow #1 – 외부 사용자가 클러스터에 접근하는 경우

왼쪽 그림처럼 외부 사용자가 접근할 때는, external → internal → pod 네트워크 순으로 트래픽이 흐릅니다.

✅통신 Flow #2 – Pod 간 내부 통신

오른쪽은 내부 Pod끼리 통신하는 경우입니다. 이때는 internal network와 pod network(VxLAN)를 주로 사용하죠.

👉 이런 구조에서 어떤 인터페이스를 사용할지 명확하게 지정하지 않으면 통신이 꼬이게 됩니다.


✅ 설치 전 필수 설정 – IP 지정

kubelet에 node-ip 지정

# node ip 사전 설정
echo 'KUBELET_EXTRA_ARGS=--node-ip=172.20.245.103' | sudo tee /etc/default/kubelet


→ kubelet이 사용할 IP를 명확히 지정합니다 (eth1 같은 내부 NIC의 IP).


✅ Kubernetes 설치 과정

1. kubeadm 설정 파일 작성

# kubeadm-init.yaml
apiVersion: kubeadm.k8s.io/v1beta3
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: 172.20.245.102  # master 노드의 내부 NIC IP

---
apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
controlPlaneEndpoint: 172.20.245.102:6443  # VIP 또는 마스터 IP
networking:
  podSubnet: 10.244.0.0/16  # Flannel 설정에 맞춰 사용
kubernetesVersion: "v1.27.14"


2. 클러스터 초기화

kubeadm init --config kubeadm-init.ya


✅ Flannel 설치 시 iface 설정

Flannel은 Pod 간 통신에 사용하는 CNI 플러그인이에요. --iface 옵션을 통해 어떤 인터페이스를 사용할지 지정해줘야 합니다:

# flannel.yaml 예시
- name: kube-flannel
  command:
  - /opt/bin/flanneld
  - --ip-masq
  - --kube-subnet-mgr
  - --iface=eth1  # 내부 통신에 사용할 NIC

적용 명령어:

kubectl apply -f flannel.yaml


✅ 정리

설정 항목역할예시 IP
node-ipkubelet이 사용할 IP 설정172.20.245.103
advertiseAddress마스터가 광고할 API IP172.20.245.102
controlPlaneEndpoint외부에서 접근할 VIP 혹은 IP172.20.245.102:6443
–ifaceFlannel이 사용할 인터페이스 지정eth1

📌 마무리

멀티 인터페이스 환경에서는 “어떤 네트워크가 어떤 역할을 하는지” 명확히 나누는 것이 핵심입니다.

  • kubelet에는 -node-ip
  • Flannel에는 -iface

이 설정이 제대로 되어 있어야 안정적인 설치와 통신이 가능합니다.

그림과 흐름만 잘 이해하면, 실무에서도 확실히 적용할 수 있어요.