kindで遊ぶ

https://kind.sigs.k8s.io/

k8sのお勉強。


kindのinstall

go install sigs.k8s.io/kind@v0.29.0
kind create cluster
Creating cluster "kind" ...
✓ Ensuring node image (kindest/node:v1.33.1)
✓ 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

Thanks for using kind!


kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* kind-kind kind-kind kind-kind

kubectlのcontextにkindのclusterが設定される。他のclusterをdefaultのcontextに設定している場合は--contextでkindを設定できる。


Podの確認。

kubectl get pods --context kind-kind -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-674b8bbfcf-p4rq6 1/1 Running 0 9m8s
kube-system coredns-674b8bbfcf-rk2zm 1/1 Running 0 9m8s
kube-system etcd-kind-control-plane 1/1 Running 0 9m16s
kube-system kindnet-rjcdf 1/1 Running 0 9m8s
kube-system kube-apiserver-kind-control-plane 1/1 Running 0 9m15s
kube-system kube-controller-manager-kind-control-plane 1/1 Running 0 9m15s
kube-system kube-proxy-56mts 1/1 Running 0 9m8s
kube-system kube-scheduler-kind-control-plane 1/1 Running 0 9m15s
local-path-storage local-path-provisioner-7dc846544d-n2jg9 1/1 Running 0 9m8s


Docker containerの確認

docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
493c42d11ffb kindest/node:v1.33.1 "/usr/local/bin/entr…" 10 minutes ago Up 10 minutes 127.0.0.1:59682->6443/tcp kind-control-plane


clusterを削除する場合

kind delete cluster

シンプル。k8sのcontextからも削除される。


https://kind.sigs.k8s.io/docs/user/quick-start/#multi-node-clusters

multi-node-clusterの構成をtestしたい場合はこれ。

https://github.com/puppypepper/kind-playground

雑に管理用repoも作成。


1つのControl Planeと2つのWorker Nodeの構成でkindを建て直す。

docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
df9d00621c75 kindest/node:v1.33.1 "/usr/local/bin/entr…" 23 minutes ago Up 23 minutes 127.0.0.1:61887->6443/tcp kind-control-plane
3c6d4aac7ca1 kindest/node:v1.33.1 "/usr/local/bin/entr…" 23 minutes ago Up 23 minutes kind-worker2
d65dca629945 kindest/node:v1.33.1 "/usr/local/bin/entr…" 23 minutes ago Up 23 minutes kind-worker

Nodeに対して1つのdocker containerが使用されるという構成。


おまけ。fzfでcontext切り替えを簡単に。

kc() {
local context
context=$(kubectl config get-contexts -o name | fzf --prompt="Kube Context> ")
if [[ -n "$context" ]]; then
kubectl config use-context "$context"
fi
}

Related Articles