DevOps/cilium
Kubeadm Configuration 을 사용하여 node ip 지정
by 서어켜엉
2025. 7. 20.
kubeadm에서 Node IP 지정 방식 비교
kubeadm으로 Kubernetes 클러스터를 구성할 때 노드 IP를 지정하는 두 가지 방법이 있다:
- Config 파일 방식: YAML 설정 파일에서
nodeRegistration.kubeletExtraArgs.node-ip 지정
- 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 |
간단함, 빠른 설정 |