备份
cp -r /etc/kubernetes/pki /etc/kubernetes/pki.bak
通过如下方式获取原来的kubeadm.yaml
kubectl -n kube-system get configmap kubeadm-config -o jsonpath='{.data.ClusterConfiguration}' --kubeconfig=/etc/kubernetes/admin.conf > /tmp/kubeadm.yaml
修改kubeadm.yaml中的certSANs,添加新的san,比如127.0.0.1
...
certSANs:
- 127.0.0.1
...
重新生成apiserver证书
kubeadm init phase certs apiserver --config kubeadm.yaml
检查apiserver证书的san(X509v3 Subject Alternative Name下面一行)
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text
重启apiserver
docker ps|grep -E "kube-apiserver"| grep -v pause|awk '{print $1}'|xargs -I {} docker restart {}
补充
kubeadm init时候如果不指定InitConfiguration中的LocalAPIEndpoint的AdvertiseAddress,则使用/proc/net/route内第一个网络设备对应的ip
kubelet server证书在/var/lib/kubelet/pki/目录下,为kubelet-server-current.pem,软连接到实际的文件,如/var/lib/kubelet/pki/kubelet-server-2023-12-27-11-12-34.pem
网友评论