虚拟机访问权限

本部分介绍了如何使用外部负载均衡器在 Google Distributed Cloud 网闸隔离配置中打开入站流量虚拟机。

使用负载均衡器服务公开虚拟机

入站流量通过类型为 LoadBalancer 的服务进入 GDC 集群中的 Linux 虚拟机 ,该服务会将某些特定 端口的流量定向到您的虚拟机。

如需启用 Linux 虚拟机的入站流量,请在用于创建虚拟机的 YAML 文件中添加标签 ingress.virtualmachines.gpc.gke.io: true。然后,在创建虚拟机实例时,系统会为入站流量创建 LoadBalancer 服务。该服务与虚拟机在同一命名空间中创建,名称为 VM_NAME-default-ingress

为入站流量打开虚拟机端口

您必须明确打开虚拟机上的端口以接受入站流量。例如:

kubectl  patch svc VM_NAME-default-ingress -n NAMESPACE_NAME -p \
  '{"spec":{"ports":[{"protocol":"TCP","port":PORT, "name": "NAME"}]}}'

替换以下占位符:

  • VM_NAME 替换为虚拟机的名称。
  • NAMESPACE_NAME 替换为服务的命名空间。
  • PORT 替换为要在虚拟机上打开的端口。
  • NAME 替换为端口名称。

出站流量

项目中的虚拟机工作负载可以访问外部网络,也可以向其他舰队中的服务公开。

启用出站流量(通过 EgressNAT)

启用出站 NAT 网关,以便使用预定义的 IP 地址为出站流量提供永久性和确定性路由。这样,您就可以创建更具体的防火墙和路由规则。

NetworkPolicy

您可以在项目级层为容器工作负载设置网络策略。一个项目可能跨多个默认裸金属用户集群。

使用 SSH 连接到 Linux 虚拟机

如需使用 SSH 连接到 Linux 虚拟机,请使用负载均衡器服务的 IP 地址。默认情况下,虚拟机已打开 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

连接到虚拟机

如需连接到虚拟机,请使用负载均衡器服务的 IP 地址和 SSH 密钥。 例如,您可以从启动机器进行连接。

ssh -i /path/to/KEY_NAME ubuntu@10.200.0.102

将文件传输到虚拟机/从虚拟机中传输文件

您可以使用不同的方式将文件传输到 Distributed Cloud 虚拟机实例,具体取决于您的工作站操作系统和目标虚拟机实例操作系统。

将文件传输到 Linux 虚拟机

建立与虚拟机的 SSH 连接,并使用该连接将文件传输到虚拟机。

从虚拟机传输文件

您还可以将文件和目录从虚拟机复制到本地工作站。 使用以下命令 (TBD) 以递归方式将目录从虚拟机(来源)复制到本地工作站(目的地)。