2017-06-04 74 views
0

我正嘗試在Kubernetes中的另一個服務前面使用NginX代理LoadBalancer服務器或Ingress構建HTTPs代理服務器。無論哪種方式,我需要一個證書和密鑰,以便我的外部請求得到驗證。如何使用Kubernetes SSL證書

我正在查看how to manage tls in a cluster,我注意到用於連接到容器羣集的證書與安裝在運行窗格上的/var/run/secrets/kubernetes.io/serviceaccount/ca.crt上的證書相同。

所以我在想我的節點集羣已經有一個註冊證書,我需要的只是密鑰,把它放到一個祕密中,並將其裝入我的代理服務器。但我找不到如何。

這是簡單的嗎?我會怎麼做?或者我需要創建一個新的證書,簽名等等?那麼我需要替換當前的證書嗎?

回答

3

如果你想要一個外部請求進入你的K8s集羣,那麼這是ingress controller的工作,或者如果你的雲提供商支持它,用負載均衡器配置服務。

your reference討論的證書的真正含義用於羣集內通信,因爲它說:

每個Kubernetes集羣都有一個集羣的根證書頒發機構(CA)。該CA是普遍使用的羣集組件來驗證API服務器的證書,由API服務器驗證kubelet客戶端證書等

如果你去入口的方法,然後here is the doc for tls。底部有一個alternatives的列表,如load balancer的方法。

我想你可以在外部使用內部證書,如果你能讓所有的外部客戶端信任它。我個人可能會使用kube-lego,它自動從Let's Encrypt獲取證書,因爲大多數瀏覽器現在都信任此CA.

希望這會有所幫助