2017-05-04 94 views
1

我成立Kubernetes群集上使用官方kubernetes GitHub的分支this tutorial使用kopsAWSKubernetes集群X509:荣誉证书问题

集群建立成功的AWS,但是当我尝试运行

kubectl get nodes 

kops validate cluster 

它说

[[email protected] ~]$ 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.

+0

您正在使用哪种操作系统?至少CENTOS有关于证书的安装依赖关系。 –

+0

这是亚马逊艾米 –

回答

1

无法连接到服务器:X509:证书有效期为* .secure.hosting prod.com,不api.subdomain.mydomain.com

我可以” t告诉你列出的这些名字是否是例子,或者是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“我知道我在做什么,不检查证书”由$HOME/.kube/config文件cluster条目下设置insecure-skip-tls-verify选项:

- cluster: 
    insecure-skip-tls-verify: true 

使用实际主机名(显然为api.subdomain.mydomain.com),更麻烦但最正确的是重新颁发API服务器的证书。如果您知道如何,超级最好的方法是在证书中添加“主题备用名称”(缩写为“SAN”),以便群集内成员可以将其称为https://kubernetes和/或https://kubernetes.default.svc.cluster.local,以及Service分配给名称空间default中的kubernetesService的IP地址。您目前的证书极有可能具有这些值,openssl x509 -in /path/to/your.crt -noout -text会向您显示他们目前的状态。如果您需要openssl位的帮助,CoreOS Kubernetes已经使用了a shell script,它可能以书面形式工作,或者如果没有其他提供非常具体的指导。

我确实认识到这是很多的话,也有很多工作,但是证书是非常重要的,所以让它们尽可能地正确将真正节省每个人的心痛。