本頁說明您必須在專案中的虛擬機器 (VM) 或 Pod 上執行的輸出連線動作,讓工作負載離開機構。這個程序說明如何將必要標籤新增至部署作業,明確啟用外送流量,並允許工作負載與機構外部通訊。
根據預設,Google Distributed Cloud (GDC) 氣隙隔離會禁止專案中的工作負載離開機構。如果平台管理員 (PA) 已停用專案的資料外洩防護功能,工作負載可能會離開機構。除了停用資料外洩防護機制,應用程式運算子 (AO) 也必須在 Pod 工作負載上新增 egress.networking.gke.io/enabled: true
標籤,才能為該 Pod 啟用輸出連線。為專案分配及使用已知 IP 位址時,系統會對機構外送流量執行來源網路位址轉譯 (NAT)。
管理 Pod 中工作負載的傳出流量
如要在 Pod 中設定工作負載的輸出連線,請先確保專案已停用資料外洩防護功能。接著,確認在膠囊上加上 egress.networking.gke.io/enabled: true
標籤。如果您使用 Deployment
或 Daemonset
等較高層級的建構體來管理 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」一節中的「啟用外部存取權」。