Docker 환경에서 kind 설치하기

2025. 6. 9. 21:29·개발/쿠버네티스

Kind?

작은 쿠버네티스, Kind

 Kind(Kubernetes IN Docker)란, 컨테이너 오케스트레이션 플랫폼인 쿠버네티스(Kubernetese) 클러스터를 Docker 컨테이너 형태로 동작할 수 있게 만들어주는 도구다. 아니, 컨테이너를 관리하는 도구인 쿠버네티스를 컨테이너 형태로 설치한다고? 말이되나 할 수 있다. 그러나 kind는 로컬에서 멀티노드 k8s 클러스터를 시뮬레이션하고, 빠르게 테스트해 볼 수 있다는 장점을 가지고 있다.

 쿠버네티스 및 서비스 메시를 활용한 학교 텀프로젝트 과제를 수행하며, GKE 상에 애플리케이션을 배포하기 전에 미리 로컬에서 테스트 해보기 위해 설치하였으며, 다음 내용은 그 과정에 대해 다룬다. 

구성 환경

  1. 호스트 OS: 윈도우 11
  2. WSL2
  3. 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 설치

https://blog.palark.com/

  • 정의: 쿠버네티스 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 설치

https://helm.sh/

  • 정의: 쿠버네티스의 공식 패키지 매니저
  • 목적: 복잡한 애플리케이션 설치 자동화
  • 사용 이유: 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
'개발/쿠버네티스' 카테고리의 다른 글
  • KIND에 Istio 설치 및 sample application 배포하기
securitygeek
securitygeek
안녕하세요. git: https://github.com/khuni1
  • securitygeek
    security geek
    securitygeek
  • 전체
    오늘
    어제
    • 분류 전체보기 (3)
      • 개발 (3)
        • 쿠버네티스 (2)
        • 회고 (1)
      • 취미 (0)
        • 체스 (0)
        • 서평 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    취약점 분석
    윤리적 해킹
    helm
    CSRF
    Burp Suite
    istiod
    쿠버네티스
    버그바운티
    사이드카 프록시
    kubernetese
    BOOKINFO
    서비스 메시
    ingress gateway
    kind
    istio
    XSS
    SSRF
    웹 보안
    kubectl
    kubernetes
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
securitygeek
Docker 환경에서 kind 설치하기
상단으로

티스토리툴바