Kubernetes集群x509:Certifcate问题

时间:2017-05-04 07:26:59

标签: amazon-web-services cluster-computing kubernetes x509 kops

我使用 Kubernetes 使用 kops aws 上设置 this tutorial 群集在官方kubernetes github分支上。

群集在AWS上成功设置,但是当我尝试运行

kubectl get nodes

kops validate cluster

它说

[user@ip-70-0-0-7 ~]$ kubectl cluster-info
Unable to connect to the server: x509: certificate is valid for *.secure.hosting prod.com, not api.subdomain.mydomain.com

这绝对是我的 x509证书的问题。只需要轻轻推动正确的方向。感谢您宝贵的时间和帮助!

NOTE: I am running these commands from outside the cluster from a machine from where I did set up of cluster.

1 个答案:

答案 0 :(得分:2)

  

无法连接到服务器:x509:证书对* .secure.hosting prod.com有效,而不是api.subdomain.mydomain.com

我不知道你列出的那些名字是例子,还是kubectl给你的实际价值,但是我会用它们来保持简单

如果您安装的kubernetes群集确实可以通过api.secure.hostingprod.com访问,那么将$HOME/.kube/config更新为https://api.secure.hostingprod.com,其当前显示的位置https://api.subdomain.mydomain.com应该可以恢复原状。

或者,如果api.secure.hosting prod.com不是您可以使用的实际域(例如,如果您的证书确实在主机名中有空格),那么您有几个选项。

最便宜但最不正确的可能只是告诉kubectl“我知道我在做什么,不要通过在{{1下设置insecure-skip-tls-verify选项来检查证书” cluster文件中的条目:

$HOME/.kube/config

更麻烦但也是最正确的是使用实际主机名(显然是- cluster: insecure-skip-tls-verify: true )重新颁发API服务器的证书。如果您知道如何,超级最佳也是将“主题备用名称”(缩写为“SAN”)添加到证书中,以便集群内成员可以将其称为api.subdomain.mydomain.com和/或{ {1}}以及分配给https://kubernetes命名空间中https://kubernetes.default.svc.cluster.local Service的{​​{1}} IP地址。您当前的证书极有可能具有这些值,kubernetes将显示它们当前的状态。如果你需要openssl位的帮助,CoreOS Kubernetes有a shell script他们使用的,可能是书面的,或者没有其他任何东西提供非常具体的指导。

我确实认识到这很多,而且还有很多工作,但证书非常重要,所以尽可能让它们变得正确,这样可以真正让每个人心痛。