自定义 Google Cloud 安装

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

使用此页面自定义新安装或配置 Knative serving 的现有舰队安装。例如,您可以为专用集群进行配置或设置 Cloud Monitoring 凭据。

默认安装步骤会自动部署以下 CloudRun 自定义资源,以便在 GKE Enterprise on Google Cloud 集群上启用指标:

  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 集群中的,“GKE 插件”配置为处理外部流量:
    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 部分下配置以下一个或多个特性来自定义安装:

    • 专用集群:您必须添加 clusterConfigisPrivate 属性集,才能在 Google Cloud 上的专用集群上安装 Knative serving。

      clusterConfigisPrivate 特性:

      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 或集群的完全限定标识符。
      • 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 --gke-cluster=CLUSTER_LOCATION/CLUSTER_NAME --config=CONFIG_FILE
    

    请替换以下内容:

    • CLUSTER_LOCATION 替换为您的集群所在的区域或可用区
    • CLUSTER_NAME 替换为集群的 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 namespace knative-serving -o 'go-template={{index .metadata.labels "serving.knative.dev/release"}}'
    4. knative-servingappdevexperience 命名空间下,验证所有 Knative serving 专用部署都处于运行状态。

后续步骤

设置 Knative serving