部署至 GKE Enterprise 使用者叢集

本文說明如何將應用程式部署至 GKE Enterprise 叢集。支援 GKE Enterprise 目標可讓您部署至 AWS、Azure 和內部部署叢集。

您可以使用 Cloud Deploy,將以容器為基礎的工作負載部署至任何可透過 Connect 閘道存取的 GKE Enterprise 使用者叢集。

事前準備

  • 您必須有要部署的 GKE Enterprise 使用者叢集。

    這個叢集可以是您建立的 GKE Enterprise 使用者叢集,也可以註冊現有的 Kubernetes 叢集。您為 GKE Enterprise 建立的叢集會自動收到會員資格。對於註冊至機群的現有叢集,您可以在註冊時指定成員名稱。您需要這個會員名稱來設定目標。

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

  • 設定 Connect 閘道,將已註冊的叢集連結至 Google Cloud。

    請務必使用與 Cloud Deploy 執行服務帳戶相同的服務帳戶設定網關。如果沒有,執行服務帳戶就沒有部署至 GKE Enterprise 叢集的必要權限。

設定 Cloud Deploy 以部署至 GKE Enterprise

  1. 建立目標設定

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

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

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

  3. 在 Anthos 叢集底層的 Kubernetes 叢集中,執行服務帳戶設定 RBAC。

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

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

    指定 GKE Enterprise 叢集的語法如下:

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

    這個 GKE Enterprise 資源 ID 使用下列元素:

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

      您要部署至的叢集 (包括 GKE Enterprise 叢集) 不必與提交管道位於同一個專案。

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

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

以下是指向 GKE Enterprise 使用者叢集的目標設定範例:

      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

後續步驟