第 6 章 网络安全性
6.1. 了解网络策略 API 复制链接链接已复制到粘贴板!
				Kubernetes 提供了两个用户可用于强制实施网络安全的功能。允许用户强制执行网络策略的一个功能是 NetworkPolicy API,主要用于应用程序开发人员和命名空间租户,通过创建命名空间范围的策略来保护其命名空间。
			
				第二个功能是 AdminNetworkPolicy,它由两个 API 组成:AdminNetworkPolicy (ANP) API 和 BaselineAdminNetworkPolicy (BANP) API。ANP 和 BANP 是为集群和网络管理员设计的,以通过创建集群范围的策略来保护其整个集群。集群管理员可以使用 ANPs 来强制实施优先于 NetworkPolicy 对象的不可覆盖的策略。管理员可以使用 BANP 设置并强制实施可选的集群范围的网络策略规则,当需要时,用户可以使用 NetworkPolicy 对象覆盖它。当一起使用时,ANP、BANP 和网络策略可以实现完整的多租户隔离,管理员可用于保护其集群。
			
OpenShift Dedicated 中的 OVN-Kubernetes CNI 使用访问控制列表(ACL)层来评估和应用这些网络策略。ACL 按照从 Tier 1 到 Tier 3 的降序进行评估。
				第 1 级评估 AdminNetworkPolicy (ANP)对象。第 2 级评估 NetworkPolicy 对象。第 3 级评估 BaselineAdminNetworkPolicy (BANP)对象。
			
				首先评估 ANP。当匹配是 ANP allow 或 deny 规则时,集群中的任何现有 NetworkPolicy 和 BaselineAdminNetworkPolicy(BANP)对象将不会被评估。当匹配是 ANP pass,评估会从 ACL 的第 1 层移到第 2 层,在其中评估 NetworkPolicy 策略。如果没有 NetworkPolicy 与流量匹配,则评估从第 2 层 ACL 移到评估 BANP 的第 3 层 ACL。
			
6.1.1. AdminNetworkPolicy 和 NetworkPolicy 自定义资源之间的主要区别 复制链接链接已复制到粘贴板!
					下表解释了集群范围的 AdminNetworkPolicy API 和命名空间范围 NetworkPolicy API 之间的主要区别。
				
| 策略元素 | AdminNetworkPolicy | NetworkPolicy | 
|---|---|---|
|   适用的用户  |   集群管理员或等同功能  |   命名空间所有者  | 
|   影响范围  |   Cluster  |   namespaced  | 
|   丢弃流量  |   
									支持将显式   |   
									在策略创建时通过隐式   | 
|   委派流量  |   
									支持   |   Not applicable  | 
|   允许流量  |   
									支持将显式   |   所有规则的默认操作都是 allow。  | 
|   策略中的规则优先级  |   取决于它们出现在 ANP 中的顺序。规则在优先级越高的位置越高。  |   规则是添加的  | 
|   策略优先级  |   
									在 ANPs 中,  |   策略之间没有策略排序。  | 
|   功能优先级  |   首先通过 1 层 ACL 和 BANP 评估,最后通过第 3 层 ACL 评估。  |   在 ANP 和 BANP 之前强制实施,它们会在 ACL 层 2 中进行评估。  | 
|   匹配 pod 选择  |   可以在命名空间之间应用不同的规则。  |   可以在单一命名空间中的 pod 之间应用不同的规则。  | 
|   集群出口流量  |   
									通过   |   
									通过   | 
|   集群入口流量  |   不支持  |   不支持  | 
|   完全限定域名(FQDN)对等支持  |   不支持  |   不支持  | 
|   命名空间选择器  |   
									支持通过使用   |   
									支持使用   |