创建高可用集群时kubeadm init 出现问题

kubeadm init 报错如下

kubeadm init --control-plane-endpoint "vip:6443" --upload-certs  --image-repository registry.aliyuncs.com/google_containers  --pod-network-cidr=10.244.0.0/16 --kubernetes-version 1.23.5
wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s
[kubelet-check] Initial timeout of 40s passed.

        Unfortunately, an error has occurred:
                timed out waiting for the condition

        This error is likely caused by:
                - The kubelet is not running
                - The kubelet is unhealthy due to a misconfiguration of the node in some way (required cgroups disabled)

        If you are on a systemd-powered system, you can try to troubleshoot the error with the following commands:
                - 'systemctl status kubelet'
                - 'journalctl -xeu kubelet'

        Additionally, a control plane component may have crashed or exited when started by the container runtime.
        To troubleshoot, list all containers using your preferred container runtimes CLI.

        Here is one example how you may list all Kubernetes containers running in docker:
                - 'docker ps -a | grep kube | grep -v pause'
                Once you have found the failing container, you can inspect its logs with:
                - 'docker logs CONTAINERID'

error execution phase wait-control-plane: couldn't initialize a Kubernetes cluster
To see the stack trace of this error execute with --v=5 or higher

根据报错提示,使用给的docker journalctl 的日志均无法追踪到错误原因。创建单点 master 集群没有这个问题,且正常执行。但是创建高可用多master 就会init 失败。

#创建单点 master 集群没有这个问题,命令如下
kubeadm init \ --kubernetes-version v1.23.5 \ --image-repository registry.aliyuncs.com/google_containers \ --pod-network-cidr=10.244.0.0/16

#创建高可用集群时就会出现如上问题,命令如下:

kubeadm init --control-plane-endpoint "vip:6443" --upload-certs  --image-repository registry.aliyuncs.com/google_containers  --pod-network-cidr=10.244.0.0/16 --kubernetes-version 1.23.5

解决方法:
使用如下探测更详细更灵敏日志,增加–v=6 参数

kubeadm init --control-plane-endpoint "vip:6443" --upload-certs --v=6 --image-repository registry.aliyuncs.com/google_containers  --pod-network-cidr=10.244.0.0/16 --kubernetes-version 1.23.5 

得到如下日志:

GET https://192.168.0.22:6443/healthz?timeout=10s  in 4 milliseconds

原因是健康检查时连接 control-plane-endpoint 地址超时了,知道问题原因,那问题就迎刃而解了,–control-plane-endpoint参数,要么不加端口,要么加6443端口,否则都会报这个错,你可curl -I 下GET 后的链接,只要能正常访问则ok。
知道https://192.168.0.22:6443/healthz链接超时,则排查你的haproxy的配置,说明未转发成功

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值