IT运维

Kubernetes网络策略概述与实践

2025-04-24 14:50:00 | 来源:企业IT培训

一、网络策略概述

在 Kubernetes 集群中,Pod 之间默认可以自由通信,但在实际生产环境中,为了保障服务安全,需要对网络访问进行限制。Kubernetes 的网络策略(NetworkPolicy)基于标签选择器,通过定义规则来控制 Pod 之间的入站(Ingress)和出站(Egress)流量,实现网络隔离和访问控制,满足企业对网络安全的严格要求 。

二、网络策略核心概念

2.1 标签选择器

网络策略通过标签选择器(podSelector)来确定作用的目标 Pod,通过匹配 Pod 的标签,将策略应用到特定的 Pod 集合。

2.2 策略类型

Ingress:用于控制进入 Pod 的流量,定义哪些来源可以访问目标 Pod。

Egress:用于控制 Pod 发出的流量,定义目标 Pod 可以访问哪些目的地。

2.3 流量规则

通过 from 和 ports 字段定义入站流量的来源和允许访问的端口;通过 to 和 ports 字段定义出站流量的目的地和允许使用的端口。

三、网络策略实践

3.1 准备工作

假设我们有一个包含用户服务(User Service)和订单服务(Order Service)的微服务系统,对应的 Pod 分别带有 app: user-service 和 app: order-service 标签。

3.2 定义入站网络策略

创建 order-service-ingress-network-policy.yaml 文件,定义只允许用户服务访问订单服务的 8080 端口。

3.3 定义出站网络策略

创建 user-service-egress-network-policy.yaml 文件,定义用户服务只能访问数据库服务(假设数据库服务 Pod 带有 app: database 标签)的 3306 端口。

3.4 应用网络策略

使用 kubectl 命令将网络策略应用到集群。

3.5 验证网络策略

可以通过创建临时 Pod 并尝试访问目标服务来验证策略是否生效。例如,创建一个临时的 BusyBox Pod。

四、多网络策略组合应用

在复杂的集群环境中,可能需要多个网络策略协同工作。

Kubernetes 的网络策略为集群内的网络流量管控提供了强大且灵活的手段。通过合理定义和应用网络策略,能够有效隔离服务、保障通信安全,满足企业级应用对网络安全的严格要求。在实际项目中,应根据具体的业务需求和安全规范,细致规划和配置网络策略,构建安全可靠的 Kubernetes 应用环境。