diff --git a/nixos/kubeadm/modules/k8s-common.nix b/nixos/kubeadm/modules/k8s-common.nix index 2512c4a..29c378e 100644 --- a/nixos/kubeadm/modules/k8s-common.nix +++ b/nixos/kubeadm/modules/k8s-common.nix @@ -175,14 +175,6 @@ in podSubnet: "KUBEADM_POD_SUBNET" serviceSubnet: "KUBEADM_SERVICE_SUBNET" dnsDomain: "KUBEADM_DNS_DOMAIN" - --- - apiVersion: kubelet.config.k8s.io/v1beta1 - kind: KubeletConfiguration - authentication: - webhook: - enabled: false - authorization: - mode: AlwaysAllow KUBEADMCONFIG sed -i "s|KUBEADM_ENDPOINT|$vip:6443|g" /tmp/kubeadm/init-config.yaml @@ -217,6 +209,12 @@ in --ignore-preflight-errors=NumCPU,HTTPProxyCIDR,Port-10250 2>&1 | tee "$KUBEADM_INIT_LOG"; then if grep -q "error writing CRISocket for this node: nodes" "$KUBEADM_INIT_LOG" && [ -f /etc/kubernetes/admin.conf ]; then echo "==> kubeadm hit CRISocket race; waiting for node registration" + echo "==> forcing kubelet restart to pick bootstrap flags" + systemctl daemon-reload || true + systemctl restart kubelet || true + sleep 3 + echo "==> kubelet bootstrap flags" + cat /var/lib/kubelet/kubeadm-flags.env || true registered=0 for i in $(seq 1 60); do if KUBECONFIG=/etc/kubernetes/admin.conf kubectl get node "$node_name" >/dev/null 2>&1; then @@ -230,6 +228,8 @@ in if [ "$registered" -ne 1 ]; then echo "==> node $node_name did not register after kubeadm init failure" KUBECONFIG=/etc/kubernetes/admin.conf kubectl get nodes -o wide || true + echo "==> kubelet logs (registration hints)" + journalctl -u kubelet --no-pager -n 120 | grep -Ei "register|node|bootstrap|certificate|forbidden|unauthorized|refused|x509" || true exit 1 fi else