2017-05-04 96 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,它可能以書面形式工作,或者如果沒有其他提供非常具體的指導。

我確實認識到這是很多的話,也有很多工作,但是證書是非常重要的,所以讓它們儘可能地正確將真正節省每個人的心痛。