×

构建时网络策略生成器包含在roxctl CLI 中。对于构建时网络策略生成功能,roxctl CLI 不需要与 RHACS 中心通信,因此您可以在任何开发环境中使用它。

使用构建时网络策略生成器(Using the build-time network policy generator)

您可以使用roxctl CLI 中的内置网络策略生成器生成网络策略。

先决条件(Prerequisites)
  1. 构建时网络策略生成器会在您运行命令时递归扫描您指定的目录。因此,在运行命令之前,您必须已将服务清单、配置映射和工作负载清单(例如PodDeploymentReplicaSetJobDaemonSetStatefulSet)作为 YAML 文件放在指定的目录中。

  2. 验证您可以使用kubectl apply -f 命令按原样应用这些 YAML 文件。构建时网络策略生成器不适用于使用 Helm 风格模板的文件。

  3. 验证服务网络地址没有硬编码。每个需要连接到服务的负载都必须将服务网络地址指定为变量。您可以使用工作负载的资源环境变量或配置映射来指定此变量。

  4. 服务网络地址必须匹配以下官方正则表达式模式(Service network addresses must match the following official regular expression pattern)

    (http(s)?://)?<svc>(.<ns>(.svc.cluster.local)?)?(:<portNum>)? (1)
    1 在此模式中,(In this pattern,)
    • <svc> 是服务名称。( <svc> is the service name.)

    • <ns> 是您定义服务的命名空间。( <ns> is the namespace where you defined the service.)

    • <portNum> 是暴露的服务端口号。

    以下是符合模式的一些示例

    • wordpress-mysql:3306

    • redis-follower.redis.svc.cluster.local:6379

    • redis-leader.redis

    • http://rating-service.

步骤
  1. 通过运行帮助命令来验证构建时网络策略生成功能是否可用

    $ roxctl netpol generate -h
  2. 使用netpol generate命令生成策略

    $ roxctl netpol generate <folder-path> (1)
    1 指定包含 Kubernetes 清单文件的文件夹路径。

roxctl netpol generate命令支持以下选项

选项

描述

-h, --help

查看netpol命令的帮助文本。

-d, --output-dir <dir>

将生成的策略保存到目标文件夹。每个策略一个文件。

-f, --output-file <filename>

将生成的策略保存并合并到单个 YAML 文件中。

--fail

在遇到第一个错误时失败。默认值为false

--remove

如果输出路径已存在,则将其删除。

--strict

将警告视为错误。默认值为false

--dnsport

指定在生成的策略的出站规则中使用的默认 DNS 端口。默认值为53