新增 TLS Secrets
Kubernetes 會為 Rancher 建立所有的物件和服務 ,但在我們將憑證和金鑰填入 cattle-system 命名空間中的 tls-rancher-ingress secret 之前,Rancher 將無法使用。
將伺服器憑證與所需的任何中繼憑證依序合併到名為 tls.crt 的檔案中。將您的憑證金鑰複製到名為 tls.key 的檔案中。
例如,acme.sh 會在 fullchain.cer 檔案中提供伺服器憑證和 CA 鏈。
此 fullchain.cer 應重新命名為 tls.crt,憑證金鑰檔案則重新命名為 tls.key。
使用 kubectl 配合 tls secret 類型來建立 secret。
kubectl -n cattle-system create secret tls tls-rancher-ingress \
--cert=tls.crt \
--key=tls.key
如果您想要更換憑證,可以使用 kubectl -n cattle-system delete secret tls-rancher-ingress 刪除 tls-rancher-ingress secret,然後使用上述指令新增一個新的 secret。如果您使用的是私有 CA 簽署的憑證,只有在新憑證是由與目前使用的憑證相同的 CA 簽署時,才能更換憑證。
使用私有 CA 簽署的憑證
如果您使用的是私有 CA,Rancher 需要一份私有 CA 的根憑證或憑證鏈的副本,Rancher Agent 會使用它來驗證與伺服器的連線。
建立一個名為 cacerts.pem 的檔案,其中僅包含您私有 CA 的根 CA 憑證或憑證鏈,然後使用 kubectl 在 cattle-system 命名空間中建立 tls-ca secret。
kubectl -n cattle-system create secret generic tls-ca \
--from-file=cacerts.pem
當 Rancher 啟動時會取得已設定的 tls-ca secret。在已運作的 Rancher 安裝中,更新的 CA 將在新的 Rancher Pod 啟動後生效。
憑證鏈必須正確格式化,否則元件可能無法從 Rancher 伺服器下載資源。
新增額外的 CA 憑證
如果您使用的節點驅動程式會使用與為 Rancher 設定的 CA 不同的 CA 來發出 API 請求,您可以新增額外的根憑證和憑證鏈。
為每個所需的憑證建立一個以 .pem 結尾的唯一檔案,然後使用 kubectl 在 cattle-system 命名空間中建立 tls-additional secret。
kubectl -n cattle-system create secret generic tls-additional \
--from-file=cacerts1.pem=cacerts1.pem --from-file=cacerts2.pem=cacerts2.pem
Rancher 會在佈建期間將這些 CA 根憑證和憑證鏈掛載到節點驅動程式 Pod 中。
更新私有 CA 憑證
請依照此頁面上的步驟,更新 Rancher 高可用性 Kubernetes 安裝中 Ingress 的 SSL 憑證,或從預設的自簽憑證切換到自訂憑證。