Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 连接到防火墙后的Kubernet群集时发生证书错误_Kubernetes_Kubeadm_Kubernetes Dashboard - Fatal编程技术网

Kubernetes 连接到防火墙后的Kubernet群集时发生证书错误

Kubernetes 连接到防火墙后的Kubernet群集时发生证书错误,kubernetes,kubeadm,kubernetes-dashboard,Kubernetes,Kubeadm,Kubernetes Dashboard,我有一个裸机Kubernete集群在防火墙后面运行。当尝试从我的本地计算机(在防火墙的另一侧)连接到它时,由于证书不正确,连接无法工作 问题如下。群集在防火墙后面的网络中运行,证书是使用主IP创建的。但是,当我使用同一证书尝试从内部网络外部连接时,我使用了不同的IP。此时会出现错误消息,说明证书与我尝试连接的地址不同 我用于访问群集的IP与此处显示的实际群集IP不同: 我怎样才能修好它?是否可以在“我的主节点”中创建另一个具有不同IP的证书?您可以通过以下步骤向Kubernetes API服务

我有一个裸机Kubernete集群在防火墙后面运行。当尝试从我的本地计算机(在防火墙的另一侧)连接到它时,由于证书不正确,连接无法工作
问题如下。群集在防火墙后面的网络中运行,证书是使用主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服务器的容器的容器ID
  • 运行
    docker kill
    终止容器
  • Kubelet将自动重新启动容器,容器将获取新证书
  • 如果一切正常,请不要忘记更新集群中存储的
    kubeadm
    ConfigMap,否则,未来的
    kubeadm
    升级将缺少您的新配置:

    kubeadm config从文件上传--config kubeadm.yaml

    本文提供了一个关于如何