Kubernetes 连接到防火墙后的Kubernet群集时发生证书错误
我有一个裸机Kubernete集群在防火墙后面运行。当尝试从我的本地计算机(在防火墙的另一侧)连接到它时,由于证书不正确,连接无法工作Kubernetes 连接到防火墙后的Kubernet群集时发生证书错误,kubernetes,kubeadm,kubernetes-dashboard,Kubernetes,Kubeadm,Kubernetes Dashboard,我有一个裸机Kubernete集群在防火墙后面运行。当尝试从我的本地计算机(在防火墙的另一侧)连接到它时,由于证书不正确,连接无法工作 问题如下。群集在防火墙后面的网络中运行,证书是使用主IP创建的。但是,当我使用同一证书尝试从内部网络外部连接时,我使用了不同的IP。此时会出现错误消息,说明证书与我尝试连接的地址不同 我用于访问群集的IP与此处显示的实际群集IP不同: 我怎样才能修好它?是否可以在“我的主节点”中创建另一个具有不同IP的证书?您可以通过以下步骤向Kubernetes API服务
问题如下。群集在防火墙后面的网络中运行,证书是使用主IP创建的。但是,当我使用同一证书尝试从内部网络外部连接时,我使用了不同的IP。此时会出现错误消息,说明证书与我尝试连接的地址不同 我用于访问群集的IP与此处显示的实际群集IP不同:
我怎样才能修好它?是否可以在“我的主节点”中创建另一个具有不同IP的证书?您可以通过以下步骤向Kubernetes API服务器证书添加新的使用者备选名称(SAN) 首先需要您的
kubeadm
配置文件。这将创建一个名为kubeadm.yaml
的文件:
kubectl-n kube系统获取configmap kubeadm config-o jsonpath='{.data.ClusterConfiguration}>kubeadm.yaml
现在在编辑器中打开该文件,并在apiServer
部分下找到certSANs
列表。如果它不存在,您需要添加它;如果是这样,您只需将另一个条目添加到该列表中。例如:
apiServer:
certSANs:
- "172.29.50.162"
- "k8s.domain.com"
- "other-k8s.domain.net"
extraArgs:
authorization-mode: Node,RBAC
timeoutForControlPlane: 4m0s
现在将旧证书移动到另一个文件夹,否则kubeadm
将不会重新创建新证书:
mv/etc/kubernetes/pki/apiserver.{crt,key}~
使用kubeadm
生成新的apiserver证书:
kubeadm init阶段证书apiserver--config kubeadm.yaml
现在重新启动kubeapiserver容器:
docker ps | grep kube apiserver | grep-v pause
获取
运行Kubernetes API服务器的容器的容器IDdocker kill
终止容器kubeadm
ConfigMap,否则,未来的kubeadm
升级将缺少您的新配置:
kubeadm config从文件上传--config kubeadm.yaml
本文提供了一个关于如何