为 Kubernetes 中的 Master 配置 AWS publicIP

tut*_*sis 2 kubernetes kubeadm

我确实使用以下命令创建了一个主集群:

kubeadm init --pod-network-cidr $CALICO_NETWORK

现在它正在侦听内部IP 10.3.8.23:6443,这没问题,因为我希望master使用内部IP与Nodes进行通信。

现在我想使用公共 IP 访问集群,但出现以下错误:

http:代理错误:x509:证书对 10.96.0.1、10.3.8.23 有效,不适用于 18.230.*.*。

如何为 publicIP 生成附加证书?

我需要使用公共 IP 才能使用浏览器访问仪表板。

我安装它使用:https : //github.com/kubernetes/dashboard

Ric*_*ico 5

如果您不想重新创建集群,您还可以执行此处描述的操作:kubernetes master 的无效 x509 证书

对于 K8s 1.7 及更早版本:

rm /etc/kubernetes/pki/apiserver.*
kubeadm alpha phase certs selfsign \
  --apiserver-advertise-address=0.0.0.0 \
  --cert-altnames=10.96.0.1 \
  --cert-altnames=10.3.8.23 \
  --cert-altnames=18.230.x.x  # <== Public IP
docker rm `docker ps -q -f 'name=k8s_kube-apiserver*'`
systemctl restart kubelet
Run Code Online (Sandbox Code Playgroud)

对于 K8s 1.8 更新:

rm /etc/kubernetes/pki/apiserver.*
kubeadm alpha phase certs all \
  --apiserver-advertise-address=0.0.0.0 \
  --apiserver-cert-extra-sans=10.96.0.1,10.3.8.23,18.230.x.x # <== Public IP
docker rm -f `docker ps -q -f 'name=k8s_kube-apiserver*'`
systemctl restart kubelet
Run Code Online (Sandbox Code Playgroud)

您还可以使用该--apiserver-cert-extra-sans选项添加 DNS 名称。