部署至 GKE 連接的叢集

本文說明如何將應用程式部署至 GKE 連結叢集。支援 GKE 附加叢集,可部署至 AWS、Azure 和地端叢集。

透過 Cloud Deploy,您可以將容器型工作負載部署至任何 GKE 連結的叢集,並使用 Connect 閘道存取這些叢集。

事前準備

  • 擁有要部署的使用者叢集。

    您可以將叢集建立為 GKE 附加叢集,也可以註冊現有的 Kubernetes 叢集。您以 GKE 連結叢集建立的叢集會自動取得成員資格。如果是要向機群註冊現有叢集,請在註冊時指定成員名稱。設定目標時,您需要這個會員方案名稱。

    如果您使用 Google Cloud CLI 407.0.0 以上版本,註冊 Google Kubernetes Engine 叢集時,必須在 gcloud container fleet memberships register 指令中加入 --install-connect-agent 旗標。Connect 代理程式不再預設安裝。

  • 設定 Connect Gateway,將已註冊的叢集連線至 Google Cloud。

    請務必使用與Cloud Deploy 執行服務帳戶相同的服務帳戶設定閘道。否則執行服務帳戶就沒有部署至叢集的必要權限。

設定 Cloud Deploy,以便部署至 GKE 連接的叢集

  1. 建立目標設定

    您可以在交付管道 YAML 中設定目標,也可以將目標放在個別檔案中。此外,您可以在同一個檔案中設定多個目標,但必須位於不同的 kind: Target 節中。

  2. 授予執行服務帳戶所需角色,以便透過閘道與連結的叢集互動。

    無論您是使用預設的 Cloud Deploy 服務帳戶,還是自訂服務帳戶,都必須授予這項權限。

  3. 在基礎 Kubernetes 叢集上,為執行服務帳戶設定 RBAC

  4. 選用:如果基礎叢集不是 GKE 叢集,您可能需要設定 imagePullSecret,允許叢集從 Artifact Registry 提取內容。

  5. 在目標定義中,建立 anthosCluster 節,指向叢集:

    指定 GKE 附加叢集的語法如下:

    anthosCluster:
     membership: projects/[project_name]/locations/global/memberships/[membership_name]
    

    這個 GKE 連結叢集資源 ID 包含下列元素:

    • [project_name] 是您執行這個叢集的專案名稱。 Google Cloud

      您要部署的叢集 (包括 GKE 連結的叢集) 必與推送管道位於同一專案。

    • [membership_name] 是您向機群註冊叢集時選擇的名稱。

    對於 location,所有叢集成員都是 global,因此您不需要變更這個資源 ID 中的 /locations/global/

以下是目標設定範例:

      apiVersion: deploy.cloud.google.com/v1
      kind: Target
      metadata:
       name: qsdev
      description: development cluster
      anthosCluster:
       membership: projects/my-app/locations/global/memberships/my-app-dev-cluster

後續步驟