设置 GKE 集群

本页面介绍如何使用 Anthos Service Mesh 所需的选项设置现有 GKE 集群。如果要将不同 Google Cloud 项目中的集群添加到 Anthos Service Mesh,这些集群必须位于共享虚拟私有云 (VPC)。如需了解详情,请参阅通过共享 VPC 设置集群

准备工作

在开始设置集群之前,请确保您已经:

设置现有集群

  1. 创建以下环境变量:

    • 设置集群名称:

      export CLUSTER_NAME=YOUR_CLUSTER_NAME

    • CLUSTER_LOCATION 设置为您的集群区域或集群地区:

      export CLUSTER_LOCATION=YOUR_ZONE_OR_REGION

    • 设置工作负载池:

      export WORKLOAD_POOL=${PROJECT_ID}.svc.id.goog

    • 设置网格 ID:

      export MESH_ID="proj-${FLEET_PROJECT_NUMBER}"

  2. 为 Google Cloud CLI 设置默认可用区或区域。如果您未在此处设置默认值,请务必在本页面的 gcloud container clusters 命令中指定 --zone--region 选项。

    • 如果您有一个单可用区集群,请设置默认可用区:

      gcloud config set compute/zone ${CLUSTER_LOCATION}
    • 如果您有一个区域级集群,请设置默认区域:

      gcloud config set compute/region ${CLUSTER_LOCATION}

    提示:为了让您以后更轻松地设置 shell 环境,您可以将每个环境变量的 export 语句复制并粘贴到启动新 shell 时将对其执行 source 的简单 shell 脚本。您还可以添加 gcloud 命令,以将默认值设置为脚本。或者,您可以使用 gcloud init 创建并激活命名的 gcloud 配置。

  3. 在集群上设置 mesh_id 标签,该标签对于在 Google Cloud 控制台中的 Anthos Service Mesh 信息中心显示指标必不可少。如果您的集群已有要保留的标签,则在添加 mesh_id 标签时必须将这些标签包含在内。

    1. 如需查看您的集群是否已有标签,请执行以下操作:

      gcloud container clusters describe ${CLUSTER_NAME} \
        --project ${PROJECT_ID}

      在输出中查找 resourceLabels 字段。每个标签都存储在 resourceLabels 字段下的单独的一行中,例如:

      resourceLabels:
        csm: ''
        env: dev
        release: stable

      如果 csm 标签位于输出中,则无需保留该标签。mesh_id 标签将替换 csm 标签。

      为方便起见,您可以向环境变量添加标签。在以下命令中,请将 YOUR_EXISTING_LABELS 替换为集群上以英文逗号分隔的现有标签列表,格式为 KEY=VALUE,例如:env=dev,release=stable

      export EXISTING_LABELS="YOUR_EXISTING_LABELS"
    2. 设置 mesh_id 标签:

      • 如果您的集群已有要保留的标签,请使用 mesh_id 和现有标签更新集群:

        gcloud container clusters update ${CLUSTER_NAME} \
          --project ${PROJECT_ID} \
          --update-labels=mesh_id=${MESH_ID},${EXISTING_LABELS}
      • 如果您的集群没有任何现有标签,请仅使用 mesh_id 标签更新集群:

        gcloud container clusters update ${CLUSTER_NAME} \
          --project=${PROJECT_ID} \
          --update-labels=mesh_id=${MESH_ID}
  4. 启用 Workload Identity

    gcloud container clusters update ${CLUSTER_NAME} \
       --project=${PROJECT_ID} \
       --workload-pool=${WORKLOAD_POOL}

    启用 Workload Identity 最长可能需要 10 到 15 分钟。

  5. 启用 GKE 上的 Cloud Monitoring 和 Cloud Logging

    gcloud container clusters update ${CLUSTER_NAME} \
       --project=${PROJECT_ID} \
       --enable-stackdriver-kubernetes

您下一步想要做什么?