平台的虚拟机方案基于开源组件 KubeVirt 实现,实际上运行在 Pod 中。通过利用网络策略的功能,可以控制虚拟机的入站和出站请求。
进入 容器平台。
在左侧导航栏点击 网络 > 网络策略。
点击 创建网络策略。
根据需要配置以下参数。
| 参数 | 说明 |
|---|---|
| 关联方式 |
|
| 方向 |
|
| 协议 | 选择 TCP 或 UDP。 注意:
|
| 访问端口 | 指定允许入站或出站的端口流量。如果此项为空,默认允许所有端口的流量。 注意:此处需允许 1053 和 53 端口的 UDP 和 TCP 协议,以允许 DNS 流量出站,否则域名解析将失败。 |
| 远程类型 | 指定允许访问的远程类型,选项包括:计算组件、命名空间和 IP 段。 |
| 排除远程 | 当远程类型为 IP 段 时,从白名单中移除指定 IP(即禁止访问)。单个 IP 可输入为 IP/32。注意:此项仅支持输入 IP;若域名对应的 IP 不明确,可使用命令 curl -vvv <domain> 请求该域名,从返回信息中获取对应 IP 地址。 |
点击 创建。
本文以虚拟机访问 www.example.com 进行验证。
创建虚拟机,详细步骤请参考 创建虚拟机。
在虚拟机所在命令空间配置网络策略,添加 TCP 和 UDP 协议的白名单规则,参数如下:
TCP 协议白名单:
| 参数 | 说明 |
|---|---|
| 关联方式 | 选择 计算组件。 |
| 目标计算组件 | 选择 全部。 |
| 方向 | 选择 出站。 |
| 协议 | 选择 TCP。 |
| 远程类型 | 选择 IP 段。 |
| 远程 | 输入 0.0.0.0/0,表示允许所有流量出站。 |
UDP 协议白名单规则:
| 参数 | 说明 |
|---|---|
| 方向 | 选择 出站。 |
| 协议 | 选择 UDP。 |
| 远程类型 | 选择 IP 段。 |
| 远程 | 输入 0.0.0.0/0,表示允许所有流量出站。 |
网络策略创建完成后,登录虚拟机,执行以下命令请求 www.example.com。
请求成功。
执行以下命令获取 www.example.com 的 IP 地址,得到 IP 为 93.184.215.14。
更新第一步创建的网络策略,更新参数如下:
| 参数 | 说明 |
|---|---|
| 排除远程 | 在 TCP 协议白名单规则中,排除远程参数填写 93.184.215.14/32,表示将 IP 地址 93.184.215.14 从白名单中移除。 |
更新网络策略后,登录虚拟机,执行以下命令请求 www.example.com。
请求超时,表示排除远程功能生效。