在 Cloud Shell 適用的 Cloud Code 中設定私人叢集

私人叢集是一種虛擬私有雲 (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 伺服器,將要求代理至控制層:

  1. 如果尚未在叢集所在的網路上設定 Proxy 伺服器,請先完成這項設定。如要瞭解如何將 Compute Engine VM 設為基本 Proxy 伺服器,請參閱「使用防禦主機遠端存取私人叢集」一文。如需更多詳細資訊,請參閱「透過網路 Proxy 建立 Google Kubernetes Engine 私人叢集,以便存取控制器」。
  2. 已新增至 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

  1. 執行「授予私人 GKE 節點外連網際網路存取權」指令,方法是按一下叢集的滑鼠右鍵,或透過指令面板 (按下 Ctrl/Cmd+Shift+P 鍵,或依序點選「View」 >「Command Palette」)。
  2. 在終端機中編輯 gcloud compute routers creategcloud beta compute routers nats create 指令,指定應用程式的值。
  3. 如要執行指令,請按下 Enter
  4. 如要管理/刪除您建立的路由器,請參閱「Cloud Router」。

後續步驟