我正在尝试从我的工作站访问我的 k8s 主机。我可以很好地从 LAN 访问主站,但不能从我的工作站访问。错误信息是:
% kubectl --context=employee-context get pods
Unable to connect to the server: x509: certificate is valid for 10.96.0.1, 10.161.233.80, not 114.215.201.87
如何将 114.215.201.87 添加到证书中?我是否需要删除旧集群 ca.crt,重新创建它,重新启动整个集群,然后重新签署客户端证书?我已经使用 kubeadm 部署了我的集群,但我不确定如何手动执行这些步骤。
最佳答案
一种选择是告诉 kubectl
您不希望验证证书。显然这会带来安全问题,但我猜你只是在测试,所以你去吧:
kubectl --insecure-skip-tls-verify --context=employee-context get pods
更好的选择是修复证书。最简单的方法是通过运行 kubeadm reset
重新初始化集群在包括主节点在内的所有节点上,然后执行kubeadm init --apiserver-cert-extra-sans=114.215.201.87
也可以在不删除所有内容的情况下修复该证书,但这有点棘手。以 root 身份在 master 上执行如下操作:rm /etc/kubernetes/pki/apiserver.*
kubeadm init phase certs all --apiserver-advertise-address=0.0.0.0 --apiserver-cert-extra-sans=10.161.233.80,114.215.201.87
docker rm `docker ps -q -f 'name=k8s_kube-apiserver*'`
systemctl restart kubelet
关于kubernetes - kubernetes master 的 x509 证书无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46360361/