在 Google Cloud 外部安装 Knative serving

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

有关 Knative serving on VMware,请参阅 GA 级安装指南

对以下 GKE 集群的支持作为预览版提供:

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

准备工作

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

配置您的 CloudRun 自定义资源

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

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

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

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

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

  2. 确保您的 GKE 集群已启用 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