fix: skip kubeadm wait-control-plane phase, wait for VIP manually #92
@@ -195,15 +195,47 @@ in
|
|||||||
env -i PATH=/run/current-system/sw/bin:/usr/bin:/bin kubeadm init \
|
env -i PATH=/run/current-system/sw/bin:/usr/bin:/bin kubeadm init \
|
||||||
--config /tmp/kubeadm/init-config.yaml \
|
--config /tmp/kubeadm/init-config.yaml \
|
||||||
--upload-certs \
|
--upload-certs \
|
||||||
--ignore-preflight-errors=NumCPU,HTTPProxyCIDR,Port-10250 || {
|
--ignore-preflight-errors=NumCPU,HTTPProxyCIDR,Port-10250 \
|
||||||
echo "==> kubeadm init failed, checking pod status:"
|
--skip-phases=wait-control-plane || {
|
||||||
|
echo "==> kubeadm init phases failed, checking pod status:"
|
||||||
crictl pods || true
|
crictl pods || true
|
||||||
crictl ps -a || true
|
crictl ps -a || true
|
||||||
|
echo "==> Checking if VIP is bound:"
|
||||||
|
ip -4 addr show | grep "$vip" || echo "VIP NOT BOUND"
|
||||||
|
echo "==> kube-vip logs:"
|
||||||
|
crictl logs $(crictl ps --name kube-vip -q 2>/dev/null | head -1) 2>/dev/null || echo "Could not get kube-vip logs"
|
||||||
echo "==> kubelet logs:"
|
echo "==> kubelet logs:"
|
||||||
journalctl -xeu kubelet --no-pager -n 50
|
journalctl -xeu kubelet --no-pager -n 50
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
echo "==> Waiting for kube-vip to claim VIP $vip"
|
||||||
|
for i in $(seq 1 60); do
|
||||||
|
if ip -4 addr show | grep -q "$vip"; then
|
||||||
|
echo "==> VIP $vip is bound"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
if [ "$i" -eq 60 ]; then
|
||||||
|
echo "==> WARNING: VIP not bound after 2 minutes, proceeding anyway"
|
||||||
|
fi
|
||||||
|
sleep 2
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "==> Waiting for API server to be ready"
|
||||||
|
for i in $(seq 1 60); do
|
||||||
|
if curl -sk "https://$vip:6443/healthz" 2>/dev/null | grep -q "ok"; then
|
||||||
|
echo "==> API server is healthy"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
if [ "$i" -eq 60 ]; then
|
||||||
|
echo "==> ERROR: API server not healthy after 2 minutes"
|
||||||
|
crictl pods || true
|
||||||
|
crictl ps -a || true
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
sleep 2
|
||||||
|
done
|
||||||
|
|
||||||
mkdir -p /root/.kube
|
mkdir -p /root/.kube
|
||||||
cp /etc/kubernetes/admin.conf /root/.kube/config
|
cp /etc/kubernetes/admin.conf /root/.kube/config
|
||||||
chmod 600 /root/.kube/config
|
chmod 600 /root/.kube/config
|
||||||
|
|||||||
Reference in New Issue
Block a user