标签:IP server kubeconfig apiserver 集群 master k8s 内网
公有云上组建k8s集群时,通常是使用绑定在节点网卡上的IP地址来部署集群,此时,一般使用的是192.168.x.x这样的私网IP。
使用时,我们可能希望在本地使用k8s集群的kubeconfig文件来访问集群。但记录在kubeconfig文件中的server的IP地址是192.168.x.x这样的私网IP,
本地不能直接访问,将kubeconfig文件的server地址改为k8s master的公网IP访问时,会报错:
Unable to connect to the server: x509: certificate is valid for 10.96.0.1, 192.168.0.x, not x.x.x.x
原因从报错信息可以看出来:是证书对访问的IP做了校验,解决的方法就是要重新制作证书(不用动集群)。
以下操作步骤,以kubeadm部署的集群为例,其他方式部署,操作原理类似,路径可能不同。
1、备份当前k8s集群配置文件
cp -r /etc/kubernetes /etc/kubernetes.bak
2、生成新的apiserver的cert和key
kubeadm init phase certs apiserver --apiserver-advertise-address ${原来的advertise ip} --apiserver-cert-extra-sans ${master的外网ip}
注意:--apiserver-advertise-address 的值,只需要填master的内网ip,不需要填k8s内部使用的 10.96.0.1
3、刷新admin.conf
kubeadm alpha certs renew admin.conf
4、重启apiserver
kubectl -n kube-system delete pod -l component=kube-apiserver
5、刷新.kube/config
\cp /etc/kubernetes/admin.conf ~/.kube/config
注意:这里生成的 admin.conf 文件,server填写的依然是master的内网IP,如果需要放在集群外的客户端上使用,将这个IP改为master的外网IP即可。
原文地址:https://zhuanlan.zhihu.com/p/505324148
标签:IP,server,kubeconfig,apiserver,集群,master,k8s,内网 来源: https://www.cnblogs.com/leozhanggg/p/16243205.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。