kind vs kubeadm: Kubernetes 클러스터 프로비저닝 방식 완전 비교 가이드
작성일: 2026-03-25
대상 독자: Kubernetes 입문자 ~ 중급자, 로컬 개발환경 구성 고민 중인 DevOps 엔지니어
참조 버전: Docker Desktop v4.66.0 (화면 기준), Kubernetes v1.34.3 (kind), v1.34.1 (kubeadm)
들어가며
Docker Desktop의 설정 화면에서 Kubernetes를 활성화하려 할 때, 많은 사람들이 낯선 선택지 하나와 마주친다. 바로 “kind” 와 “Kubeadm” 이라는 두 가지 클러스터 프로비저닝 방식이다. 언뜻 보면 단순한 옵션처럼 보이지만, 이 두 가지는 Kubernetes 클러스터를 생성하는 방식부터 목적, 내부 동작 방식까지 근본적으로 다른 철학을 가지고 있다.
이 문서는 kind와 kubeadm이 각각 무엇인지, 어떻게 다른지, 그리고 Docker Desktop이 왜 이 두 가지를 동시에 제공하는지를 깊이 있게 살펴본다. 또한 Docker Desktop 자체가 최근 버전에서 얼마나 달라졌는지도 함께 정리한다.
1. 배경: 로컬 Kubernetes가 왜 필요한가
Kubernetes는 더 이상 미래의 기술이 아니다. 대부분의 클라우드 네이티브 팀에서 이미 운영 중인 현실이자, 개발자가 로컬에서도 반드시 이해하고 다뤄야 하는 플랫폼이 됐다. 하지만 실제 프로덕션 클러스터를 로컬 개발이나 테스트에 사용하는 것은 비용과 복잡성 측면에서 현실적이지 않다.
그래서 등장한 것이 로컬 Kubernetes 도구들이다. 개발자의 노트북이나 데스크탑에서 경량화된 Kubernetes 클러스터를 빠르게 띄우고, 실험하고, 부수고, 다시 생성하는 워크플로우를 가능하게 해주는 도구들이다. kind와 kubeadm은 그 스펙트럼의 서로 다른 지점에 위치한다.
2. kubeadm이란 무엇인가
2.1 개념과 탄생 배경
kubeadm은 Kubernetes 공식 프로젝트로, kubernetes/kubeadm 저장소에서 관리된다. 이름 자체가 “Kubernetes administration”의 약자로, 클러스터를 부트스트랩하는 데 필요한 최소한의 절차를 표준화한 도구다.
kubeadm이 등장하기 전, Kubernetes 클러스터를 직접 설치하는 것은 매우 고통스러운 일이었다. etcd 구성, kube-apiserver 인증서 발급, kubelet 설정, CNI 플러그인 설치 등 수십 가지 단계를 수동으로 처리해야 했다. kubeadm은 이 과정을 두 개의 핵심 명령어로 단순화했다.
1
2
3
4
5
# 컨트롤 플레인 초기화
kubeadm init
# 워커 노드 클러스터 합류
kubeadm join <control-plane-endpoint>
중요한 점은 kubeadm이 독립적인 Kubernetes 배포판이 아니라는 것이다. kubeadm은 클러스터의 부트스트랩 과정만을 담당하는 도구다. 노드 프로비저닝, 인프라 구성, 모니터링 솔루션 설치, Kubernetes 대시보드 구성 같은 작업은 kubeadm의 영역 밖이다. 이런 “좋으면 있으면 좋은 것들(nice-to-have addons)”은 사용자가 직접 결정하고 설치해야 한다.
2.2 kubeadm의 동작 원리
kubeadm init을 실행하면 일련의 사전 점검(preflight check) 과정이 먼저 시작된다. 스왑(swap) 비활성화 여부, 컨테이너 런타임 동작 상태, 필요한 포트 개방 여부 등을 확인한다. 이 단계를 통과하면 kubeadm은 다음 작업들을 순서대로 수행한다.
첫째로, CA(Certificate Authority) 인증서를 생성하고 클러스터 구성요소들 간의 TLS 통신을 위한 모든 인증서를 발급한다. 둘째로, etcd 인스턴스를 해당 노드에 Static Pod 형태로 구성한다. 셋째로, kube-apiserver, kube-controller-manager, kube-scheduler를 역시 Static Pod로 배포한다. 넷째로, kubelet 설정을 완료하고 CoreDNS와 kube-proxy를 설치한다. 이 모든 과정이 실제 머신(베어메탈 또는 VM) 위에서 직접 일어난다.
2.3 kubeadm의 강점: 프로덕션 지향성
kubeadm의 가장 큰 강점은 실제 프로덕션 클러스터와 구조적으로 동일한 환경을 만들 수 있다는 점이다. 컨트롤 플레인 HA(High Availability) 구성도 지원한다.
HA 구성에는 두 가지 토폴로지가 존재한다. 첫 번째는 스택형(Stacked) 토폴로지로, etcd 멤버가 컨트롤 플레인 노드와 같은 위치에 배치된다. 최소 3개의 컨트롤 플레인 노드가 필요하며 인프라 요구사항이 상대적으로 적다. 두 번째는 외부 etcd(External etcd) 토폴로지로, etcd 클러스터가 컨트롤 플레인 노드와 완전히 분리된 별도의 노드에서 운영된다. 최소 3개의 컨트롤 플레인 노드와 3개의 etcd 노드가 필요하므로 인프라 요구사항이 높지만, 더 강한 장애 격리를 제공한다.
프로덕션 환경에서 kubeadm 기반의 HA 클러스터를 구성할 때는 통상적으로 HAProxy와 Keepalived(또는 kube-vip)를 사용해 컨트롤 플레인에 대한 로드밸런서를 구성하고, 가상 IP(VIP)를 통해 failover를 처리한다. Calico, Flannel 같은 CNI 플러그인도 사용자가 직접 선택하고 구성해야 한다.
kubeadm은 Kubespray 같은 고수준 자동화 도구의 기반 구성요소로도 활용된다. 즉, kubeadm 자체가 다른 도구들의 빌딩 블록 역할을 한다는 점에서 Kubernetes 생태계에서 중심적인 위치를 차지하고 있다.
2.4 kubeadm의 한계
반면 kubeadm은 설정 과정이 복잡하다. CNI 플러그인을 별도로 설치해야 하고, 인증서 관리와 etcd 백업도 직접 처리해야 한다. 무엇보다, kubeadm은 실제 머신(물리 서버 또는 VM) 위에서 실행되도록 설계됐기 때문에, 로컬 개발환경에서 가볍게 클러스터를 생성하고 폐기하는 워크플로우에는 적합하지 않다. 클러스터를 초기화하고 폐기하는 데도 상당한 시간이 소요된다.
3. kind란 무엇인가
3.1 개념과 탄생 배경
kind는 “Kubernetes IN Docker“의 약자다. 이름에서 모든 것이 드러난다. Kubernetes 노드를 Docker 컨테이너로 실행하는 방식이다.
kind는 원래 Kubernetes 자체를 테스트하기 위해 만들어졌다. Kubernetes SIG(Special Interest Group) 프로젝트 중 하나로, Kubernetes 공식 릴리즈의 E2E(End-to-End) 테스트 게이트로 사용될 만큼 신뢰성이 검증된 도구다. “Kubernetes 공식 릴리즈를 검증하기에 충분하다면, 우리 노트북에서도 충분하다”는 말이 kind 커뮤니티에서 자주 인용된다.
흥미롭게도, kind의 내부에는 kubeadm이 있다. kind는 Docker 컨테이너를 Kubernetes 노드로 사용하되, 그 컨테이너 내부에서 kubeadm을 사용해 클러스터를 부트스트랩한다. 즉, kind는 kubeadm의 상위 추상화 레이어라고 볼 수 있다. 컨테이너 안에서 systemd와 kubelet이 실행되고, kubeadm이 그 위에 클러스터를 구성하는 구조다.
3.2 kind의 동작 원리
kind로 클러스터를 생성하면 다음과 같은 일이 일어난다. Docker 컨테이너가 Kubernetes 노드로 생성되고, 그 컨테이너 내부에는 containerd, kubelet, kubeadm이 포함된 특수한 이미지가 사용된다. kindest/node 이미지가 이 역할을 한다. 컨테이너 내부에서 kubeadm이 실행되며 클러스터가 구성된다.
멀티노드 클러스터를 구성하는 것도 간단하다. 아래와 같은 YAML 설정 파일 하나로 3노드 클러스터를 즉시 생성할 수 있다.
1
2
3
4
5
6
7
# kind-config.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
1
kind create cluster --config kind-config.yaml
컨테이너 기반이기 때문에 클러스터 생성은 수십 초 내에 완료된다. 삭제도 kind delete cluster 한 줄이면 끝난다. 이 즉각성이 kind의 가장 큰 매력이다.
3.3 kind의 강점: 속도, 재현성, CI/CD 친화성
kind는 특히 CI/CD 파이프라인에서 빛난다. GitHub Actions나 GitLab CI 환경에서 각 파이프라인 실행마다 깨끗한 Kubernetes 클러스터를 몇 초 만에 생성하고, 테스트를 실행한 후 폐기하는 워크플로우가 자연스럽게 가능하다. VM 기반 솔루션과 달리 하이퍼바이저가 필요 없기 때문에, Docker만 실행 가능한 환경이라면 어디서든 동작한다.
멀티노드 클러스터를 로컬에서 손쉽게 구성할 수 있다는 점도 중요하다. 실제 프로덕션과 유사한 노드 구조를 로컬에서 테스트해야 할 때, kind는 VM 없이도 컨트롤 플레인 HA 구성까지 흉내낼 수 있다.
또한 Kubernetes 버전을 자유롭게 지정할 수 있어, 특정 버전의 버그를 재현하거나 업그레이드 경로를 검증하는 데도 유용하다.
3.4 kind의 한계
kind도 완벽하지는 않다. 클러스터가 Docker 컨테이너 안에서 실행되기 때문에, 네트워크 접근 방식이 일반적인 VM 기반 클러스터와 다르다. LoadBalancer 타입 서비스에 대한 외부 IP 노출이 기본적으로 지원되지 않아 MetalLB 같은 추가 도구가 필요한 경우가 있다. 또한 컨테이너 중첩(Docker-in-Docker) 구조로 인해 일부 스토리지 프로비저닝 시나리오에서 제약이 발생할 수 있다.
프로덕션 배포에는 직접 사용하지 않는다. kind는 어디까지나 개발, 테스트, CI/CD를 위한 도구다.
4. 두 방식의 근본적 차이
kind와 kubeadm의 차이를 한 줄로 표현하자면 이렇다. kubeadm은 “실제 머신 위에 실제 클러스터를 만드는 도구”이고, kind는 “Docker 컨테이너 안에 Kubernetes를 흉내내는 도구”다.
하지만 이 단순한 구분 이면에는 더 깊은 차이들이 있다.
4.1 실행 환경
kubeadm은 호스트 OS의 커널을 직접 사용한다. kubelet이 systemd 서비스로 직접 실행되고, 컨테이너 런타임도 호스트에 설치된다. 따라서 kubeadm으로 구성한 클러스터는 실제 서버 환경과 가장 유사한 행동을 보인다. 커널 모듈 로드, 네트워크 인터페이스 구성, 스토리지 마운트 등 OS 수준의 동작이 실제와 동일하다.
kind는 이 모든 것이 Docker 컨테이너 안에서 이루어진다. 노드처럼 보이는 것들이 사실 컨테이너다. 이 추상화 덕분에 빠르고 가볍지만, 일부 OS 수준 기능을 테스트하기 어려운 경우가 생긴다.
4.2 클러스터 생성 속도
kind는 클러스터 생성이 수십 초에서 1~2분 내에 완료된다. kubeadm은 노드 프로비저닝, OS 설정, 바이너리 설치, 초기화 과정을 거치므로 훨씬 오래 걸린다. 특히 VM을 직접 프로비저닝하는 경우 10분 이상이 소요되는 것이 일반적이다.
4.3 리소스 소비
kind는 VM 없이 컨테이너만 사용하므로 메모리와 CPU 소비가 훨씬 적다. 노트북에서도 멀티노드 클러스터를 충분히 운용할 수 있다. kubeadm으로 같은 구성을 하려면 각 노드마다 별도의 VM이 필요하고, 이는 상당한 메모리와 디스크 공간을 요구한다.
4.4 네트워킹
kubeadm은 CNI 플러그인을 직접 선택하고 설치해야 한다. Calico, Flannel, Weave, Cilium 등 원하는 CNI를 자유롭게 선택할 수 있다. kind는 기본적으로 kindnet이라는 자체 CNI를 사용하지만, 커스텀 CNI 구성도 가능하다.
4.5 지속성
kubeadm으로 구성한 클러스터는 지속적으로 유지된다. 서버를 재시작해도 클러스터가 그대로 살아있다. kind 클러스터는 Docker 컨테이너이기 때문에 컨테이너가 삭제되면 클러스터도 사라진다. 단기 테스트에는 이것이 오히려 장점이지만, 장기 운용에는 적합하지 않다.
4.6 목적과 사용 시나리오 요약
| 항목 | kind | kubeadm |
|---|---|---|
| 주요 목적 | 로컬 개발, 테스트, CI/CD | 프로덕션/온프레미스 클러스터 구성 |
| 실행 환경 | Docker 컨테이너 | 실제 VM 또는 베어메탈 |
| 클러스터 생성 속도 | 수십 초 | 수 분 ~ 수십 분 |
| 멀티노드 지원 | 기본 지원 (설정 파일) | 지원 (수동 join 과정) |
| Kubernetes 버전 선택 | 지원 | 지원 |
| 네트워킹 복잡도 | 단순 (kindnet 기본) | 복잡 (CNI 직접 선택) |
| 프로덕션 사용 | 부적합 | 적합 |
| 리소스 소비 | 낮음 | 높음 (VM 필요) |
| 클러스터 지속성 | 임시 (컨테이너 기반) | 영구적 |
| CI/CD 친화성 | 매우 높음 | 낮음 |
| 내부 구현 | Docker 컨테이너 + kubeadm | 직접 호스트 부트스트랩 |
5. Docker Desktop에서의 kind vs kubeadm
5.1 Docker Desktop의 Kubernetes 지원 역사
Docker Desktop은 오래전부터 내장 Kubernetes 클러스터를 제공해왔다. 그러나 초기 구현은 단순했다. kubeadm 기반의 단일 노드 클러스터만 지원했고, Kubernetes 버전도 선택할 수 없었으며, 프로비저닝 속도도 느렸다.
전환점이 된 것은 Docker Desktop v4.38.0 (2025년 2월) 릴리즈였다. 이 버전에서 kind가 Docker Desktop의 기본 Kubernetes 프로비저너로 추가됐다. 이후 kind 방식이 사실상 권장 방식이 됐고, kubeadm은 레거시 옵션으로 남게 됐다.
5.2 Docker Desktop에서 kind가 제공하는 것들
Docker Desktop의 kind 프로비저너는 standalone kind 도구와 달리 별도 설치가 전혀 필요 없다. Docker Desktop을 설치하고 설정 화면에서 kind를 선택하기만 하면 된다.
화면에서 확인할 수 있듯이, UI에서 다음 사항들을 직접 제어할 수 있다. 먼저 Kubernetes 버전 선택이 가능하다. 드롭다운 메뉴에서 원하는 Kubernetes 버전을 지정할 수 있어, 특정 버전 테스트나 버그 재현이 쉬워진다. 다음으로 노드 수 선택이 가능하다. 슬라이더를 통해 1개에서 10개까지 노드 수를 설정할 수 있다. 싱글 노드로 간단하게 시작했다가 멀티노드로 전환해 더 현실적인 테스트 환경을 구성할 수 있다. 다만 노드 수 변경은 클러스터를 완전히 새로 생성하므로 기존 데이터가 모두 삭제된다는 점을 주의해야 한다.
Docker Desktop의 kind 클러스터는 ECI(Enhanced Container Isolation) 도 지원한다. ECI가 활성화된 경우 Kubernetes 클러스터가 비특권(unprivileged) Docker 컨테이너 안에서 실행되어 보안 격리가 강화된다. 반면 kubeadm 방식은 ECI를 지원하지 않는다.
5.3 Docker Desktop에서 kubeadm이 남아있는 이유
그렇다면 왜 Docker Desktop은 kubeadm을 레거시 옵션으로라도 유지하고 있을까? 이유는 하위 호환성이다. 기존에 kubeadm 기반 클러스터를 사용하던 사용자들의 작업 방식을 갑자기 변경하지 않기 위해서다. 또한 kubeadm은 싱글 노드 클러스터의 단순한 use case에서 이미 충분히 검증된 안정적인 선택지이기도 하다.
공식 문서에서도 kind를 “신규 프로비저너”로, kubeadm을 “구형 프로비저너”로 명시하며, kind가 더 많은 기능(멀티노드, 버전 선택, ECI 지원)을 제공함을 밝히고 있다.
6. Docker Desktop의 최근 변화들
스크린샷에 표시된 Docker Desktop v4.66.0은 단순한 점진적 업데이트가 아니다. 2024년 말부터 2025년에 걸쳐 Docker Desktop은 개발자 플랫폼으로서 상당한 진화를 거쳤다. 주요 변화들을 시간 순으로 살펴보자.
6.1 kind 기반 멀티노드 Kubernetes (v4.38.0, 2025년 2월)
앞서 언급했듯이, v4.38.0이 전환점이었다. Docker Desktop에서 kind를 공식 클러스터 프로비저너로 추가하고, 멀티노드 Kubernetes 클러스터를 UI만으로 생성할 수 있게 됐다. 이전까지는 멀티노드 로컬 클러스터를 구성하려면 별도의 kind 설치와 CLI 작업이 필수였다.
6.2 Docker Desktop CLI의 정식 출시 (v4.39.0, 2025년 3월)
Docker Desktop CLI가 GA(Generally Available) 상태로 정식 출시됐다. 이 CLI를 통해 GUI 없이도 Docker Desktop의 대부분 기능을 제어할 수 있게 됐다. Kubernetes 관련해서는 docker desktop kubernetes 명령어가 추가되어 터미널에서 직접 클러스터를 활성화하거나 비활성화하고 상태를 확인할 수 있다. GUI와 CLI 사이를 오가는 인지 부담이 크게 줄었다.
6.3 Ask Gordon: AI 에이전트 통합 (v4.39.0 이후)
Docker는 “Ask Gordon”이라는 AI 에이전트를 Docker Desktop에 통합했다. 이 에이전트는 MCP(Model Context Protocol)를 통해 외부 서비스와 연동되며, 로컬 Docker 엔진과 Kubernetes 클러스터를 직접 조회하고 관리할 수 있다. 컨테이너와 이미지를 나열하거나 정리하는 것은 물론, Kubernetes 네임스페이스를 조회하고, 서비스를 배포하고, Pod 로그를 분석하는 작업까지 자연어 명령으로 처리할 수 있다.
6.4 Apple Virtualization Framework로의 전환 (v4.44.0)
macOS 사용자에게 중요한 변화가 있었다. Docker Desktop이 기존의 QEMU 가상화 대신 Apple의 네이티브 Virtualization Framework를 기본 VMM(Virtual Machine Manager)으로 채택했다. 이로 인해 macOS에서 Docker Desktop의 성능과 안정성이 눈에 띄게 향상됐다. QEMU는 더 이상 지원되지 않는다.
6.5 Kubernetes 대시보드 개선과 실시간 클러스터 뷰 (v4.44.0 ~ v4.51.0)
docker desktop kubernetes CLI 명령어 추가와 함께, UI 내에서 Kubernetes 리소스를 직접 구성하고 모니터링하는 새로운 뷰가 도입됐다. Pod, Service, Deployment의 상태를 실시간으로 볼 수 있는 라이브 대시보드가 왼쪽 내비게이션에 독립된 섹션으로 자리 잡았다. Kubernetes 대시보드로 이동하기 위해 별도의 브라우저 창이나 kubectl proxy 명령을 실행할 필요가 줄었다.
6.6 Kind Enterprise Support와 Compose to Kubernetes (v4.50.0, 2026년 1월)
가장 최근의 중요한 업데이트 중 하나로, Kind에 대한 엔터프라이즈 수준 지원이 추가됐다. 팀 단위로 복잡한 오케스트레이션 시나리오를 로컬에서 테스트하기 위한 프로덕션급 Kubernetes 도구가 로컬 개발에 통합됐다. 또한 Compose로 작성된 로컬 멀티 서비스 애플리케이션을 프로덕션 준비된 Kubernetes 배포 형태로 변환하는 “Compose to Kubernetes” 기능도 강화됐다.
6.7 Docker Model Runner와 AI 워크로드 지원
AI/ML 개발자를 위한 Docker Model Runner 기능이 강화됐다. Windows에서 WSL2와 NVIDIA GPU를 사용해 vLLM을 실행할 수 있는 지원이 추가됐으며, NanoClaw 같은 AI 에이전트 실행을 위한 MicroVM 기반 격리 환경도 통합됐다.
6.8 Wasm 워크로드 지원 종료 예정
한편, Wasm(WebAssembly) 워크로드 지원은 향후 Docker Desktop 릴리즈에서 deprecated되어 제거될 예정임이 공식적으로 발표됐다.
7. 실전 선택 가이드
7.1 Docker Desktop에서 어떤 것을 선택해야 하는가
스크린샷에서 볼 수 있듯이, 현재 kind v1.34.3과 kubeadm v1.34.1이 선택 가능한 상태다. 아래 기준을 참고해 선택하자.
kind를 선택해야 하는 경우:
로컬에서 개발하면서 빠르게 클러스터를 생성하고 폐기하는 패턴으로 작업한다면 kind가 맞다. 멀티노드 환경을 테스트해야 하거나, CKA/CKAD 시험 준비를 하고 있다면 kind가 훨씬 더 적합하다. CI/CD 파이프라인에서 Kubernetes 클러스터가 필요한 경우도 kind가 정답이다. Docker Desktop의 ECI(Enhanced Container Isolation) 기능을 활용하고 싶다면 반드시 kind를 선택해야 한다. 새로 Kubernetes를 시작하는 사람이라면 특별한 이유가 없는 한 kind를 기본으로 사용하는 것이 권장된다.
kubeadm(Docker Desktop 내)을 선택하는 경우:
기존에 kubeadm 기반 Docker Desktop 클러스터를 사용해왔고, 마이그레이션 없이 현 상태를 유지하고 싶다면 계속 사용해도 무방하다. 단순한 싱글 노드 클러스터로 충분하고 버전 선택이나 노드 수 조정이 불필요한 경우에도 적합하다. 다만 장기적으로는 kind로 전환하는 것이 Docker의 방향성과 일치한다.
7.2 로컬 환경 밖에서: kind와 kubeadm의 사용처
Docker Desktop 문맥을 벗어나면 이 두 도구의 용도는 더욱 명확히 갈린다.
kind는 아래 상황에서 사용된다.
1
2
3
4
5
6
7
8
9
10
11
# GitHub Actions에서 Kubernetes E2E 테스트
- name: Create kind cluster
uses: helm/kind-action@v1.12.0
with:
kubernetes_version: v1.34.3
# 로컬에서 특정 버전 클러스터 생성
kind create cluster --image kindest/node:v1.34.3
# HA 컨트롤 플레인을 포함한 멀티노드 클러스터
kind create cluster --config multi-node.yaml
kubeadm은 아래 상황에서 사용된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
# 온프레미스 베어메탈 서버에서 클러스터 초기화
sudo kubeadm init \
--control-plane-endpoint "k8s-vip:6443" \
--upload-certs \
--pod-network-cidr=192.168.0.0/16
# 워커 노드 추가
sudo kubeadm join k8s-vip:6443 \
--token <token> \
--discovery-token-ca-cert-hash sha256:<hash>
# 클러스터 버전 업그레이드
sudo kubeadm upgrade apply v1.35.0
8. 자주 묻는 질문
“kind가 kubeadm을 내부적으로 사용한다면, kind 클러스터도 결국 kubeadm 클러스터 아닌가요?”
맞는 말이다. kind 클러스터 내부에 들어가면 실제로 kubeadm이 설치되어 있고, kubeadm으로 클러스터가 구성됐음을 확인할 수 있다. 하지만 이 두 가지는 사용 방식과 목적이 완전히 다르다. kubeadm을 직접 사용하는 것은 “직접 재료를 사서 요리하는 것”이고, kind를 사용하는 것은 “포장 음식을 주문해서 빠르게 먹는 것”에 비유할 수 있다. 최종 결과물은 비슷해 보일 수 있지만 과정과 목적이 다르다.
“Docker Desktop의 kind 클러스터를 실제 kubectl로 제어할 수 있나요?”
가능하다. kind 클러스터가 시작되면 kubeconfig 컨텍스트가 docker-desktop으로 설정되며, 일반적인 kubectl 명령으로 모든 작업을 수행할 수 있다. 멀티노드 클러스터에서도 kubectl get nodes로 모든 노드를 확인할 수 있다.
“kind 클러스터의 개별 노드에 직접 접근할 수 있나요?”
가능하다. kind 노드는 Docker 컨테이너이므로 docker exec -it <node-name> bash 명령으로 해당 노드 컨테이너 안에 직접 들어갈 수 있다. 컨트롤 플레인 노드에서 kubeadm이나 kubectl 명령을 직접 실행해볼 수도 있다. 이 점이 CKA/CKAD 시험 준비에 kind가 유용한 이유 중 하나다.
9. 결론
kind와 kubeadm은 서로 경쟁하는 도구가 아니다. 각자가 잘하는 영역이 분명히 다른, 상호 보완적인 도구다.
kind는 개발자의 노트북에서, CI/CD 파이프라인에서, Kubernetes를 배우는 환경에서 빛난다. 빠르고, 가볍고, 재현 가능하며, 멀티노드 실험이 쉽다. Docker Desktop이 kind를 기본 프로비저너로 채택한 것은 이런 이유에서다.
kubeadm은 실제 인프라에서, 프로덕션 환경에 가장 가까운 클러스터를 구성할 때 사용된다. 더 많은 설정과 지식을 요구하지만, 그만큼 깊은 이해와 세밀한 제어를 가능하게 한다. 온프레미스 환경이나 관리형 Kubernetes를 사용할 수 없는 환경에서는 여전히 kubeadm이 핵심 도구다.
Docker Desktop은 이 두 가지를 모두 지원하면서, 개발자가 자신의 목적에 맞는 환경을 선택할 수 있도록 배려하고 있다. 그리고 Docker Desktop 자체도 단순한 컨테이너 실행 도구에서 AI 에이전트, Kubernetes 관리, 엔터프라이즈 보안 기능을 아우르는 포괄적인 개발자 플랫폼으로 빠르게 진화하고 있다.
새로 Kubernetes를 시작하는 사람이라면 kind를, 실제 인프라를 직접 관리해야 하는 환경이라면 kubeadm을 기준으로 시작하되, 결국 두 도구 모두 알아두는 것이 Kubernetes 실무자로서의 완성도를 높이는 길이다.
작성일: 2026-03-25
참조: Docker 공식 문서, Kubernetes 공식 문서, Docker Desktop 릴리즈 노트