kubernetes-the-hard-way-aws
kubernetes-the-hard-way-aws copied to clipboard
Add --hostname-override flag for kubelet.service
I ran through this document alongside Kelsey Hightower's kubernetes-the-hard-way and ran into the following:
May 24 11:02:10 ip-10-240-0-21 kubelet[19716]: I0524 11:02:10.328531 19716 kubelet_node_status.go:82] Attempting to register node ip-10-240-0-21
May 24 11:02:10 ip-10-240-0-21 kubelet[19716]: E0524 11:02:10.330172 19716 kubelet_node_status.go:106] Unable to register node "ip-10-240-0-21" with API server: nodes "ip-10-240-0-21" is forbidden: node "worker-1" cannot modify node "ip-10-240-0-21"
This was due to the kubelet.service
unit file not including the --hostname-override
argument for kubelet. Once I added this the worker node was immediately able to join the cluster.
[Unit]
Description=Kubernetes Kubelet
Documentation=https://github.com/kubernetes/kubernetes
After=cri-containerd.service
Requires=cri-containerd.service
[Service]
ExecStart=/usr/local/bin/kubelet \
--allow-privileged=true \
--anonymous-auth=false \
--authorization-mode=Webhook \
--client-ca-file=/var/lib/kubernetes/ca.pem \
--cloud-provider= \
--cluster-dns=10.32.0.10 \
--cluster-domain=cluster.local \
--container-runtime=remote \
--container-runtime-endpoint=unix:///var/run/cri-containerd.sock \
--image-pull-progress-deadline=2m \
--kubeconfig=/var/lib/kubelet/kubeconfig \
--hostname-override=worker-0 \
--network-plugin=cni \
--pod-cidr=10.200.0.0/24 \
--register-node=true \
--runtime-request-timeout=15m \
--tls-cert-file=/var/lib/kubelet/worker-0.pem \
--tls-private-key-file=/var/lib/kubelet/worker-0-key.pem \
--v=2
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target