问题描述
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文件,编辑好了以后保存就可以了。文章来源:https://www.toymoban.com/news/detail-514699.html
文章来源地址https://www.toymoban.com/news/detail-514699.html
到了这里,关于kubernetes calico组件启动失败解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!