本页面介绍如何使用 Anthos Service Mesh 所需的选项设置现有 GKE 集群。如果要将不同 Google Cloud 项目中的集群添加到 Anthos Service Mesh,这些集群必须位于共享虚拟私有云 (VPC)。如需了解详情,请参阅通过共享 VPC 设置集群。
准备工作
在开始设置集群之前,请确保您已经:
设置现有集群
创建以下环境变量:
设置集群名称:
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}"
为 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
配置。在集群上设置
mesh_id
标签,该标签对于在 Google Cloud 控制台中的 Anthos Service Mesh 信息中心显示指标必不可少。如果您的集群已有要保留的标签,则在添加mesh_id
标签时必须将这些标签包含在内。如需查看您的集群是否已有标签,请执行以下操作:
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"
设置
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}
-
gcloud container clusters update ${CLUSTER_NAME} \ --project=${PROJECT_ID} \ --workload-pool=${WORKLOAD_POOL}
启用 Workload Identity 最长可能需要 10 到 15 分钟。
启用 GKE 上的 Cloud Monitoring 和 Cloud Logging:
gcloud container clusters update ${CLUSTER_NAME} \ --project=${PROJECT_ID} \ --enable-stackdriver-kubernetes