Mr.*_*jun 3 cluster-computing amazon-web-services x509 kubernetes kops
我使用官方 kubernetes github 分支上的本教程,使用kops在aws上设置Kubernetes集群。
集群在 AWS 上成功设置,但是当我尝试运行时
kubectl get nodes
Run Code Online (Sandbox Code Playgroud)
或者
kops validate cluster
Run Code Online (Sandbox Code Playgroud)
它说
[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
Run Code Online (Sandbox Code Playgroud)
这绝对是我的x509 证书的问题。只需轻轻推向正确的方向即可。感谢您的宝贵时间和帮助!
NOTE: I am running these commands from outside the cluster from a machine from where I did set up of cluster.
无法连接到服务器: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
设置选项来告诉“我知道我在做什么,不要检查证书” :insecure-skip-tls-verify
cluster
$HOME/.kube/config
- cluster:
insecure-skip-tls-verify: true
Run Code Online (Sandbox Code Playgroud)
更麻烦但也是最正确的方法是使用实际主机名(显然)重新颁发 API 服务器的证书api.subdomain.mydomain.com
。如果您知道如何操作,最好的办法就是将“主题备用名称”(缩写为“SAN”)添加到证书中,以便集群内成员可以将其与IP 地址一起引用为https://kubernetes
和/或分配给命名空间中的。您当前的证书很可能具有这些值,这将向您显示它们当前的值。如果您需要 openssl 位方面的帮助,CoreOS Kubernetes 有一个 shell 脚本https://kubernetes.default.svc.cluster.local
Service
kubernetes
Service
default
openssl x509 -in /path/to/your.crt -noout -text
,该脚本可能按书面方式工作,或者如果没有其他内容提供非常具体的指导。
我确实认识到这需要很多文字,也需要很多工作,但是证书非常重要,因此尽可能正确地获得证书确实可以避免每个人的心痛。
归档时间: |
|
查看次数: |
4694 次 |
最近记录: |