k8s安装插件出现dial tcp 10.96.0.1:443: i/o timeout问题解析

问题:

[root@k8s-master ~]# kubectl logs kubernetes-dashboard-658485d5c7-4c2sg -n kubernetes-dashboard
2022/02/23 00:58:28 Starting overwatch
2022/02/23 00:58:28 Using namespace: kubernetes-dashboard
2022/02/23 00:58:28 Using in-cluster config to connect to apiserver
2022/02/23 00:58:28 Using secret token for csrf signing
2022/02/23 00:58:28 Initializing csrf token from kubernetes-dashboard-csrf secret
panic: Get "https://10.96.0.1:443/api/v1/namespaces/kubernetes-dashboard/secrets/kubernetes-dashboard-csrf": dial tcp 10.96.0.1:443: i/o timeout

出现这种问题的原因是因为创建k8s集群的时候,初始化主节点时网络地址段出现重叠导致的

比如我之前初始化主节点时的命令如下
注意:此时我的三台服务器的节点为192.168.19.100,192.168.19.101,192.168.19.102,我用192.168.19.100作为了主节点。

kubeadm init \
--apiserver-advertise-address=192.168.19.100 \
--control-plane-endpoint=cluster-endpoint \
--image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \
--kubernetes-version v1.20.9 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=192.168.0.0/16  ##这个为集群内pod的网络设置,之后我用的网络插件为calico,同时需要把这个网络地址段配置到calico中

可以看到我这里初始化时apiserver-advertise-address=192.168.19.100,而pod-network-cidr=192.168.0.0/16,此时可以发现我的服务器的ip地址在k8s的集群网络地址段中,这就导致在分配网络的时候会出现问题,在安装组件的时候导致工作节点和主之前无法互访,导致安装失败。

这时可以把组件安装到主节点可以安装成功,但是治标不治本,可能会出现其他问题。可以参考我另一篇文章把组件强制安装到master节点
https://blog.csdn.net/qq_44847649/article/details/123082308?spm=1001.2014.3001.5502

要是想彻底解决只能重新安装k8s集群。

重新安装步骤

1、停止服务

kubeadm reset

2、删除残余文件

rm -rf /etc/kubernetes
rm -rf /var/lib/etcd/
rm -rf $HOME/.kube

3、重新初始化主节点

初始化时注意各网段的设置,不能重复

kubeadm init \
--apiserver-advertise-address=192.168.19.100 \
--control-plane-endpoint=cluster-endpoint \
--image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \
--kubernetes-version v1.20.9 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=192.169.0.0/16

后面按正常的创建流程进行

Logo

开源、云原生的融合云平台

更多推荐