要保护 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 集群。
过程
结果
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 中。规则统计信息每分钟计算一次。