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 9m8sDocker 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-planeclusterを削除する場合
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-workerNodeに対して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
}