1、确认主控节点
登录k8s集群部署时的主控节点,应该为3台master节点中的一个(若是单master节点,master节点就是主控节点);
进入/etc/kubernetes目录,查看是否存在kubeadm-config.yaml文件,存在即为主控节点。
2、备份master节点上的pki目录
3个master节点都需要操作
cp -r /etc/kubernetes/pki /etc/kubernetes/pki-bak
3、修改kubeadm-config.yaml
在主控节点执行,修改/etc/kubernetes/kubeadm-config.yaml文件
在apiServer: certSANs下面追加公网ip地址,如下所示
同步修改 kubectl edit cm -n kube-system kubeadm-config -o yaml
4、删除apiserver证书
在主控节点操作删除/etc/kubernetes/pki目录下apiserver.crt和apiserver.key证书
5、重新生成证书
在主控节点执行
kubeadm init phase certs apiserver --config /etc/kubernetes/kubeadm-config.yaml
6、查看证书
在主控节点执行
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text
查看证书中添加成功
7、分发证书
将主控节点/etc/kubernetes/pki目录下apiserver.crt和apiserver.key证书,分别scp到另外两个master节点上,覆盖掉/etc/kubernetes/pki目录下apiserver.crt和apiserver.key证书。
8、验证访问
获取master节点/root/.kube/config文件,修改字段server: lb.kubesphere.local:7443为:server: 公网ip:7443
其他机器上远程访问验证:
Kubectl get node --kubeconfig=./config