golang >= 1.18
kind >= v0.11.1
# summary
# 1. install a bin
# 2. adjust docker daemon resource
create cluster with configuration
cat << EOF > cluster-config.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: hello-k8s
nodes:
- role: control-plane
- role: worker
# a ingress node, only one because of port duplication
extraPortMappings:
- containerPort: 80
hostPort: 80
- containerPort: 443
hostPort: 443
kubeadmConfigPatches:
- |
kind: JoinConfiguration
nodeRegistration:
kubeletExtraArgs:
node-labels: "ingress-ready=true"
- role: worker
- role: worker
EOF
kind create cluster --config cluster-config.yaml
deploy ingress controller
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml
issue1) etcd no space left on device
shortage a docker daemons disk
increase docker daemons resource
docker daemon > Preferences > resources > disk image size(increase)
# check logs
$ docker exec -it 63d64a79b67c crictl logs -f 8b707c20c13eb
[WARNING] Deprecated ' --logger=capnslog' flag is set ; use ' --logger=zap' flag instead
2022-06-22 09:57:26.622842 I | etcdmain: etcd Version: 3.4.13
2022-06-22 09:57:26.622981 I | etcdmain: Git SHA: ae9734ed2
2022-06-22 09:57:26.623021 I | etcdmain: Go Version: go1.12.17
2022-06-22 09:57:26.623122 I | etcdmain: Go OS/Arch: linux/amd64
2022-06-22 09:57:26.623136 I | etcdmain: setting maximum number of CPUs to 4, total number of available CPUs is 4
[WARNING] Deprecated ' --logger=capnslog' flag is set ; use ' --logger=zap' flag instead
2022-06-22 09:57:26.623383 I | embed: peerTLS: cert = /etc/kubernetes/pki/etcd/peer.crt, key = /etc/kubernetes/pki/etcd/peer.key, trusted-ca = /etc/kubernetes/pki/etcd/ca.crt, client-cert-auth = true, crl-file =
2022-06-22 09:57:26.623943 I | embed: name = kind-control-plane
2022-06-22 09:57:26.624009 I | embed: data dir = /var/lib/etcd
2022-06-22 09:57:26.624025 I | embed: member dir = /var/lib/etcd/member
2022-06-22 09:57:26.624034 I | embed: heartbeat = 100ms
2022-06-22 09:57:26.624042 I | embed: election = 1000ms
2022-06-22 09:57:26.624051 I | embed: snapshot count = 10000
2022-06-22 09:57:26.624094 I | embed: advertise client URLs = https://172.18.0.5:2379
2022-06-22 09:57:26.626767 C | etcdserver: create wal error: no space left on device
panic: create wal error: no space left on device
goroutine 1 [running]:
github.com/coreos/pkg/capnslog.(* PackageLogger).Panicf(0xc0001f8180, 0x10a3649, 0x14, 0xc0002ca330, 0x1, 0x1)
/home/ANT.AMAZON.COM/leegyuho/go/pkg/mod/github.com/coreos/pkg@v0.0.0-20160727233714-3ac0863d7acf/capnslog/pkg_logger.go:75 +0x135
go.etcd.io/etcd/etcdserver.startNode(0x7ffe06aede35, 0x12, 0x0, 0x0, 0x0, 0x0, 0xc000152d80, 0x1, 0x1, 0xc000152f00, ...)
/tmp/etcd-release-3.4.13/etcd/release/etcd/etcdserver/raft.go:465 +0xf36
go.etcd.io/etcd/etcdserver.NewServer(0x7ffe06aede35, 0x12, 0x0, 0x0, 0x0, 0x0, 0xc000152d80, 0x1, 0x1, 0xc000152f00, ...)
/tmp/etcd-release-3.4.13/etcd/release/etcd/etcdserver/server.go:406 +0x4974
go.etcd.io/etcd/embed.StartEtcd(0xc000296000, 0xc0001d0580, 0x0, 0x0)
/tmp/etcd-release-3.4.13/etcd/release/etcd/embed/etcd.go:214 +0x988
go.etcd.io/etcd/etcdmain.startEtcd(0xc000296000, 0x10941c5, 0x3, 0x1095201, 0x5)
/tmp/etcd-release-3.4.13/etcd/release/etcd/etcdmain/etcd.go:302 +0x40
go.etcd.io/etcd/etcdmain.startEtcdOrProxyV2 ()
/tmp/etcd-release-3.4.13/etcd/release/etcd/etcdmain/etcd.go:160 +0x3164
go.etcd.io/etcd/etcdmain.Main ()
/tmp/etcd-release-3.4.13/etcd/release/etcd/etcdmain/main.go:46 +0x38
main.main ()
/tmp/etcd-release-3.4.13/etcd/release/etcd/main.go:28 +0x20