适用于代管式 Anthos Service Mesh 的 VPC Service Controls

代管式 Anthos Service Mesh 支持将 VPC Service Controls (VPC-SC) 用作快速渠道中的一项正式版 (GA) 功能,适用于版本不低于 1.22.1-gke.100 的 GKE 集群。

准备工作

VPC-SC 组织政策和服务边界在组织级别上进行配置。请确保您已被授予适当的 VPC-SC 管理角色

设置 VPC-SC 服务边界

创建或更新服务边界

  1. 添加集群项目和队列项目到服务边界。不支持将服务网格分布在多个 VPC-SC 边界内。

  2. 将受限服务添加到服务边界。

    您必须将特定服务添加到服务边界内的允许和受限服务列表中,这样 Anthos Service Mesh 集群才能访问它们。但仅可在集群的 Virtual Private Cloud (VPC) 网络内访问这些服务。

    如果不添加这些服务,可能会导致 Anthos Service Mesh 安装失败或无法正常运行。例如,如果您不将 Mesh Configuration API 添加到服务边界,则安装将失败,并且工作负载不会从代管式控制平面接收 Envoy 配置。

    控制台

    1. 按照更新服务边界中的步骤修改边界。
    2. 点击修改 VPC 服务边界页面。
    3. 受限服务要保护的服务下,点击添加服务
    4. 指定要限制的服务对话框中,点击过滤服务,然后输入 Mesh Configuration API
    5. 选中相应服务的复选框。
    6. 点击添加 Mesh Configuration API
    7. 重复步骤 c - f,添加以下 API:
      • Cloud Service Mesh Certificate Authority API
      • GKE Hub API
      • Cloud IAM API
      • Cloud Monitoring API
      • Cloud Trace API
      • Cloud Monitoring API
      • Google Cloud Resource Manager API
      • Cloud Run API
      • Google Compute Engine API
      • Google Container Registry API
      • Artifact Registry API
      • Google Cloud Storage API
    8. 点击保存

    gcloud

    如需更新受限服务的列表,请使用 update 命令并以英文逗号分隔的列表形式指定要添加的服务:

    gcloud access-context-manager perimeters update PERIMETER_NAME \
      --add-restricted-services=meshconfig.googleapis.com,meshca.googleapis.com,gkehub.googleapis.com,iam.googleapis.com,monitoring.googleapis.com,cloudtrace.googleapis.com,monitoring.googleapis.com,cloudresourcemanager.googleapis.com,run.googleapis.com,compute.googleapis.com,containerregistry.googleapis.com,artifactregistry.googleapis.com,storage.googleapis.com \
      --policy=POLICY_NAME

    其中:

    • PERIMETER_NAME 是要更新的服务边界的名称。

    • POLICY_NAME 是您的组织的访问权限政策的数字名称。例如 330193482019

  3. 点击 VPC 可访问服务并将其设置为“所有受限服务”,以保证在 VPC-SC 边界内仍然可以访问上述步骤中的受限服务。

  4. 除非您从边界内安装 Anthos Service Mesh,否则请添加入站流量规则,以允许运行 asmcli 命令的身份访问服务边界。

    如需了解详情,请参阅更新服务边界

在 VPC-SC 边界内安装代管式 Anthos Service Mesh

按照配置代管式 Anthos Service Mesh 页面中的步骤操作。然后,确认已成功预配控制平面,并且不存在 VPC-SC 相关错误。

问题排查

无法使用最新的 GKE 1.22 映像创建集群

有一个已知问题会阻止在 VPC-SC 受限环境中使用最新的 1.22 映像创建集群。解决方法是先使用默认 GKE 渠道映像创建此集群,然后升级映像:

gcloud container clusters create CLUSTER \
  --region REGION \
  --release-channel=rapid \
  --workload-pool=PROJECT_ID.svc.id.goog \
  --project PROJECT_ID
gcloud container clusters upgrade CLUSTER \
  --region REGION \
  --master --cluster-version 1.22 \
  --project PROJECT_ID

容器无法下载其映像。

如果映像位于服务边界以外,则可能会发生这种情况。您可以将映像移动到边界内的存储桶中,也可以更新边界以添加出站流量规则。通常,出站规则可能允许选定身份访问 Container Registry APIArtifact Registry APICloud Storage API

ControlPlaneRevision CRD 的“状态”字段显示 VPC-SC 错误

请运行以下命令以获得有关错误的更多信息:

gcloud logging read --project=PROJECT_ID \
'protoPayload.metadata.@type=type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata'

其中:

  • PROJECT_ID 是遇到错误的项目的 ID。