kubeadm은 Kubernetes 클러스터를 처음 구성하고 노드를 가입시키는 절차를 제공하는 도구다. 대표 명령인 init과 join은 제어면 초기화와 기존 클러스터 참여를 담당한다. 서버를 구매하거나 가상 머신을 만드는 도구는 아니며, 애플리케이션의 일상 배포를 맡는 컨트롤러도 아니다. 공식 범위 설명은 최소한의 클러스터 기동에 초점을 둔다.
초기 구성과 운영의 경계
초기 구성에는 인증서와 접속 설정, 제어면 실행에 필요한 파일 생성 등이 포함된다. 노드에서는 kubelet과 컨테이너 런타임이 계속 실행되지만 kubeadm 명령 자체가 상시 실행되는 관리 서버는 아니다. 처음 구성한 뒤의 네트워크, 모니터링, 백업, 업그레이드 정책은 운영자가 마련한다.
서버 간 통신, 호스트 이름, 시간 동기화, 지원 버전 조합, 런타임과 cgroup 설정을 먼저 확인한다. Pod 주소 범위가 실제 네트워크와 겹치면 초기화 성공 이후에도 통신 장애가 생길 수 있다. CNI 기반 네트워크는 별도로 준비해야 하며 CoreDNS 준비도 그 네트워크에 의존한다. 클러스터 생성 안내가 이러한 선행 조건을 다룬다.
장점과 한계
공식 도구에 따라 공통 초기화 과정을 수행하므로 인증서와 제어면 설정을 모두 수작업으로 만드는 부담을 줄인다. 구성 파일을 보존하면 무엇을 선택했는지 추적하기 쉽고, 여러 자동화 도구의 기반으로도 사용할 수 있다.
반면 노드와 네트워크의 실제 운영 책임은 남는다. 단일 제어면을 만들었다고 고가용성이 생기지 않으며, 초기화 성공이 저장소 복구와 업그레이드 검증까지 뜻하지도 않는다. 관리형 Kubernetes보다 선택의 폭은 넓지만 운영 지식과 유지보수 시간이 더 필요하다.
연습 환경 사전 점검 예시
도서관 실습용 서버를 준비한다고 가정하자. 아래 명령은 설치된 kubeadm 버전, 기본 초기화 구성의 형태, 현재 클러스터 인증서 만료 정보를 읽는다. 마지막 명령은 해당 서버의 설정을 읽을 권한과 kubeadm으로 구성된 제어면을 전제로 한다. 출력에는 내부 주소가 포함될 수 있으므로 공개 이슈에 그대로 올리지 않는다.
kubeadm version -o short
kubeadm config print init-defaults
kubeadm certs check-expiration기본값 출력은 새 클러스터를 만드는 작업이 아니다. 표시된 주소·버전을 그대로 복사하기보다 실제 실습 환경에 맞는 값을 검토하는 출발점으로 사용한다. 인증서 만료 조회는 언제 갱신을 준비할지 알려 주지만 갱신이나 관련 프로세스의 재시작을 대신 수행하지 않는다.
자주 생기는 오해
문제가 생겼을 때 기존 노드에 init을 반복하거나 reset을 일반적인 복구 명령으로 취급하면 안 된다. 먼저 kubelet·런타임·네트워크 중 어느 계층에서 실패했는지 확인한다. 가입 토큰과 관리 kubeconfig는 클러스터 접근 수단이므로 문서 예시에 실제 값을 넣지 않는다.
참고 자료
Kubernetes 클러스터 구성 길잡이 | |
|---|---|
전체 구조 | |
설치와 조작 | |
컨테이너 실행 | |
네트워크와 이름 | |
진입과 메시 | |
설치와 배포 관리 | Helm · Argo CD · Argo Rollouts |
이미지 공급 | |