使用 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)是与主机名绑定的,请问如何修改?
参考 github issue Update API server certSANs 的评论,通过 certSANs
解决了
操作步骤如下:
kubectl edit cm kubeadm-config -n kube-system
data:
ClusterConfiguration: |
apiServer:
certSANs:
- k8s.cnblogs.com
kubeadm config view > /root/kubeadmconf.yml
rm /etc/kubernetes/pki/apiserver.*
kubeadm init phase certs apiserver --config=/root/kubeadmconf.yml
重启服务器后可以可以通过新的主机名访问 apiserver