You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CKA网络策略配置需求:在netpol命名空间创建指定NetworkPolicy

在netpol命名空间创建cka-netpol NetworkPolicy

一、YAML配置文件

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: cka-netpol
  namespace: netpol
spec:
  podSelector:
    matchLabels:
      app: port-8080
  policyTypes:
  - Ingress
  - Egress
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: port-8080
    ports:
    - protocol: TCP
      port: 8080
  egress:
  - to:
    - podSelector:
        matchLabels:
          app: port-8080
    ports:
    - protocol: TCP
      port: 8080

二、规则匹配说明

  • 生效范围:仅对netpol命名空间内带有app: port-8080标签的Pod生效
  • 入站管控:仅允许同命名空间内带app: port-8080标签的Pod,通过TCP 8080端口访问目标Pod
  • 出站管控:仅允许目标Pod(带app: port-8080标签)通过TCP 8080端口,访问同命名空间内同标签的Pod
  • 默认拦截:所有未匹配上述规则的流量(非8080端口通信、其他命名空间Pod的访问)都会被拒绝,完全符合需求中的禁止项

三、相关理论说明

  1. NetworkPolicy核心逻辑:Kubernetes中NetworkPolicy用于替代默认的全开放Pod通信规则,仅放行明确授权的流量,属于白名单机制。
  2. podSelector的作用:精准指定受当前策略管控的Pod集合,这里通过app: port-8080标签筛选出使用8080端口的业务Pod,避免规则误作用到其他Pod。
  3. policyTypes的意义:声明策略同时管控入站(Ingress)和出站(Egress)流量,实现双向通信的精准控制。
  4. 同命名空间限制:当from/to字段仅配置podSelector而未指定namespaceSelector时,默认仅匹配当前命名空间内的Pod,自动阻断跨命名空间的访问请求。
  5. 端口级管控:通过ports字段限定仅允许8080端口的TCP流量,非目标端口的所有通信都会被策略拦截。

四、部署与验证命令

  1. 先给目标Pod打标签(确保策略能匹配到对应的Pod):
kubectl label pods <你的Pod名称> app=port-8080 -n netpol
  1. 应用NetworkPolicy配置:
kubectl apply -f cka-netpol.yaml
  1. 查看策略状态:
kubectl get networkpolicy cka-netpol -n netpol

内容的提问来源于stack exchange,提问作者Anonymous Roman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 01:25:28