平台基于开源组件 KubeVirt 实现的虚拟机方案,而 KubeVirt 实际上运行在 Pods 中,使用网络策略(Network Policy)的功能,可以实现对虚拟机进出请求的控制。
进入 Container Platform。
在左侧导航栏中,单击 网络 > 网络策略。
单击 创建网络策略。
按需配置如下参数。
| 参数 | 说明 |
|---|---|
| 关联方式 |
|
| 方向 |
|
| 协议 | 选择 TCP 或 UDP 协议。 注意:
|
| 访问端口 | 指定哪些端口的流量可以入站或出站。若不填写此项,则默认允许所有端口的流量通过。 注意:此处需要放通 UDP 和 TCP 协议的 1053、53 两个端口,以允许 DNS 流量出站;否则,域名解析将失败。 |
| 远端类型 | 指定允许访问的远端类型。可选项包括:计算组件、命名空间、IP 段。 |
| 排除远端 | 当远端类型为 IP 段 时,将指定的 IP 从白名单中移除(即禁止访问)。当输入形式如 IP/32 的 IP 时可以移除单个 IP。注意:此处仅支持输入 IP,若不清楚域名对应的 IP,可以使用命令 curl -vvv <域名> 来获取。 |
单击 创建。
本文档以使用虚拟机访问 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。
请求超时,排除远端功能生效。