自訂 Google Cloud 安裝作業

瞭解如何在 Google Cloud的 GKE 叢集中安裝 Knative serving。Knative serving 現在使用 Cloud Service Mesh 和 GKE Enterprise 機群。瞭解 Knative serving 機群安裝的新功能和異動。

您可以在這個頁面自訂新的安裝項目,或設定現有的 Knative serving 機群安裝項目。例如,您可以設定私人叢集或 Cloud Monitoring 憑證。

預設安裝步驟會自動部署下列 CloudRun 自訂資源,在 Google Cloud 叢集上啟用 GKE Enterprise 指標:

  apiVersion: operator.run.cloud.google.com/v1alpha1
  kind: CloudRun
  metadata:
    name: cloud-run

如要瞭解自訂資源的一般資訊,請參閱「自訂資源」。

事前準備

  • 請務必確認您符合安裝必要條件。

  • 如果叢集已安裝 Knative serving,請務必確認「GKE 外掛程式」不存在,再執行這些機群元件安裝步驟。如果您已安裝「外掛程式」,則必須改為按照步驟升級至 GKE Enterprise 機群。

    檢查是否已安裝「GKE 外掛程式」。

    如要檢查 Knative serving 安裝項目是否為「GKE 外掛程式」,請執行下列指令:

    gcloud container clusters describe \
    CLUSTER_NAME \
    --region CLUSTER_LOCATION \
    --project PROJECT_ID --format='get(addonsConfig.cloudRunConfig)'

    取代:

    • CLUSTER_NAME:叢集名稱。
    • CLUSTER_LOCATION:叢集所在的位置。
    • 將 PROJECT_ID 替換為 Google Cloud 專案 ID。

    結果:

    • 未安裝「GKE 外掛程式」:
      • 如果從未安裝外掛程式,終端機不會傳回任何內容。
      • 如果外掛程式先前已解除安裝,則會傳回 disabled=true。
    • GKE 外掛程式已安裝:如果叢集已安裝外掛程式,系統會傳回外掛程式的設定詳細資料。範例:loadBalancerType=LOAD_BALANCER_TYPE_EXTERNAL
    範例:
    以下範例說明 Knative Serving 是透過「GKE 外掛程式」安裝在 my-addon-cluster 叢集中,該外掛程式已設定為處理外部流量:
    gcloud container clusters describe my-addon-cluster \
    --region us-central1-c --project my-gcp-project \
    --format='get(addonsConfig.cloudRunConfig)'

    回應:

    loadBalancerType=LOAD_BALANCER_TYPE_EXTERNAL

設定 CloudRun 自訂資源

您必須手動建立及設定 CloudRun 自訂資源,才能設定安裝作業。

如要為 Google Cloud上的 GKE 叢集手動建立 CloudRun 自訂資源,請按照下列步驟操作:
  1. 建立 YAML 檔案並加入預設設定,例如 cloudrunanthos.yaml:

    apiVersion: operator.run.cloud.google.com/v1alpha1
    kind: CloudRun
    metadata:
      name: cloud-run
    
  2. 在 cloudrunanthos.yaml 中,您可以透過在 spec 區段下設定下列一或多個屬性,自訂安裝作業:

    • 私人叢集:您必須新增 clusterConfig 和 isPrivate 屬性組合,才能在 Google Cloud的私人叢集上安裝 Knative serving。

      clusterConfig 和 isPrivate 屬性:

      spec:
        clusterConfig:
          isPrivate: true
      

      請注意,這項設定會停用代管 TLS,因為私人叢集預設無法與憑證授權單位通訊。

    • 指標:新增 metricscollector 屬性集,設定 Cloud Monitoring。根據預設,Google Cloud 叢集上的 GKE Enterprise 會啟用指標。

      spec:
        metricscollector:
          stackdriver:
            projectid: PROJECT_ID
            gcpzone: CLUSTER_LOCATION
            clustername: CLUSTER_NAME
            secretname: SECRET_NAME
            secretkey: SECRET_KEY
      

      更改下列內容:

      • PROJECT_ID: Google Cloud專案 ID。
      • 將 CLUSTER_LOCATION 替換為叢集所在的區域或可用區。
      • 將 CLUSTER_NAME 替換為叢集 ID 或叢集的完整 ID。
      • SECRET_NAME 替換為 knative-serving 命名空間服務帳戶的 Secret 名稱。
      • SECRET_KEY 替換為 knative-serving 命名空間服務帳戶的 Secret 金鑰。例如:key.json

        如要進一步瞭解服務帳戶,請參閱:

範例

在這個 CloudRun 自訂資源範例中,Cloud Monitoring 的設定詳細資料指定使用 my-gcp-logging-secret 密鑰和 key.json 金鑰:

 apiVersion: operator.run.cloud.google.com/v1alpha1
 kind: CloudRun
 metadata:
   name: cloud-run
 spec:
   metricscollector:
     stackdriver:
       projectid: my-gcp-project-id
       gcpzone: us-central1-c
       clustername: my-anthos-cluster-name
       secretname: my-gcp-logging-secret
       secretkey: key.json
 ```

啟用並安裝 Knative serving

在 GKE Enterprise 機群中啟用 Knative serving 元件,然後部署 CloudRun 自訂資源:

  1. 在機群中啟用 Knative serving:

    gcloud container fleet cloudrun enable --project=PROJECT_ID
    

    將 PROJECT_ID 替換為 Google Cloud 專案 ID。

    如需詳細資料和其他選項,請參閱 gcloud container fleet cloudrun enable 參考資料。

  2. 選用:確認 Knative serving 功能元件已啟用:

    控制台

    在Google Cloud 控制台中,查看 Knative serving 元件是否已啟用:

    前往功能管理工具

    指令列

    查看 appdevexperience 狀態是否為 ACTIVE:

    gcloud container fleet features list  --project=PROJECT_ID
    

    將 PROJECT_ID 替換為 Google Cloud 專案 ID。

    如需詳細資料和其他選項,請參閱 gcloud container fleet features list 參考資料。

    結果:

    NAME               STATE
    appdevexperience   ACTIVE
    
  3. 如要在 GKE Enterprise 叢集安裝 Knative serving,請務必為每個叢集部署 CloudRun 自訂資源:

    gcloud

    gcloud container fleet cloudrun apply --gke-cluster=CLUSTER_LOCATION/CLUSTER_NAME --config=CONFIG_FILE
    

    更改下列內容:

    • 將 CLUSTER_LOCATION 替換為叢集所在的區域或可用區。
    • 將 CLUSTER_NAME 替換為叢集 ID 或叢集的完整 ID。
    • CONFIG_FILE:cloudRun 自訂資源的檔案名稱相對路徑。範例 cloudrunanthos.yaml。

    如需詳細資料和其他選項,請參閱 gcloud container fleet cloudrun apply 參考資料。

    kubectl

    kubectl apply --kubeconfig=KUBECONFIG --filename CONFIG_FILE
    

    更改下列內容:

    • KUBECONFIG:kubectl 設定檔的絕對路徑。
    • CONFIG_FILE:cloudRun 自訂資源的檔案名稱和相對路徑。範例 cloudrunanthos.yaml。

    如需詳細資料和其他選項,請參閱 kubectl apply 參考資料。

  4. 確認叢集已啟用 Knative serving:
    1. 開啟 Google Cloud 控制台:

      前往 GKE 叢集

    2. 按一下叢集名稱,開啟詳細資料窗格。

    3. 執行下列指令,確認是否能查看 Knative Serving 版本詳細資料: kubectl get all -n knative-serving -o 'go-template={{index .metadata.labels "serving.knative.dev/release"}}'
    4. 確認所有 Knative Serving 專屬部署項目在 knative-serving 和 appdevexperience 命名空間下都處於執行中狀態。

後續步驟

設定 Knative serving 安裝項目。