安装 Knative serving on VMware

了解如何在 Google Cloud 外部的 GKE 集群中安装 Knative serving。Knative serving 现在使用 Cloud Service Mesh 和 GKE Enterprise 舰队。了解 Knative serving 舰队安装的新功能和更改

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

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

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

准备工作

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

配置您的 CloudRun 自定义资源

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

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

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

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

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

  2. 确保已在 Google Distributed Cloud 中启用 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 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 组件:

    前往 Feature Manager

    命令行

    查看 appdevexperience 状态是否为 ACTIVE

    gcloud container fleet features list  --project=PROJECT_ID
    

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

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

    结果:

    NAME               STATE
    appdevexperience   ACTIVE
    
  3. 对于要在其中安装 Knative serving 的每个 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 serving:
    1. 打开 Google Cloud 控制台:

      转到 GKE 集群

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

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

后续步骤

设置 Knative serving 的安装