Kind?

Kind(Kubernetes IN Docker)란, 컨테이너 오케스트레이션 플랫폼인 쿠버네티스(Kubernetese) 클러스터를 Docker 컨테이너 형태로 동작할 수 있게 만들어주는 도구다. 아니, 컨테이너를 관리하는 도구인 쿠버네티스를 컨테이너 형태로 설치한다고? 말이되나 할 수 있다. 그러나 kind는 로컬에서 멀티노드 k8s 클러스터를 시뮬레이션하고, 빠르게 테스트해 볼 수 있다는 장점을 가지고 있다.
쿠버네티스 및 서비스 메시를 활용한 학교 텀프로젝트 과제를 수행하며, GKE 상에 애플리케이션을 배포하기 전에 미리 로컬에서 테스트 해보기 위해 설치하였으며, 다음 내용은 그 과정에 대해 다룬다.
구성 환경
- 호스트 OS: 윈도우 11
- WSL2
- Ubuntu 24.04 - LTS
설치 과정
1. kind 설치
- 정의: 쿠버네티스 클러스터를 Docker 컨테이너로 실행할 수 있게 해주는 오픈 소스 도구
- 목적: 쿠버네티스 클러스터를 Docker 기반으로 로컬에 띄운다.
- 특징: 빠르고 가볍게 실습 가능하다, CI 환경에서 유용하다.
- 릴리스 바이너리로 설치
# linux(ubuntu)
[ $(uname -m) = x86_64 ] && curl -Lo ./kind <https://kind.sigs.k8s.io/dl/v0.27.0/kind-linux-amd64>
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
kind version #(설치 확인)
kind create cluster --name istio-cluster --config kind-config.yaml #(클러스터 생성)
kind-config.yaml
kind: Cluster #종류: 클러스터
apiVersion: kind.x-k8s.io/v1alpha4
nodes: #control-plane 역할을 하는 노드 추가.
- role: control-plane
extraPortMappings:
- containerPort: 30080 #호스트 포트 8080을 컨테이너 포트 300080에 매핑
hostPort: 8080
protocol: TCP
- containerPort: 30443 #호스트 포트 30443을 컨테이너 포트 8443에 매핑.
hostPort: 8443
protocol: TCP

2. kubectl 설치

- 정의: 쿠버네티스 API를 사용해 쿠버네티스 클러스터의 control plane과 통신하기 위한 커맨드라인 툴
- 목적: 클러스터 내 리소스(Pod, Service 등)를 조작하는 CLI
- 핵심: 쿠버네티스의 ‘API’와 통신하는 도구

- 예: kubectl get pods, kubectl apply -f
# linux(ubuntu)
curl -LO "<https://dl.k8s.io/release/$>(curl -L -s <https://dl.k8s.io/release/stable.txt>)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubectl version --client
3. helm 설치

- 정의: 쿠버네티스의 공식 패키지 매니저
- 목적: 복잡한 애플리케이션 설치 자동화
- 사용 이유: YAML 파일 수십 개를 chart 라는 패키지 형태로 묵어, 버전 관리, 배포 재설치, 삭제까지 쉽게 해주는 도구다.
- chart: 애플리케이션의 정의, 값, 템플릿을 포함하는 디렉토리 구조
- Release: 특정 chart를 클러스터에 설치한 인스턴스
- values: chart 배포 시 적용할 설정 값들
- 예제: helm install nginx bitnami/nginx

# linux(ubuntu)
curl -fsSL -o get_helm.sh <https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3>
chmod 700 get_helm.sh
./get_helm.sh
'개발 > 쿠버네티스' 카테고리의 다른 글
| KIND에 Istio 설치 및 sample application 배포하기 (1) | 2025.06.10 |
|---|