为Kubernetes中的主机配置AWS publicIP

为Kubernetes中的主机配置AWS publicIP,kubernetes,kubeadm,Kubernetes,Kubeadm,我确实使用以下命令创建了主群集: kubeadm init——pod网络cidr$CALICO_网络 现在它正在监听内部IP 10.3.8.23:6443,这是正常的,因为我希望主机使用内部IP与节点通信 现在我想使用公共IP访问群集,出现以下错误: http:proxy错误:x509:证书对10.96.0.1、10.3.8.23有效,对18.230无效。* 如何为publicIP生成附加证书 我需要使用公共IP才能使用浏览器访问仪表板 我使用以下命令安装它:如果您想使用公共IP访问集群,可以使

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

kubeadm init——pod网络cidr$CALICO_网络

现在它正在监听内部IP 10.3.8.23:6443,这是正常的,因为我希望主机使用内部IP与节点通信

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

http:proxy错误:x509:证书对10.96.0.1、10.3.8.23有效,对18.230无效。*

如何为publicIP生成附加证书

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


我使用以下命令安装它:

如果您想使用公共IP访问集群,可以使用
kubeadm init
命令传递IP。比如:

kubeadm init --apiserver-cert-extra-sans=private-ip,public-ip \
  --pod-network-cidr $CALICO_NETWORK \
  --apiserver-advertise-address=private-ip

如果您不想重新创建群集,也可以执行以下操作:

对于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
rm/etc/kubernetes/pki/apiserver*
kubeadm阿尔法相位证书自签名\
--apiserver播发地址=0.0.0.0\
--证书altnames=10.96.0.1\
--证书altnames=10.3.8.23\

--cert altnames=18.230.x.x#如果这样做,将重新启动集群并断开所有节点的连接,有没有办法在不重置主节点的情况下执行此操作?
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