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