升級 Apigee 代管執行個體群組

本頁面適用於 Apigee,但不適用於 Apigee Hybrid。

查看 Apigee Edge 說明文件。

本文說明如何檢查及升級 Compute Engine 代管執行個體群組,將北向流量轉送至 Apigee。

總覽

部分 Apigee 部署作業會透過在專案中執行的 Compute Engine 代管執行個體群組,轉送負載平衡器的 Proxy 流量,並將要求轉送至 Apigee 執行階段端點,包括北向負載平衡和使用 Private Service Connect 的主動健康狀態檢查。Apigee 不會管理這些 MIG。為確保安全性和可靠性,您必須自行追蹤、管理及升級這些 MIG 及其 VM,以符合 Compute Engine 作業系統生命週期。

OS 終止服務後,Compute Engine 會移除新 VM 的映像檔系列別名。MIG 中現有的 VM 會繼續運作,並在主機即時維護事件中存續。不過,如果 MIG 嘗試在自動調度資源、自動修復或滾動替換期間建立新的 VM,則會因為找不到來源映像檔系列,而無法建立 VM。如果健康狀態良好的 Proxy VM 無法使用,負載平衡器會傳回 HTTP 502 Bad Gateway 錯誤,且 API 流量會停止。

事前準備

本文中的指令僅供參考。您的部署作業可能會使用不同的網路標記、機型、磁碟大小、中繼資料或 VM 數量。請先檢查現有設定,並調整指令旗標,使其符合您的環境。

請將範例指令中的下列預留位置替換為環境中的值:

  • PROJECT_ID:部署 MIG 和執行個體範本的 Google Cloud 專案 ID。
  • REGION:MIG 的 Compute Engine 區域。
  • EXISTING_MIG_NAME:現有 MIG 的名稱。
  • OLD_TEMPLATE_NAME:附加至 EXISTING_MIG_NAME 的執行個體範本名稱。
  • NEW_TEMPLATE_NAME:您建立的新執行個體範本名稱。
  • VPC_NAME:MIG 使用的虛擬私有雲網路名稱。
  • VPC_SUBNET:MIG 使用的 REGION 中虛擬私有雲子網路名稱。
  • IMAGE_FAMILY:Compute Engine 作業系統詳細資料中支援的 OS 映像檔系列。
  • IMAGE_PROJECT:包含 IMAGE_FAMILY 的映文件專案。
  • APIGEE_ENDPOINT:在現有執行個體範本的 ENDPOINT 中繼資料中設定的目標 IP 位址。
  • STARTUP_SCRIPT_URL:在現有執行個體範本的 startup-script-url 中繼資料中設定的 Cloud Storage 網址。

檢查 MIG 和執行個體範本

Apigee 轉送 MIG 通常會使用 apigee-mig-proxy 標記和 ENDPOINT 中繼資料。請完成下列步驟,檢查 MIG 和執行個體範本:

  1. 列出專案中的 MIG,並找出附加的執行個體範本:

    gcloud compute instance-groups managed list --project=PROJECT_ID \
      --format="table(name,region.basename(),zone.basename(),instanceTemplate.basename())"
    
  2. 檢查現有執行個體範本的來源 OS 映像檔。如果範本為區域性,請新增 --region=REGION:

    gcloud compute instance-templates describe OLD_TEMPLATE_NAME \
      --project=PROJECT_ID \
      --format="value(properties.disks[0].initializeParams.sourceImage)"
    
  3. 檢查 OLD_TEMPLATE_NAME 的機型、磁碟設定、網路、子網路、標記和中繼資料,以便在建立新範本時比對這些設定。如果範本為區域性,請新增 --region=REGION:

    gcloud compute instance-templates describe OLD_TEMPLATE_NAME \
      --project=PROJECT_ID \
      --format="yaml(properties.machineType,properties.disks,properties.networkInterfaces,properties.tags,properties.metadata)"
    

建立新的執行個體範本並執行滾動式更新

使用支援的 OS 映像檔系列建立新的執行個體範本,並在 MIG 上啟動滾動式更新。搭配使用 --max-surge 與 --max-unavailable=0,可在耗盡及移除舊執行個體前,佈建及驗證新的 VM,即使新 VM 因資源缺貨或設定錯誤而無法啟動,也能避免流量中斷。

  1. 建立新的執行個體範本。以下指令為範例,請調整網路、子網路、標記、機器類型、磁碟大小和中繼資料,以符合現有的範本設定:

    gcloud compute instance-templates create NEW_TEMPLATE_NAME \
      --project=PROJECT_ID \
      --region=REGION \
      --network=VPC_NAME \
      --subnet=VPC_SUBNET \
      --tags=https-server,apigee-mig-proxy,gke-apigee-proxy \
      --machine-type=e2-medium \
      --image-family=IMAGE_FAMILY \
      --image-project=IMAGE_PROJECT \
      --boot-disk-size=20GB \
      --no-address \
      --metadata=ENDPOINT=APIGEE_ENDPOINT,startup-script-url=STARTUP_SCRIPT_URL
    

    這個指令會在 projects/PROJECT_ID/global/instanceTemplates/NEW_TEMPLATE_NAME 建立全域執行個體範本。如要建立區域執行個體範本,請新增 --instance-template-region=REGION,並在下一個步驟中使用 projects/PROJECT_ID/regions/REGION/instanceTemplates/NEW_TEMPLATE_NAME。

  2. 對 MIG 啟動滾動式更新。視需要根據 MIG 的大小和配額調整 --max-surge:

    gcloud compute instance-groups managed rolling-action start-update EXISTING_MIG_NAME \
      --project=PROJECT_ID \
      --region=REGION \
      --version=template=projects/PROJECT_ID/global/instanceTemplates/NEW_TEMPLATE_NAME \
      --max-surge=3 \
      --max-unavailable=0
    
  3. 確認 MIG 中的所有 VM 都執行 NEW_TEMPLATE_NAME,並回報 RUNNING 狀態:

    gcloud compute instance-groups managed list-instances EXISTING_MIG_NAME \
      --project=PROJECT_ID \
      --region=REGION
    

後續步驟