要保护 Antrea Kubernetes 集群中的 Pod 之间的流量,您可以在 NSX 中创建分布式防火墙策略(安全策略),并将其应用于一个或多个 Antrea Kubernetes 集群。
注: 本文档使用术语“Antrea Kubernetes 集群”来表示具有
Antrea CNI 的 Kubernetes 集群。术语“Kubernetes 集群”是一个通用术语,它表示具有
Antrea CNI 的
Tanzu Kubernetes Grid (TKG) 集群、具有
Antrea CNI 的 OpenShift 集群或具有
Antrea CNI 的自助式 (Do It Yourself, DIY) Kubernetes 集群。
对于少数 UI 字段或标签,UI 使用术语“Antrea 容器集群”。在本文档的过程部分中,这些 UI 字段或标签保留“Antrea 容器集群”一词。对于所有自由格式文本,将使用术语“Antrea Kubernetes 集群”。
前提条件
- 已向 NSX 注册 Antrea Kubernetes 集群。
- 在 NSX 部署中应用相应的安全许可证,以授权系统配置分布式防火墙安全策略。
过程
结果
Antrea Kubernetes 集群中会出现以下结果:
- Antrea 网络插件会创建一个与每个应用于 Antrea Kubernetes 集群的分布式防火墙策略对应的集群网络策略。
- 如果规则包含源,则会在 Antrea 集群网络策略 中创建相应的输入规则。
- 如果规则包含目标,则会在 Antrea 集群网络策略 中创建相应的输出规则。
- 如果规则包含“任意-任意”配置,则集群中的 Antrea 控制器 会将“任意-任意”规则拆分为两个规则:一个具有“任意-任意”配置的输入规则和一个具有“任意-任意”配置的输出规则。
注:
Antrea 网络插件不会阻止您通过
kubectl 命令行更新或删除
Antrea 集群网络策略。但是,您必须避免执行此操作。原因是安全策略由
NSX 进行管理。因此,
Antrea Kubernetes 集群中的
中央控制平面适配器 会立即覆盖通过
kubectl 命令行所做的策略更改。换句话说,
NSX 是策略的事实来源。通过
kubectl 命令行对这些集群网络策略所做的更改不会显示在
NSX Manager 中。
下一步做什么
在 Antrea Kubernetes 集群中成功实现安全策略后,您可以执行以下可选任务:
- 确认 Antrea 集群网络策略已显示在 Kubernetes 集群中。在每个 Antrea Kubernetes 集群中运行以下 kubectl 命令:
$ kubectl get acnp
注: Antrea 集群网络策略中的 priority 参数显示一个浮点值。这是预期的结果。 NSX Manager UI 不会显示分布式防火墙策略的优先级。 NSX 会在内部为每个策略的优先级分配一个整数值。此整数值是从一个较大的范围中分配的。但是, Antrea 网络插件会为 Antrea 集群网络策略的优先级分配较小的浮点数(绝对值)。因此, NSX 优先级值会在内部标准化为较小的浮点数。但是,将为 Antrea 集群网络策略保留在分布式防火墙类别中添加策略的顺序。您还可以在 NSX 清单中查看 Antrea 集群网络策略的详细信息。在 NSX Manager 中,导航到 。展开集群名称,然后单击集群网络策略旁边的数字以查看策略的详细信息,包括 YAML 规范。
- 使用以下 NSX API 查看策略统计信息:
GET https://{nsx-mgr-ip}/api/v1/infra/domains{domain-id}/security-policies/{security-policy-name}/statistics?container_cluster_path=/infra/sites/{site-id}/enforcement-points/{enforcement-point-id}/cluster-control-planes/{cluster-name}
- 在 UI 中查看运行时规则统计信息:
- 在 NSX Manager 中,导航到 。
- 展开策略名称,然后单击每个规则最右上角的图形图标。
- 从下拉菜单中选择 Kubernetes 集群以查看每个 Kubernetes 集群的规则统计信息。
将为已实施规则的每个 Kubernetes 集群单独计算规则统计信息。将不会汇总所有 Kubernetes 集群的统计信息并将其显示在 UI 中。规则统计信息每分钟计算一次。