第 6 章 生成构建时网络策略
build-time 网络策略生成器包含在 roxctl
CLI 中。对于构建网络策略生成功能,roxctl
CLI 不需要与 RHACS Central 通信,因此您可以在任何开发环境中使用它。
6.1. 使用构建时网络策略生成器
您可以使用 roxctl
CLI 中的内置网络策略生成器生成网络策略。
先决条件
-
build-time 网络策略生成器递归扫描您在运行命令时指定的目录。因此,在运行该命令前,您必须已具有服务清单、配置映射和工作负载清单,如
Pod
、Deployment
、ReplicaSet
、Job
、DaemonSet
和StatefulSet
作为指定目录中的 YAML 文件。 -
使用
kubectl apply -f
命令验证这些 YAML 文件是否按原样应用。build-time 网络策略生成器无法用于使用 Helm 样式模板的文件。 验证服务网络地址没有硬编码。需要连接到服务的每个工作负载都必须将服务网络地址指定为变量。您可以使用工作负载的资源环境变量或配置映射来指定此变量。
服务网络地址必须与以下官方正则表达式模式匹配:
(http(s)?://)?<svc>(.<ns>(.svc.cluster.local)?)?(:<portNum>)? 1
- 1
- 在这种模式中,
- <svc> 是服务名称。
- <ns> 是定义该服务的命名空间。
- <portNum> 是公开的服务端口号。
以下是与模式匹配的一些示例:
-
wordpress-mysql:3306
-
redis-follower.redis.svc.cluster.local:6379
-
redis-leader.redis
-
http://rating-service.
流程
运行 help 命令验证构建网络策略生成功能是否可用:
$ roxctl netpol generate -h
使用
netpol generate
命令生成策略:$ roxctl netpol generate <folder-path> 1
- 1
- 指定具有 Kubernetes 清单的文件夹路径。
roxctl netpol generate
命令支持以下选项:
| 描述 |
|
查看 |
| 将生成的策略保存到目标文件夹中。每个策略有一个文件。 |
| 将生成的策略保存并合并到单个 YAML 文件中。 |
|
在第一次遇到的错误时失败。默认值为 |
| 删除输出路径(如果已存在)。 |
|
将警告视为错误。默认值为 |
|
指定在生成的策略的出口规则中使用的默认 DNS 端口。默认值为 |