您可以采用 YAML 格式导出与 Kubernetes 对象相关的建议网络策略规则。vRealize Network Insight 支持导出为 YAML 格式(仅适用于分组依据“命名空间”和“服务拓扑”)。

过程

  1. 要将建议的规则导出为 YAML 格式,在“规划安全性”模型上选择要为其规划安全性的 Kubernetes 集群,然后执行以下步骤之一。
    • 在微分段小组件中展开更多选项,然后选择将规则导出为 YAML,或者
    • 在微分段轮形视图中选择一个节点,单击建议的防火墙规则的计数,展开更多选项,然后选择将规则导出为 YAML
    vRealize Network Insight 会下载使用 Kubernetes 网络策略命名的 ZIP 文件以及与其关联的时间戳。解压缩该文件时,您会看到以下五个 CSV 文件以及多个文件夹,具体取决于集群的数量。每个文件夹包含集群的多个 YAML 文件。
    文件名 描述
    network-policy-others-ipaddress.csv 包含服务或命名空间与之通信的物理服务器和虚拟机的 IP 地址。
    recommended-namespace-labels-to-add.csv 包含要附加到与命名空间关联的容器的标签。

    示例:

    • 集群 - pdk8s
    • 命名空间 - sock-shop
    • 标签 - sock-shop-pdk8s
    recommended-service-labels-to-add.csv 包含要附加到与服务关联的容器的标签。

    示例:

    • 集群 - pdk8s
    • 命名空间 - sock-shop
    • 服务 - front-end
    • 标签 - Service:front-sock-shop-pdk8s
    • 集群 - pdk8s
    • 命名空间 - sock-shop
    • 服务 - user
    • 标签 - Service:user-sock-shop
    recommended-network-policy.csv 包含 vRealize Network Insight 建议的所有规则。
    exported-network-policy-rule-names.csv 列出基于建议的规则导出的所有网络策略。
  2. 要应用服务标签,请执行以下步骤:
    1. 运行以下 Kubernetes CLI 命令。
      kubectl edit deployment service-name -n namespace-name
      kubectl edit deployment redis-primary -n guestbook
      此时将打开服务的部署文件。
    2. 在服务标签列表中,将在 CSV 文件中建议的标签附加到服务部署 spec 部分中提到的标签。
  3. 要应用命名空间标签,请执行以下步骤:
    1. 运行以下 Kubernetes CLI 命令。
      kubectl edit namespace namespace-name
      kubectl edit namespace guestbook
      此时将打开命名空间的部署文件。
    2. 在元数据中,将在 CSV 文件中建议的标签附加到命名空间部署的 spec 部分中提到的标签。
  4. 运行以下命令以验证是否将标签应用于容器。
    kubectl get pods -n namespace-name--show-labels
    kubectl get pods guestbook--show-labels
    在结果视图中查看标签。
    注: 在命名空间上应用时,标签不会反映在容器上。
  5. 要创建网络策略,请将 YAML 文件从相应的集群文件夹复制到另一个文件夹,然后运行以下任一命令:
    • kubectl apply -f <folder-name>/ - 一起应用所有防火墙规则。
    • kubectl apply -f <folder-name>/<firewall-rule>.yaml - 逐个应用防火墙规则