본문 바로가기
DevOps/cilium

Kubeadm Configuration 을 사용하여 node ip 지정

by 서어켜엉 2025. 7. 20.

kubeadm에서 Node IP 지정 방식 비교

kubeadm으로 Kubernetes 클러스터를 구성할 때 노드 IP를 지정하는 두 가지 방법이 있다:

  1. Config 파일 방식: YAML 설정 파일에서 nodeRegistration.kubeletExtraArgs.node-ip 지정
  2. Command Line 방식: --node-ip 옵션으로 직접 지정

kubeadm 명령어를 Config 파일로 변환하기

기존 명령어

Control plane (192.168.10.100 지정)

kubeadm init --token 123456.1234567890123456 --token-ttl 0 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/16 --apiserver-advertise-address=192.168.10.100 --cri-socket=unix:///run/containerd/containerd.sock >/dev/null 2>&1

Worker node (192.168.10.101 지정)

kubeadm join --token 123456.1234567890123456 --discovery-token-unsafe-skip-ca-verification --node-ip=192.168.10.101 192.168.10.100:6443 >/dev/null 2>&1 

Config 파일로 변환

kubeadm-init-config.yaml (Control plane)

apiVersion: kubead[http://m.k8s.io/v1beta3](http://m.k8s.io/v1beta3)  
kind: InitConfiguration  
bootstrapTokens:  
  token: "123456.1234567890123456"  
  ttl: "0"  
nodeRegistration:  
  criSocket: "unix:///run/containerd/containerd.sock"  
localAPIEndpoint:  
  advertiseAddress: "192.168.10.100"  
---  
apiVersion: kubead[http://m.k8s.io/v1beta3](http://m.k8s.io/v1beta3)  
kind: ClusterConfiguration  
networking:  
  podSubnet: "10.244.0.0/16"  
  serviceSubnet: "10.96.0.0/16"  

kubeadm-join-config.yaml (Worker node)

apiVersion: kubeadm.k8s.io/v1beta3
kind: JoinConfiguration
discovery:
  bootstrapToken:
    token: "123456.1234567890123456"
    apiServerEndpoint: "192.168.10.100:6443"
    unsafeSkipCAVerification: true
nodeRegistration:
  kubeletExtraArgs:
    node-ip: "192.168.10.101"

사용법

컨트롤 플레인

kubeadm init --config=kubeadm-config.yaml

워커 노드

kubeadm join --config=kubeadm-join-config.yaml

장단점 비교

구분 Config 파일 방식 Command Line 방식
가독성 구조화된 설정으로 이해하기 쉬움 긴 명령어로 가독성 저하
버전 관리 Git으로 변경 이력 추적 가능 명령어 히스토리만으로 추적 어려움
재사용성 동일한 설정으로 여러 노드 구성 가능 복사/붙여넣기 필요
일관성 모든 설정이 한 곳에 집중 관리 설정 분산으로 일관성 유지 어려움
템플릿화 환경별 템플릿 활용 가능 템플릿화 어려움
파일 관리 노드마다 별도 파일 필요 파일 관리 불필요

환경별 사용 방식

환경 권장 방식 주요 이유
프로덕션 Config 파일 안정성, 추적 가능성
개발/테스트 Command Line 빠른 반복, 간단함
대규모 클러스터 Config 파일 관리 용이성, 자동화
소규모 클러스터 Command Line 간단함, 빠른 설정