TL;DR
- kind는 Docker 컨테이너를 노드로 사용해 로컬 Kubernetes 클러스터를 실행하며, 주된 용도는 Kubernetes 자체 테스트이고 로컬 개발 및 CI에도 활용 가능함.
- Go와 Docker, Podman 또는 nerdctl이 설치된 환경에서는
go install sigs.k8s.io/kind@v0.33.0과kind create cluster로 클러스터 생성 가능함. - kind는 클러스터 생성·이미지 빌드용 Go 패키지, 명령줄 인터페이스(CLI), 시스템 및 Kubernetes 실행용 Docker 이미지로 구성되며 각 노드는 kubeadm으로 부트스트랩됨.
- 설치 방식은 Go 설치, Docker를 이용한 재현 가능한 빌드, 플랫폼별 안정 버전 바이너리 및 패키지 관리자를 포함하며, CI에는 안정 버전 사용이 일반적으로 권장됨.
- 다중 노드 및 고가용성(HA) 클러스터, 소스에서의 Kubernetes 릴리스 빌드, Linux·macOS·Windows를 지원하며, CNCF 인증 Kubernetes 적합 설치 프로그램임.
kind 소개
- kind는 Docker 컨테이너 노드를 사용해 로컬 Kubernetes 클러스터를 실행하는 도구임.
- 주된 설계 목적은 Kubernetes 자체 테스트이며, 로컬 개발이나 지속적 통합(CI)에도 사용 가능함.
- Go와 Docker, Podman 또는 nerdctl이 설치되어 있으면
go install sigs.k8s.io/kind@v0.33.0으로 설치한 뒤kind create cluster를 실행해 클러스터 생성 가능함. - kind의 구성 요소는 클러스터 생성 및 이미지 빌드 등을 구현하는 Go 패키지, 해당 패키지 기반 명령줄 인터페이스(kind), systemd와 Kubernetes 등을 실행하도록 작성된 Docker 이미지, 그리고 개발 진행 중(WIP)인 kubetest 통합임.
- kind는 각 노드를 kubeadm으로 부트스트랩하며, 자세한 내용은 설계 문서에서 확인 가능함.
- kind는 아직 개발 진행 중인 프로젝트이며, 1.0 로드맵이 제공됨.
설치 및 사용
- 전체 설치 안내는 문서에서 확인 가능함.
- Go를 사용하는 설치 명령은
go install sigs.k8s.io/kind@v0.33.0이며, 최신 Go 사용이 권장됨. kind는 최신 안정 버전의 Go로 개발되며 정확한 버전은.go-version에 명시됨. - 설치 결과물은
$(go env GOPATH)/bin에 배치됨. 설치 후kind: command not found오류가 발생하면 해당 디렉터리를$PATH에 추가하거나 저장소를 복제해make build를 실행하는 수동 설치 방법을 사용할 수 있음. - Go를 설치하지 않아도
make build로 Docker를 이용해 재현 가능한 빌드 가능함. - 안정 버전 바이너리는 릴리스 페이지에서 제공되며, 특히 CI 사용에는 일반적으로 안정 버전이 권장됨. 플랫폼에 맞는 바이너리를 내려받아
$PATH에 두는 방식임. - Linux 설치 옵션은 다음과 같음.
- AMD64/x86_64:
https://kind.sigs.k8s.io/dl/v0.33.0/kind-$(uname)-amd64에서 바이너리 다운로드. - ARM64/aarch64:
https://kind.sigs.k8s.io/dl/v0.33.0/kind-$(uname)-arm64에서 바이너리 다운로드. - 다운로드한
kind에 실행 권한을 부여하고/usr/local/bin/kind로 이동. - macOS 설치 옵션은 다음과 같음.
- Homebrew:
brew install kind실행. - MacPorts:
sudo port selfupdate와sudo port install kind실행. - Bash를 이용할 경우 Intel Mac용 바이너리는
https://kind.sigs.k8s.io/dl/v0.33.0/kind-darwin-amd64, M1/ARM Mac용 바이너리는https://kind.sigs.k8s.io/dl/v0.33.0/kind-darwin-arm64에서 다운로드한 뒤 실행 권한을 부여하고$PATH에 있는 디렉터리로 이동. - Windows 설치 옵션은 다음과 같음.
- AMD64 바이너리는
https://kind.sigs.k8s.io/dl/v0.33.0/kind-windows-amd64에서 다운로드한 뒤$PATH에 있는 디렉터리로 이동하고 파일명을kind.exe로 설정. - Chocolatey 패키지: kind 패키지를 통한
choco install kind실행. - kind 사용에는 Docker 설치가 필요하며 Docker 실행 후
kind create cluster로 클러스터 생성,kind delete cluster로 클러스터 삭제 가능함. - Kubernetes 소스에서 클러스터를 만들려면 Kubernetes 저장소를
$(go env GOPATH)/src/k8s.io/kubernetes에 복제한 뒤kind build node-image로 노드 이미지를 빌드하고kind create cluster --image kindest/node:latest로 클러스터 생성. - 다중 노드 클러스터와 기타 고급 기능은 설정 파일로 구성 가능하며, 추가 사용법은 문서 또는
kind [command] --help에서 확인 가능함.
커뮤니티
- 버그, 기능 요청 및 기타 문제는 Kubernetes Slack의
#kind채널, 저장소 이슈 등록 또는 Kubernetes SIG-Testing 메일링 리스트를 통해 전달 가능함. - 현재 유지 관리자는 @aojea, @BenTheElder, @stmcginnis임.
- 기여 요청은 환영되며, 새 기능을 계획 중이면 먼저 이슈를 등록해 논의하는 방식임.
- 시작할 작업을 찾는 경우 이슈 트래커의 도움이 필요한 이슈를 확인하거나 논의 요청 가능함.
- 관련 자료로 기여자 안내와 Kubernetes 커뮤니티 페이지가 있음.
kind를 사용하는 이유
- 다중 노드 및 고가용성(HA) 클러스터 지원.
- 사전 게시된 빌드뿐 아니라
make, Bash 또는 Docker를 사용해 소스에서 Kubernetes 릴리스 빌드 지원. - Linux, macOS 및 Windows 지원.
- CNCF 인증 Kubernetes 적합 설치 프로그램임.
행동 강령
- Kubernetes 커뮤니티 참여에는 Kubernetes 행동 강령이 적용됨.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요