[k8s] macOS kind 로컬 클러스터 구성
kind(kubernetes in docker)는 로컬에서 쿠버네티스 클러스터를 쉽게 구성할 수 있게 해주는 도구다.
노드 이미지(kindest/node)를 사용해 도커 컨테이너 하나당 노드 하나로 구성하는 식으로 되어 있으며, 멀티 노드로 구성된 클러스터도 간단히 만들 수 있다.
설치
- docker
- kubectl
- kind
사용법
$ kind create cluster
Creating cluster "kind" ...
✓ Ensuring node image (kindest/node:v1.26.3) 🖼
✓ Preparing nodes 📦
✓ Writing configuration 📜
✓ Starting control-plane 🕹️
✓ Installing CNI 🔌
✓ Installing StorageClass 💾
Set kubectl context to "kind-kind"
You can now use your cluster with:
kubectl cluster-info --context kind-kind
Not sure what to do next? 😅 Check out https://kind.sigs.k8s.io/docs/user/quick-start/
위 명령어로 로컬 쿠버네티스를 생성할 수 있고, 기본적으로 control-plane (master node)만 생성된다.
kind는 yaml 파일로 클러스터 설정을 관리할 수 있고, 멀티노드로 구성된 클러스터를 만들고 싶다면 위처럼 config 파일을 만든 뒤, kind create cluster --config kind-example-config.yaml
처럼 클러스터 생성시 config 플래그를 넣으면 된다.
기타
❯ kind completion
Outputs kind shell completion for the given shell (bash or zsh)
This depends on the bash-completion binary. Example installation instructions:
# for bash users
$ kind completion bash > ~/.kind-completion
$ source ~/.kind-completion
# for zsh users
% kind completion zsh > /usr/local/share/zsh/site-functions/_kind
% autoload -U compinit && compinit
# or if zsh-completion is installed via homebrew
% kind completion zsh > "${fpath[1]}/_kind"
# or if you use oh-my-zsh (needs zsh-completions plugin)
% mkdir $ZSH/completions/
% kind completion zsh > $ZSH/completions/_kind
# for fish users
% kind completion fish > ~/.config/fish/completions/kind.fish
Additionally, you may want to output the completion to a file and source in your .bashrc
Note for zsh users: [1] zsh completions are only supported in versions of zsh >= 5.2
kind는 shell completion을 제공하는데, 쉘(bash, zsh, fish) 또는 패키지매니저에 따라 설정 방법이 다르니 kind completion
설명중 자신의 환경에 맞는 방법을 쓰면 된다.