在 Kubernetes 中为 Master 配置 AWS publicIP
Configure AWS publicIP for a Master in Kubernetes
我确实使用以下命令创建了一个主集群:
kubeadm init --pod-network-cidr $CALICO_NETWORK
现在正在监听内部IP 10.3.8.23:6443,这没问题,因为我希望master使用内部IP与Nodes通信。
现在我想使用 public IP 访问集群,但出现以下错误:
http:代理错误:x509:证书对 10.96.0.1、10.3.8.23 有效,对 18.230.*.*.
无效
如何为 publicIP 生成额外的证书?
我需要使用 public IP 才能使用浏览器访问仪表板。
如果您想使用 public 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
对于更新的 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
您还可以使用 --apiserver-cert-extra-sans
选项添加 DNS 名称。
我确实使用以下命令创建了一个主集群:
kubeadm init --pod-network-cidr $CALICO_NETWORK
现在正在监听内部IP 10.3.8.23:6443,这没问题,因为我希望master使用内部IP与Nodes通信。
现在我想使用 public IP 访问集群,但出现以下错误:
http:代理错误:x509:证书对 10.96.0.1、10.3.8.23 有效,对 18.230.*.*.
无效如何为 publicIP 生成额外的证书?
我需要使用 public IP 才能使用浏览器访问仪表板。
如果您想使用 public 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
对于更新的 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
您还可以使用 --apiserver-cert-extra-sans
选项添加 DNS 名称。