第 6 章 管理网络策略

Kubernetes 网络策略的 规格规格了如何允许 pod 组相互通信,以及其他网络端点。这些网络策略配置为 YAML 文件。通过单独查看这些文件,通常难以识别应用的网络策略是否达到所需的网络拓扑。

Red Hat Advanced Cluster Security for Kubernetes 从您的编配器收集所有定义的网络策略,并提供相应的功能来简化这些策略。

为了支持网络策略实施,Red Hat Advanced Cluster Security for Kubernetes 提供了:

  • 网络图
  • 网络策略模拟器
  • 网络策略生成器

6.1. 网络图形视图

网络图提供可见性和控制:

  • 允许的网络连接,如 Kubernetes 网络策略所定义。
  • 命名空间和部署之间的主动通信路径。

在菜单栏中,选择要查看信息以及至少一个命名空间的集群。

Network Graph 视图中,您可以配置您要查看的连接类型。在 Flows 部分(左下),选择:

  • Active 来只查看活跃的连接。
  • Allowed 来只查看允许的网络连接。
  • all 可查看活动和允许的网络连接。

在网络图中,每个圆形都代表一个部署,每个周围的框代表一个 Kubernetes 命名空间,每个第三行代表命名空间之间的连接。您可以将鼠标悬停在这些项目上,以查看更多详细信息。点击某个项目(如部署或命名空间)将打开一个窗口,其中显示其他信息。通过选择蓝色栏中的箭头可以展开和折叠窗口。

要了解网络图中其他符号的含义,请将鼠标移到图例中的其他符号(左下)的提示,以查看表明这些符号的含义。

当您将鼠标悬停于:

  • 一个连接,您会看到有关网络流的信息,其中包括正在使用的连接、端口号和协议。
  • 一个部署,您可以看到有关入口和出口连接、使用中的协议、端口号的信息,以及部署间的网络流量的方向。
注意

您需要 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.47 或更新版本,查看有关入口和出口连接、协议、端口号和网络流量方向的信息。

允许网络连接

Red Hat Advanced Cluster Security for Kubernetes 会处理每个安全集群中的所有网络策略,以向您展示哪些部署可以相互联系,并可访问外部网络。

网络图将可能的网络连接显示为横线。

实际的网络流

Red Hat Advanced Cluster Security for Kubernetes 监控运行的部署,并跟踪它们之间的流量。网络图显示了观察到的网络流作为固态行。

网络基准

Red Hat Advanced Cluster Security for Kubernetes 发现现有网络流并创建一个基线。

要查看部署的网络基准,请在 Network Graph 视图中选择部署。Network Flows 详情面板显示异常和基准流。在这个面板中,您可以:

  • 选择 Mark 作为匿名方式,将基准中的网络流标记为异常
  • 选择 Add to Baseline 来添加网络流到来自异常流的基准。
注意

要使用 网络基准 功能,您必须使用 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.54 或更新版本。

外部实体和连接

Network Graph 视图显示有关受管集群和外部来源之间的网络连接的信息。Red Hat Advanced Cluster Security for Kubernetes 还自动发现并自动发现公共 CIDR(Classless Inter-Domain Routing)地址块,如 Google Cloud、AWS、Azure、Oracle Cloud 和 Cloudflare。使用这些信息,您可以识别具有活跃外部连接的部署,以及是否从网络外部发出或接收未经授权的连接。

注意

您需要 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.52 或更新版本,以查看活跃外部连接的信息。

默认情况下,外部连接指向一个通用的 外部实体 框,以及 Network Graph 视图中的不同 CIDR 地址块。但是,您可以选择不显示自动发现 CIDR 块。

Red Hat Advanced Cluster Security for Kubernetes 包括以下云供应商的 IP 范围:

  • Google Cloud
  • AWS
  • Azure
  • Oracle Cloud
  • Cloudflare

Red Hat Advanced Cluster Security for Kubernetes 获取并更新云供应商的 IP 范围,每 7 天获取和更新云供应商。如果您使用离线模式,您可以通过安装新的支持软件包来更新这些范围。

6.1.1. 查看网络策略

网络策略指定如何允许 Pod 组相互通信以及其他网络端点。Kubernetes NetworkPolicy 资源使用标签来选择 pod,并定义指定允许来自所选 pod 或从所选 pod 的流量的规则。Red Hat Advanced Cluster Security for Kubernetes 发现并在 Network Graph 视图中显示所有 Kubernetes 集群、命名空间、部署和 pod 的网络策略信息。

要查看命名空间中的部署网络策略和其他相关详情,您可以在 Network Graph 视图中选择命名空间。

命名空间详情面板列出了所选命名空间中的所有部署。然后,您可以将鼠标悬停在详细信息面板中的部署上,然后选择右侧显示的 Navigate to deployment (arrow)图标以查看部署详情。

另外,您可以在 Network Graph 视图中直接选择一个部署来查看其详情。部署详情面板包括 Network Flows, Details, 和 Network Policies 标签页。

您可以选择每个标签页来查看相关信息。

  • Network Flows 选项卡显示有关用于该部署的入口和出口连接、协议和端口号的信息。
  • Details 选项卡显示如何部署该服务的信息,包括编配器标签和注解。
  • Network Policies 选项卡显示适用于部署的每个网络策略的信息。
注意

您需要 Red Hat Advanced Cluster Security for Kubernetes 版本 3.0.47 或更新版本,查看有关入口和出口连接、协议、端口号和网络流量方向的信息。

6.1.2. 配置 CIDR 块

您可以在 Network Graph 视图中指定自定义 CIDR 块,或配置显示自动发现的 CIDR 块。

流程

  1. Network Graph 视图中,选择 Configure CIDR Blocks
  2. 关闭 Network Graph 切换中的 Display auto-discovered CIDR 块 来隐藏自动发现的 CIDR 块。

    注意

    当您隐藏了自动发现的 CIDR 块时,所有集群都会隐藏自动发现的 CIDR 块,而不只适用于 Network Graph 视图中的所选集群。

  3. 通过添加 CIDR 块名称和 CIDR 地址 来添加自定义 CIDR 地址。要添加多个,请选择 Add 图标。
  4. 单击 Update Configuration 以保存更改。