首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接到防火墙后的Kubernet群集时出现证书错误

连接到防火墙后的Kubernet群集时出现证书错误
EN

Stack Overflow用户
提问于 2019-10-30 02:14:16
回答 1查看 113关注 0票数 0

我有一个在防火墙后面运行的裸机Kubernete集群。当尝试从我的本地计算机(在防火墙的另一端)连接到它时,连接不工作,因为证书不正确。

问题如下。集群在防火墙后面的网络中运行,证书是使用主IP创建的。但是,当我使用相同的证书尝试从内部网络外部连接时,我使用的是不同的IP。此时会出现错误消息,指出证书与我尝试连接的地址不同。

我用于访问集群的IP与此处显示的实际集群IP不同:

我怎么才能修复它?是否可以在我的主节点中使用不同的IP创建另一个证书?

EN

回答 1

Stack Overflow用户

发布于 2019-10-30 02:47:45

您可以通过以下步骤将新的使用者备用名称( can )添加到Kubernetes API服务器证书。

首先需要您的kubeadm配置文件。这将创建一个名为kubeadm.yaml的文件

kubectl -n kube-system get configmap kubeadm-config -o jsonpath='{.data.ClusterConfiguration}' > kubeadm.yaml

现在在编辑器中打开该文件,并在apiServer部分下找到certSANs列表。如果它不存在,则需要添加它;如果存在,则只需向该列表中添加另一个条目。示例:

代码语言:javascript
复制
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 phase certs apiserver --config kubeadm.yaml

现在重新启动kubeapiserver容器:

  1. 运行docker ps | grep kube-apiserver | grep -v pause获取运行Kubernetes API服务器的容器的容器ID
  2. 运行docker kill <containerID>杀死certificate.

Kubelet将自动重启容器,容器将获得新的Kubelet

如果一切正常,请不要忘记更新集群中存储的kubeadm ConfigMap,否则,将来的kubeadm升级将缺少新的配置:

kubeadm config upload from-file --config kubeadm.yaml

这篇文章有一个关于如何的更完整的指南

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58613244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档