示例:我想要把开发环境k8s集群的controlPlaneEndpoint值由192.168.31.90:8443改为192.168.31.40:8443
1.先配置好haproxy的代理(参考haproxy)
2.修改kubeadm的configmap
#添加controlPlaneEndpoint与certSANs字段并配置为VIP,修改完成后保存退出 kubectl-n kube-system edit cm kubeadm-config apiServer: certSANs: - 192.168.31.40 extraArgs: authorization-mode: Node,RBAC timeoutForControlPlane: 4m0s apiVersion: kubeadm.k8s.io/v1beta3 controlPlaneEndpoint: 192.168.31.40:8443
3.更新cluster-info
kubectl -n kube-public edit cm cluster-info 修改server: https://192.168.31.90:8443字段为server: https://192.168.31.40:8443
4.更新apiserver证书(参考修改apiserver证书)
5.更新集群证书
kubeadm certs check-expiration kubeadm certs renew all
6.修改kubelet配置文件
vi /etc/kubernetes/kubelet.conf 修改server: https://192.168.31.90:8443字段为server: https://192.168.31.40:8443
7.修改修改kube-proxy配置
kubectl -n kube-system edit cm kube-proxy 修改server: https://192.168.31.90:8443字段为server: https://192.168.31.40:8443 重启kube-proxy for i in `kubectl -n kube-system get pod | grep kube-proxy| awk '{print $1}'`;do kubectl -n kube-system delete pod $i;done