因为是公网环境, 所以要通过这个方式获取公网可访问的token

 

 

  1. 删除或备份当前k8s集群的apiserver的cert 和 key。

rm /etc/kubernetes/pki/apiserver.*

 

  1. 生成新的apiserver的cert和key

 

kubeadm init phase certs apiserver --apiserver-advertise-address ${172.31.117.40} --apiserver-cert-extra-sans ${8.130.53.125}

 

注意:--apiserver-advertise-address 的值,只需要填master的内网ip,不需要填k8s内部使用的 10.96.0.1

 

 

  1. 刷新admin.conf

cd /etc/kubernetes/pki

 kubeadm alpha certs renew admin.conf

 

  1. 重启apiserver

kubeadm部署的集群,apiserver 是以static pod形式部署的,将apiserver的yaml文件移出,再移回即可

cd /etc/kubernetes/manifests

mv kube-apiserver.yaml  ../

稍等2s

mv ../kube-apiserver.yaml .

此时,apiserver就会自动重建。

 

  1. 刷新.kube/config

cp /etc/kubernetes/admin.conf ~/.kube/

 

注意:这里生成的 admin.conf 文件,server填写的依然是master的内网IP,如果需要放在集群外的客户端上使用,将这个IP改为master的外网IP即可。