本節說明如何使用外部負載平衡器,在 Google Distributed Cloud 實體隔離方案中開啟輸入流量虛擬機器。
使用負載平衡器服務公開 VM
透過 LoadBalancer 類型的服務,輸入流量會進入 GDC 叢集中的 Linux VM,並將特定通訊埠的流量導向 VM。
如要啟用 Linux VM 的輸入流量,請在用於建立 VM 的 YAML 檔案中新增 ingress.virtualmachines.gpc.gke.io: true 標籤。接著,系統會在建立 VM 執行個體時,建立輸入流量的 LoadBalancer 服務。服務會與 VM 建立在相同命名空間,名稱為 VM_NAME-default-ingress。
開啟 VM 通訊埠以接收輸入流量
您必須明確開啟 VM 上的通訊埠,才能接受輸入流量。例如:
kubectl patch svc VM_NAME-default-ingress -n NAMESPACE_NAME -p \
'{"spec":{"ports":[{"protocol":"TCP","port":PORT, "name": "NAME"}]}}'
替換下列預留位置:
- 將 VM_NAME 替換為 VM 的名稱。
- NAMESPACE_NAME 改為服務的命名空間。
- PORT,其中包含要在 VM 上開啟的連接埠。
- NAME 替換為通訊埠名稱。
輸出
專案中的 VM 工作負載可以連上外部網路,或向其他 Fleet 中的服務公開。
啟用輸出 (透過 EgressNAT)
啟用輸出 NAT 閘道,即可使用預先定義的 IP 位址,為輸出流量提供持續性且具決定性的轉送。因此您可以建立更具體的防火牆和路由規則。
NetworkPolicy
您可以在專案層級設定容器工作負載的網路政策。專案可能跨越多個預設的 bare metal 使用者叢集。
使用 SSH 連線至 Linux VM
如要使用 SSH 連線至 Linux VM,請使用負載平衡器服務的 IP 位址。根據預設,VM 會開啟 SSH 通訊埠 22。
取得負載平衡器服務 IP 位址
以下範例輸出內容顯示,如果 IP 位址為 10.200.0.102,負載平衡器服務已準備好導向 TCP 通訊埠 22 上的 SSH 流量:
kubectl get services VM_NAME-default-ingress -n NAMESPACE_NAME
TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
LoadBalancer 10.106.6.18 10.200.0.102 22:32443/TCP 11s
連線至 VM
如要連線至 VM,請使用負載平衡器服務的 IP 位址和 SSH 金鑰。舉例來說,您可能會從啟動機器連線。
ssh -i /path/to/KEY_NAME ubuntu@10.200.0.102
將檔案移轉至 VM,或是從 VM 移轉檔案
如要將檔案轉移至 Distributed Cloud VM 執行個體,您有幾種方式可以選擇,取決於工作站 OS 和目標 VM 執行個體 OS。
將檔案移轉至 Linux VM
建立與 VM 的 SSH 連線,並使用該連線將檔案轉移至 VM。
從 VM 轉移檔案
您也可以將檔案和目錄從 VM 複製到本機工作站。使用下列指令 (待定),以遞迴方式將 VM (來源) 的目錄複製到本機工作站 (目的地)。