私人叢集是一種虛擬私有雲 (VPC) 原生叢集,只會使用內部 IP 位址。也就是說,節點和 Pod 預設會與網際網路隔離。本頁面說明如何使用 Cloud Code 連線至私人叢集 (無論是否有公開端點存取權),並允許私人叢集從外部 Google Cloud存取資源。
如要瞭解私人叢集,請參閱「私人叢集」。如要瞭解如何設定私人叢集,請參閱「建立私人叢集」。
將私人 GKE 叢集新增至 KubeConfig
在 Cloud Code 中新增私人叢集時,會發生下列行為:
如果叢集已啟用公開端點,新增叢集會將 KubeConfig 中的叢集位址設為外部 IP。
對於已關閉公開端點的叢集,新增叢集會將 KubeConfig 中的叢集位址設為叢集的內部 VPC IP。
如要將授權網路新增至現有叢集,請確認您已連線至授權網路,因為這個叢集已啟用授權網路。
如要進一步瞭解如何連線至沒有外部 IP 位址的 VM,請參閱「安全地連線至 VM 執行個體」。如要管理/刪除您建立的執行個體,請參閱「VM 執行個體」。
如要成功連線至私人叢集,Cloud Code 必須在叢集網路中的機器上執行,或是能夠存取叢集網路,例如使用 Proxy 伺服器、Cloud Interconnect 或 Cloud VPN。
如要瞭解如何在 Cloud Code 中建立 GKE 叢集,以及將現有的 GKE 叢集新增至 Cloud Code,請參閱「建立及設定 GKE 叢集」。Cloud Code 會開啟 Google Cloud 主控台,以便建立叢集。
建立叢集後,如果在建立叢集期間未設定 Cloud NAT,請設定 Cloud NAT,以便叢集可發出網際網路連線。如要管理/刪除您建立的網路,請參閱「虛擬私有雲網路」。
排解連線至私人叢集的問題
如果開發環境未正確設定為存取私人叢集,系統會在下列情況下顯示解決問題的建議:
在展開的 Kubernetes Explorer 中,Cloud Code 無法連線的叢集會顯示在叢集名稱旁的錯誤圖示。如要查看可能的解決方法,以及潛在問題的詳細說明,請按一下叢集名稱。
當您嘗試在叢集中執行作業,但因私人叢集設定有潛在問題而無法存取時,通知會顯示錯誤訊息,並進一步說明潛在問題和潛在解決方法。
為叢集設定 Proxy 伺服器
如果控制層 API 無法公開使用 (例如在已關閉公開端點的 GKE 叢集中),您可以設定 Cloud Code,透過與叢集位於相同網路或 VPC 的 Proxy 伺服器,將要求代理至控制層:
- 如果尚未在叢集所在的網路上設定 Proxy 伺服器,請先完成這項設定。如要瞭解如何將 Compute Engine VM 設為基本 Proxy 伺服器,請參閱「使用防禦主機遠端存取私人叢集」一文。如需更多詳細資訊,請參閱「透過網路 Proxy 建立 Google Kubernetes Engine 私人叢集,以便存取控制器」。
- 對已新增至 Cloud Code 的叢集名稱按一下滑鼠右鍵,然後點選「為叢集設定 Kubectl 代理」。按照提示輸入 Proxy 伺服器名稱,該名稱會儲存在叢集的
proxy-url
欄位中。Kubernetes 檢視畫面會重新載入,顯示已連線的叢集。
取消 Kubernetes 代理
按一下您已為 Kubernetes 快取設定的叢集名稱,然後按一下「取消叢集的 Kubectl 快取」。Cloud Code 會透過取消設定 KubeConfig 中的 proxy-url
欄位,停止為叢集代管要求。
從叢集 Google Cloud 外部存取資源
並非所有 GKE 私人叢集設定都會提供可存取網際網路的節點。因此,叢集無法存取公開網際網路上的 API。叢集會自動設定私人 Google 存取權,例如允許叢集從 Artifact Registry 提取映像檔。如要存取 Google Cloud 以外的 API 和映像註冊表,您必須額外設定,允許節點建立傳出連線。如要提供這些連線,您可以在 Cloud Code 中設定 VPC 的 Cloud NAT:
- 執行「授予私人 GKE 節點外連網際網路存取權」指令,方法是按一下叢集的滑鼠右鍵,或透過指令面板 (按下
Ctrl
/Cmd
+Shift
+P
鍵,或依序點選「View」 >「Command Palette」)。 - 在終端機中編輯
gcloud compute routers create
和gcloud beta compute routers nats create
指令,指定應用程式的值。 - 如要執行指令,請按下
Enter
。 - 如要管理/刪除您建立的路由器,請參閱「Cloud Router」。
後續步驟
- 瞭解共用虛擬私有雲網路。