本節說明如何使用外部負載平衡器,在 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 工作負載可以連上外部網路,或公開給其他機群中的服務。
啟用輸出 (透過 EgressNAT)
啟用輸出網路位址轉譯 (NAT) 閘道,使用預先定義的 IP 位址,為輸出流量提供永久、確定性的轉送。這樣一來,您就能建立更具體的防火牆和路由規則。
NetworkPolicy
您可以在專案層級設定容器工作負載的網路政策。一個專案可能橫跨多個預設 Bare Metal 使用者叢集。
使用 SSH 連線至 Linux VM
如要使用 SSH 連線至 Linux VM,請使用負載平衡器服務的 IP 位址。VM 預設會開啟 SSH 通訊埠 22。
取得負載平衡器服務 IP 位址
取得負載平衡器服務的外部 IP 位址:
kubectl get services VM_NAME-default-ingress -n NAMESPACE_NAME
下列輸出範例顯示,如果 IP 位址為 10.200.0.102,負載平衡器服務已準備好在 TCP 通訊埠 22 上導向 SSH 流量:
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 -i /path/to/KEY_NAME ubuntu@10.200.0.102
將檔案移入或移出 VM
如要將檔案轉移至 Distributed Cloud VM 執行個體,您有幾種方式可以選擇,取決於工作站 OS 和目標 VM 執行個體 OS。
將檔案移轉至 Linux VM
建立與 VM 的 SSH 連線,並使用該連線將檔案傳輸至 VM。
從 VM 轉移檔案
您也可以將檔案和目錄從 VM 複製到本機工作站。使用下列指令 (待定),以遞迴方式將目錄從 VM (來源) 複製到本機工作站 (目的地)。