使用kubectl config view
获取服务器地址,它看起来像 server: https://172.26.2.101:6443。
首先,您需要将主节点的公共 IP 或负载均衡器(如果有)定义为 DNS 替代方案。你可以这样做,
删除当前的 apiserver 证书
sudo rm /etc/kubernetes/pki/apiserver.*
生成新证书
sudo kubeadm init phase certs apiserver --apiserver-cert-extra-sans=<public_ip>
然后,您必须从 .kube/config 文件中获取您的管理员密钥、证书和 ca 证书
客户密钥数据:
echo -n "LS0...Cg==" | base64 -d > admin.key
客户证书数据:
echo -n "LS0...Cg==" | base64 -d > admin.crt
证书授权数据:
echo -n "LS0...Cg==" | base64 -d > ca.crt
现在您可以通过 curl 请求您的 api,例如下面的请求 pod 信息
curl https://<public_ip>:6443/api/v1/pods \
--key admin.key \
--cert admin.crt \
--cacert ca.crt
当然,请确保您允许所需的端口