Kind 사용 가이드 (old)

0. 배경

<aside> 👉🏻 필자는 Apple M1 Pro 사용 중이여, 해당 mac으로 아래 실습 내용을 정리하였습니다.

</aside>

배경 : 자신의 로컬 PC에서 쿠버네티스 공부를 위해서 환경 구성 시, Intel CPU 경우 VirtualBox + Vagrant 를 사용 시 가장 편리하게 실습이 가능합니다.

Apple Silicon M 시리즈 CPU 정보 확인

# 브랜드 정보
**sysctl -a |grep -i brand**
machdep.cpu.brand_string: Apple M1 Pro

# CPU 아키텍처 정보
**arch**
arm64

CPU 아키텍처 별 도커 컨테이너 실행 확인 - Link

https://hub.docker.com/_/ubuntu

https://hub.docker.com/_/ubuntu

# arm64v8 실행 성공!
**docker run --rm -it arm64v8/ubuntu arch**
aarch64

# arm64v8 실행 시도
**docker** run --rm -it **amd64**/ubuntu **arch**
*WARNING: The requested image's platform (linux/amd64) **does not match the detected host platform (linux/arm64/v8**) and no specific platform was requested*

# riscv64 실행 시도
**docker** run --rm -it **riscv64**/ubuntu **arch**
*WARNING: The requested image's platform (linux/amd64) **does not match the detected host platform (linux/arm64/v8**) and no specific platform was requested*

⇒ kind 경우 ARM 컨테이너 이미지 제공!

# 아래 kind 클러스터에서 노드(?) CPU 정보 확인
**docker exec -it kind-control-plane arch**
aarch64

1. kind 소개 및 설치

소개 : ‘도커 IN 도커 docker in docker’로 쿠버네티스 클러스터 환경을 구성 - Link

Untitled

그림 출처: https://kind.sigs.k8s.io/

그림 출처: https://kind.sigs.k8s.io/

설치

  1. Docker Desktop 설치 - Link

  2. kind 및 툴 설치

    # Install Kind
    **brew install kind**
    kind --version
    
    # Install kubectl
    **brew install kubernetes-cli**
    kubectl version --client=true
    
    # Install Helm
    **brew install helm**
    helm version
    
  3. kind 기본 사용 - 클러스터 배포 및 확인

    # 클러스터 배포 전 확인
    docker ps
    
    # Create a cluster with kind
    **kind create cluster**
    
    # 클러스터 배포 확인
    kind get clusters
    kind get nodes
    kubectl cluster-info
    
    # 노드 정보 확인
    kubectl get node -o wide
    
    # 파드 정보 확인
    kubectl get pod -A
    kubectl get componentstatuses
    
    # 컨트롤플레인 (컨테이너) 노드 1대가 실행
    docker ps
    docker images
    
    # kube config 파일 확인
    cat ~/.kube/config
    
    # 노드에 Taints 정보 확인
    **kubectl describe node | grep Taints**
    Taints:             <none>
    
    # nginx 파드 배포 및 확인
    kubectl run nginx --image=nginx
    kubectl get pod -owide
    
    # 삭제
    **kind delete cluster**
    
    # kube config 삭제 확인
    cat ~/.kube/config
    

kind 상세 정보 확인 : Docker in Docker 확인

2. kind 활용