管理工作负载的出站流量

本页面介绍了您必须在项目中的虚拟机 (VM) 或 pod 上执行的出站连接操作,以允许工作负载离开组织。此过程演示了如何向部署添加必需的标签,以明确启用出站流量并允许工作负载在组织外部进行通信。

默认情况下,经过网闸隔离的 Google Distributed Cloud (GDC) 会阻止项目中的工作负载离开组织。如果平台管理员 (PA) 已针对项目停用数据渗漏保护功能,工作负载可能会退出组织。除了停用数据渗漏防护功能之外,应用操作员 (AO) 还必须在 pod 工作负载上添加标签 egress.networking.gke.io/enabled: true,以启用该 pod 的出站连接。当您为项目分配并使用知名 IP 地址时,系统会对组织的出站流量执行源网络地址转换 (NAT)。

您可以管理从 Pod虚拟机中的工作负载发起的出站连接。

管理 pod 中工作负载的出站流量

如需配置 pod 中的工作负载以实现出站连接,您必须先确保为项目停用数据渗漏防护功能。然后,确保在 pod 上添加了 egress.networking.gke.io/enabled: true 标签。如果您使用 DeploymentDaemonset 等更高级别的构造来管理一组 Pod,则必须在这些规范中配置 Pod 标签。

以下示例展示了如何从清单文件创建 Deployment。示例文件中的 labels 字段包含值 egress.networking.gke.io/enabled: true,用于明确启用来自项目的出站流量。此标签会添加到部署中的每个 pod,并允许 pod 中的工作负载退出组织。

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG \
    apply -f - <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: DEPLOYMENT_NAME
spec:
  replicas: NUMBER_OF_REPLICAS
  selector:
    matchLabels:
      run: APP_NAME
  template:
    metadata:
      labels: # The labels given to each pod in the deployment, which are used
              # to manage all pods in the deployment.
        run: APP_NAME
        egress.networking.gke.io/enabled: true
    spec: # The pod specification, which defines how each pod runs in the deployment.
      containers:
      - name: CONTAINER_NAME
        image: CONTAINER_IMAGE
EOF

替换以下内容:

  • USER_CLUSTER_KUBECONFIG:您要向其部署容器工作负载的用户集群的 kubeconfig 文件。

  • DEPLOYMENT_NAME:您要向其部署容器工作负载的用户集群的 kubeconfig 文件。

  • APP_NAME:要在部署中运行的应用的名称。

  • NUMBER_OF_REPLICAS:部署管理的复制 Pod 对象的数量。

  • CONTAINER_NAME:容器的名称。

  • CONTAINER_IMAGE:容器映像的名称。您必须提供容器注册表路径和映像版本,例如 REGISTRY_PATH/hello-app:1.0

例如:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      run: my-app
  template:
    metadata:
      labels:
        run: my-app
        egress.networking.gke.io/enabled: true
    spec:
      containers:
      - name: hello-app
        image: REGISTRY_PATH/hello-app:1.0

管理虚拟机中工作负载的出站流量

如需在虚拟机中配置工作负载以实现出站连接,您可以使用 GDC 控制台进行虚拟机配置,也可以创建 VirtualMachineExternalAccess 资源。如需了解如何启用具有外部访问权限的虚拟机以进行数据传输,请参阅连接到虚拟机部分中的启用外部访问权限