首页 新闻 会员 周边

如何修改 k8s 集群 control-plane-endpoint 主机名

0
悬赏园豆:100 [已解决问题] 解决于 2021-03-05 13:10

使用 kubernetes 遇到了一个头疼的问题,创建集群时 control-plane-endpoint 主机名用的是 k8s-api

kubeadm init \
    --control-plane-endpoint "k8s-api:6443" --upload-certs \
    --image-repository registry.aliyuncs.com/google_containers \
    --pod-network-cidr=192.168.0.0/16 \
    --v=6

现在想修改这个主机名,但集群的ca证书(ca.crt)是与主机名绑定的,请问如何修改?

k8s
dudu的主页 dudu | 高人七级 | 园豆:30948
提问于:2021-03-05 12:08
< >
分享
最佳答案
0

参考 github issue Update API server certSANs评论,通过 certSANs 解决了

操作步骤如下:

  • 编辑 kubeadm-config ConfigMap
kubectl edit cm kubeadm-config -n kube-system
  • 在 apiServer 配置下通过 certSANs 配置添加新的主机名
data:
  ClusterConfiguration: |
    apiServer:
      certSANs:
        - k8s.cnblogs.com
  • 将 kubeadm-config ConfigMap 导出为 kubeadmconf.yml 文件
kubeadm config view > /root/kubeadmconf.yml
  • 删除已有的 apiserver 证书
rm /etc/kubernetes/pki/apiserver.*
  • 基于 kubeadmconf.yml 文件重新生成证书
kubeadm init phase certs apiserver --config=/root/kubeadmconf.yml

重启服务器后可以可以通过新的主机名访问 apiserver

dudu | 高人七级 |园豆:30948 | 2021-03-05 12:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册