在 Kubernetes 中,可通过定义 NetworkPolicy 资源限制服务间通信,使用标签选择器指定允许访问的源和目标 Pod,并配置 ingress/egress 规则。
延伸知识点:PodSelector 的作用与配置 PodSelector 是 NetworkPolicy 中用于匹配目标或来源 Pod 的核心机制,通过 metadata.labels 实现。例如,若限制命名空间内仅允许带有 role=frontend 标签的 Pod 访问 role=backend 的 Pod,配置如下:
apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: backend-allow-frontend spec: podSelector: matchLabels: role: backend ingress:
- from:
- podSelector: matchLabels: role: frontend ports:
- protocol: TCP port: 6379
此策略会:
- 仅作用于含 role=backend 标签的 Pod
- 仅允许含 role=frontend 标签的 Pod 通过 TCP 6379 端口访问
- 支持组合 namespaceSelector 实现跨命名空间控制(需指定命名空间标签匹配) 注意:实际生效需集群网络插件支持 NetworkPolicy(如 Calico、Cilium)