控制層 IP 輪替

本頁說明如何為 Google Kubernetes Engine 中的控制層執行 IP 輪替。

總覽

您可以執行 IP 輪替,為用來服務 Kubernetes API 要求的叢集的 Kubernetes 主要執行個體,變更其使用的 IP 位址。

IP 輪替也會變更 SSL 憑證和叢集憑證授權單位,因此在之前的位址和新位址之間,不會產生外部可以檢視的連線。

事前準備

如要準備這項工作,請執行下列步驟:

  • 確認您已啟用 Google Kubernetes Engine API。
  • 啟用 Google Kubernetes Engine API
  • 確認您已安裝 Cloud SDK
  • 設定預設的專案 ID
    gcloud config set project [PROJECT_ID]
  • 如果您使用區域叢集,請設定預設的運算區域
    gcloud config set compute/zone [COMPUTE_ZONE]
  • 如果您使用地區叢集,請設定預設的運算地區
    gcloud config set compute/region [COMPUTE_REGION]
  • gcloud 更新到最新版本:
    gcloud components update

IP 輪替的運作方式

IP 輪替程序有多個步驟:

  • 啟動 IP 輪替時,叢集主要執行個體除了原本的 IP 位址之外,也會開始為新的 IP 位址提供服務。
  • 啟動輪替之後,您必須更新叢集的 API 用戶端 (例如使用 kubectl 指令列介面的開發機器),開始透過新的 IP 位址與主要執行個體通訊。
  • 完成輪替之後,主要執行個體便會停止透過之前的 IP 位址提供流量。

執行 IP 輪替

以下章節會說明如何執行 IP 輪替。

啟動輪替

若要啟動 IP 輪替,請執行下列指令:

gcloud container clusters update [CLUSTER_NAME] --start-ip-rotation

其中 [CLUSTER_NAME] 是叢集的名稱

這個指令會設定叢集主要執行個體提供兩個 IP 位址的服務,為原本位址和新位址兩個 IP 位址提供服務。此作業會造成叢集 API 短暫停機。

指令傳回下列結果:


This will start an IP Rotation on cluster [CLUSTER-NAME].
The master will be updated to serve on a new IP address in addition to
the current IP address. GKE will then recreate all
nodes to point to the new IP address. This operation is
long-running and will block other operations on the cluster (including
delete) until it has run to completion.
Do you want to continue (Y/n)?

確認後,請將 Shell 保持開啟,直到作業完成為止。

重新設定主要執行個體之後,GKE 會自動更新叢集的節點,以使用新的 IP 位址。每個節點集區都會標示為「需要重建」。自動重建完成後,GKE 才會結束 IP 輪替。

檢查輪替

若要監控更新作業,請執行下列指令:

gcloud container operations list --filter="UPGRADE_NODES RUNNING"

此指令會傳回更新作業的「作業 ID」

如要對作業進行輪詢,請將作業 ID 傳送至下列指令:

gcloud container operations wait [OPERATION_ID]

系統會逐一重建節點集區,每個集區都有各自的作業。如果您有多個節點集區,可依照上述的操作說明,對每個作業進行輪詢。

更新 API 用戶端

啟動 IP 憑證輪替後,您必須更新叢集外的所有 API 用戶端 (例如開發人員機器上的 kubectl) 以指向新位址。

如要更新 API 用戶端,請對每個用戶端執行下列指令:

gcloud container clusters get-credentials [CLUSTER_NAME]

完成輪替

若要完成輪替,請執行下列指令:

gcloud container clusters update [CLUSTER_NAME] --complete-ip-rotation

指令傳回下列結果:

This will complete the in-progress IP Rotation on cluster [CLUSTER_NAME].
The master will be updated to stop serving on the old IP address and only
serve on the new IP address. Make sure all API clients have been updated
to communicate with the new IP address (e.g. by running `gcloud container
clusters get-credentials --project [PROJECT-ID] --zone [COMPUTE-ZONE]
[CLUSTER-NAME]`). This operation is long-running and will
block other operations on the cluster (including delete) until it has
run to completion.

這個指令會將叢集主要執行個體設成只使用新 IP 位址提供服務。此作業會造成叢集 API 短暫停機。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Kubernetes Engine 說明文件