在 VMware 上安装 Knative 服务

了解如何在 Google Cloud 外部的 GKE 集群中安装 Knative 服务。Knative 服务现在使用 Anthos Service Mesh 和 GKE Enterprise 舰队。了解 Knative 服务舰队安装的新变化

警告:执行本页面中的步骤将执行新的 VMware 上的 Knative 服务安装,并且会不可逆转地覆盖您之前的非舰队安装。请勿在之前为其启用 Knative 服务的集群中继续执行以下步骤。

对于之前“免费试用”安装的 Knative 服务,您必须先升级 VMware 上的 Knative 服务以使用 GKE Enterprise 舰队

按照本页面上的步骤配置新安装或更新 Knative 服务的现有舰队安装

准备工作

您必须确保满足安装前提条件

配置您的 CloudRun 自定义资源

您需要手动创建和配置 CloudRun 自定义资源来配置安装。

如需手动为 Google Cloud 外部的 GKE 集群创建 CloudRun 自定义资源,请执行以下操作:

  1. 您必须创建或已有一个被授予所需的 Monitoring Metric Writer 角色 (monitoring.metricWriter) 的服务账号。

    • 如需创建新的服务账号,然后下载密钥,请参阅使用服务账号

    • 如果您已有一个具有必要权限的服务账号,请找到创建该服务账号时下载的密钥。

  2. 确保在 GKE on VMware 中启用 Cloud Monitoring

  3. 创建 knative-serving 命名空间:

    kubectl create namespace knative-serving
    
  4. knative-serving 命名空间中创建一个 Secret,以存储具有 monitoring.metricWriter 权限的服务账号:

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

    您需要在其中:

    • SECRET_NAME 替换为您为该 Secret 选择的名称。
    • 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 替换为您的 Google Cloud 项目的 ID。
    • CLUSTER_LOCATION 替换为您的集群所在的区域或可用区
    • CLUSTER_NAME 替换为集群的 ID 或集群的完全限定标识符。
    • SECRET_NAME 替换为 knative-serving 命名空间的服务账号的 Secret 名称。
    • SECRET_KEY 替换为 knative-serving 命名空间的服务账号的 Secret 密钥。例如:key.json

      如需详细了解服务账号,请参阅:

    示例

    在示例 CloudRun 自定义资源中,指定 Cloud Monitoring 的配置详细信息以使用 my-gcp-logging-secret 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 服务

在 GKE Enterprise 舰队中启用 Knative 服务组件,然后部署您的 CloudRun 自定义资源:

  1. 在舰队中启用 Knative 服务:

    gcloud container fleet cloudrun enable --project=PROJECT_ID
    

    PROJECT_ID 替换为您的 Google Cloud 项目的 ID。

    如需了解详情和其他选项,请参阅 gcloud container fleet cloudrun enable 参考文档。

  2. 可选:验证是否已启用 Knative 服务功能组件:

    控制台

    在 Google Cloud 控制台中查看 Knative 服务组件是否处于已启用状态:

    转到 GKE Enterprise 功能

    命令行

    查看 appdevexperience 状态是否为 ACTIVE

    gcloud container fleet features list  --project=PROJECT_ID
    

    PROJECT_ID 替换为您的 Google Cloud 项目的 ID。

    如需了解详情和其他选项,请参阅 gcloud container flee 功能列表参考文档。

    结果:

    NAME               STATE
    appdevexperience   ACTIVE
    
  3. 对于要安装 Knative 服务的每个 GKE Enterprise 集群,您必须部署 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 服务:
    1. 打开 Google Cloud 控制台:

      转到 GKE Enterprise 集群

    2. 点击集群名称以打开详细信息窗格。

    3. 运行以下命令,检查您能否看到 Knative 服务版本详细信息: kubectl get namespace knative-serving -o 'go-template={{index .metadata.labels "serving.knative.dev/release"}}'
    4. 验证在 knative-servingappdevexperience 命名空间下,所有特定于 Knative 的部署都处于运行状态。

后续步骤

设置 Knative 服务安装