您可以采用 YAML 格式导出与 Kubernetes 对象相关的建议网络策略规则。vRealize Network Insight 支持导出为 YAML 格式(仅适用于分组依据“命名空间”和“服务拓扑”)。
前提条件
过程
- 要将建议的规则导出为 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 列出基于建议的规则导出的所有网络策略。 - 要应用服务标签,请执行以下步骤:
- 运行以下 Kubernetes CLI 命令。
kubectl edit deployment service-name -n namespace-name
kubectl edit deployment redis-primary -n guestbook
此时将打开服务的部署文件。 - 在服务标签列表中,将在 CSV 文件中建议的标签附加到服务部署 spec 部分中提到的标签。
- 运行以下 Kubernetes CLI 命令。
- 要应用命名空间标签,请执行以下步骤:
- 运行以下 Kubernetes CLI 命令。
kubectl edit namespace namespace-name
kubectl edit namespace guestbook
此时将打开命名空间的部署文件。 - 在元数据中,将在 CSV 文件中建议的标签附加到命名空间部署的 spec 部分中提到的标签。
- 运行以下 Kubernetes CLI 命令。
- 运行以下命令以验证是否将标签应用于容器。
kubectl get pods -n namespace-name--show-labels
kubectl get pods guestbook--show-labels
在结果视图中查看标签。注: 在命名空间上应用时,标签不会反映在容器上。 - 要创建网络策略,请将 YAML 文件从相应的集群文件夹复制到另一个文件夹,然后运行以下任一命令:
kubectl apply -f <folder-name>/
- 一起应用所有防火墙规则。kubectl apply -f <folder-name>/<firewall-rule>.yaml
- 逐个应用防火墙规则