在 Google Cloud 以外的環境安裝 Knative Serving

瞭解如何在 GKE 叢集 Google Cloud外部安裝 Knative Serving。 Knative serving 現在使用 Cloud Service Mesh 和 GKE Enterprise 機群。瞭解 Knative serving 叢集安裝作業的新功能和異動項目

如要瞭解 VMware 上的 Knative serving,請參閱正式版安裝指南

下列 GKE 叢集支援功能目前為預先發布版

請按照本頁的步驟設定新安裝項目,或更新現有的 Knative Serving 機群安裝項目

事前準備

請務必符合安裝必要條件

設定 CloudRun 自訂資源

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

如要手動為CloudRun外部 Google CloudGKE 叢集建立自訂資源:

  1. 您必須建立或使用現有的服務帳戶,並授予該帳戶必要的監控指標寫入者角色 (monitoring.metricWriter)。

    • 如要建立新的服務帳戶並下載金鑰,請參閱「使用服務帳戶」。

    • 如果您有具備必要權限的現有服務帳戶,請找出建立該服務帳戶時下載的金鑰。

  2. 確認 GKE 叢集已啟用 Cloud Monitoring:

  3. 建立 knative-serving 命名空間:

    kubectl create namespace knative-serving
    
  4. knative-serving 命名空間中建立密鑰,其中包含具備 monitoring.metricWriter 權限的服務帳戶:

    kubectl create secret -n knative-serving generic SECRET_NAME --from-file=PATH_TO_KEY_FILE/SECRET_KEY
    

    取代:

    • SECRET_NAME 改成您為密鑰選擇的名稱。
    • SECRET_KEY 改成包含您憑證的檔案名稱。範例:key.json
    • PATH_TO_KEY_FILE 替換為 SECRET_KEY 目錄的路徑。

    詳情請參閱 kubectl create secret 參考資料,包括選用標記。

  5. 建立具有下列屬性的 YAML 檔案,例如 cloudrunanthos.yaml

    apiVersion: operator.run.cloud.google.com/v1alpha1
    kind: CloudRun
    metadata:
      name: cloud-run
    spec:
      metricscollector:
        stackdriver:
          projectid: PROJECT_ID
          gcpzone: CLUSTER_LOCATION
          clustername: CLUSTER_NAME
          secretname: SECRET_NAME
          secretkey: SECRET_KEY
    

    更改下列內容:

    • PROJECT_ID 替換為專案的 ID。 Google Cloud
    • CLUSTER_LOCATION,並將 region 或 zone 替換為叢集所在的區域。
    • CLUSTER_NAME 改成叢集 ID 或叢集的完整 ID。
    • SECRET_NAME,並將 knative-serving 命名空間的服務帳戶私密金鑰名稱。
    • SECRET_KEY,並將 knative-serving 命名空間的服務帳戶私密金鑰。例如: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 服務元件,然後部署 CloudRun 自訂資源:

  1. 在機群中啟用 Knative serving:

    gcloud container fleet cloudrun enable --project=PROJECT_ID
    

    PROJECT_ID 替換為專案 ID。 Google Cloud

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

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

    控制台

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

    前往功能管理工具

    指令列

    查看 appdevexperience 狀態是否為 ACTIVE

    gcloud container fleet features list  --project=PROJECT_ID
    

    PROJECT_ID 替換為專案 ID。 Google Cloud

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

    結果:

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

    gcloud

    gcloud container fleet cloudrun apply --kubeconfig=KUBECONFIG --context=CONTEXT --config=CONFIG_FILE
    

    更改下列內容:

    • KUBECONFIG 是 kubectl 設定檔的絕對路徑。
    • CONTEXT,kubectl 設定檔中的內容名稱會用於連線。
    • 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-servingappdevexperience 命名空間下,所有 Knative 服務專屬的部署作業都處於執行狀態。

後續步驟

設定 Knative serving 安裝項目