kubernetes calico组件启动失败解决

问题描述

k8s集群是由kubeadm方式部署的,由于集群很久没有使用了,刚把master节点的证书问题解决了,现在calico也无法使用,报错如下:

failed to query kubeadm's config map error=Get "https://xx.xx.xx.xx:443/api/v1/namespaces/kube-system/configmaps/kubeadm-config?timeout=2s": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

解决步骤:

看日志详细信息显示:Readiness probe failed导致重启pod失败。未能成功访问kubeadm’s config导致calico启动失败。
1、解决方法:calico-node默认访问kubernetes SVC的443端口,这将导致无法访问apiserver,需要在yaml文件添加apiserver的IP和端口,字段名:KUBERNETES_SERVICE_HOST、KUBERNETES_SERVICE_PORT、KUBERNETES_SERVICE_PORT_HTTPS。
KUBERNETES_SERVICE_HOST:是k8s的kubernetes服务的serviceIP
KUBERNETES_SERVICE_PORT: 是k8s的kubernetes服务的端口号
KUBERNETES_SERVICE_PORT_HTTPS:是k8s的kubernetes服务的https端口号
在线修改calico-node的daemonset文件,也可以修改calico-etcd.yaml文件然后执行kubectl -n kube-system apply -f calico-etcd.yaml文件重新更新一下
下面的图片是在线编辑calico-node的daemonset文件,编辑好了以后保存就可以了。

kubernetes calico组件启动失败解决_第1张图片

你可能感兴趣的:(kubernetes,docker,java)