Kind를 이용하여 멀티 노드 Kubernetes 클러스터를 구성하고 삭제하는 방법

쿠버네티스를 간단히 실습할 수 있는 환경인 kind를 활용하는 방법을 소개합니다.

 


 

 

kind란?

kind (Kubernetes IN Docker)는 Docker 컨테이너 기반으로 쿠버네티스 클러스터를 구성할 수 있게 해주는 도구입니다.

  • 테스트, CI/CD, 경량 개발 환경에 적합
  • VM 없이 컨테이너로만 클러스터 구성
  • 매우 빠르고 가벼움

구성 예시

kind-multinode/
├── kind-cluster.yaml        # 클러스터 노드 설정 파일
└── create-cluster.sh        # 클러스터 생성 스크립트

kind-cluster.yaml

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
  - role: control-plane
  - role: worker
  - role: worker

위 설정은 컨트롤 플레인 1개 + 워커 노드 2개 구성입니다.


create-cluster.sh

#!/bin/bash

CLUSTER_NAME="multi-node-cluster"

echo "🧹 기존 클러스터 삭제 중..."
kind delete cluster --name "$CLUSTER_NAME"

echo "🚀 클러스터 생성 중..."
kind create cluster --name "$CLUSTER_NAME" --config kind-cluster.yaml

echo "✅ 클러스터 생성 완료!"
kubectl cluster-info --context kind-$CLUSTER_NAME

echo "📦 노드 리스트:"
kubectl get nodes

실행 권한 부여: chmod +x create-cluster.sh


클러스터 실행

./create-cluster.sh

결과 예시

$ kubectl get nodes
NAME                             STATUS   ROLES           AGE     VERSION
multi-node-cluster-control-plane   Ready    control-plane   1m      v1.29.x
multi-node-cluster-worker          Ready    <none>          1m      v1.29.x
multi-node-cluster-worker2         Ready    <none>          1m      v1.29.x

클러스터 삭제

kind delete cluster --name multi-node-cluster
  • 관련 Docker 컨테이너들도 자동 삭제됨
  • kubectl config에서도 context 사라짐

참고 사항

  • kind는 Docker 이미지를 자동으로 사용하므로 별도의 Dockerfile이 필요 없음