管理工作負載的傳出流量

本頁說明您必須在專案中的虛擬機器 (VM) 或 Pod 上執行的輸出連線動作,讓工作負載離開機構。這個程序說明如何將必要標籤新增至部署作業,明確啟用外送流量,並允許工作負載與機構外部通訊。

根據預設,Google Distributed Cloud (GDC) 氣隙隔離會禁止專案中的工作負載離開機構。如果平台管理員 (PA) 已停用專案的資料外洩防護功能,工作負載可能會離開機構。除了停用資料外洩防護機制,應用程式運算子 (AO) 也必須在 Pod 工作負載上新增 egress.networking.gke.io/enabled: true 標籤,才能為該 Pod 啟用輸出連線。為專案分配及使用已知 IP 位址時,系統會對機構外送流量執行來源網路位址轉譯 (NAT)。

您可以管理從 PodVM 中工作負載的輸出連線。

管理 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:Deployment 管理的複製 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

管理 VM 中工作負載的輸出流量

如要在 VM 中設定工作負載的輸出連線,可以使用 GDC 控制台設定 VM,或建立 VirtualMachineExternalAccess 資源。如要瞭解如何啟用具有外部存取權的 VM 以進行資料轉移,請參閱「連線至 VM」一節中的「啟用外部存取權」。