Kubernets NetworkPolicy Ingress

本文深入探讨Kubernetes网络策略的配置与应用,通过多个实例展示如何限制不同命名空间及Pod间的网络访问,确保集群内的通信安全。从基础概念到实践操作,涵盖default命名空间内外的访问控制、特定Pod与端口的访问权限设定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

仅允许NS内部请求

  • 拒绝所有非default的namespace请求 default 命名空间下面的资源
apiVersion: extensions/v1beta1
kind: NetworkPolicy
metadata:
  name: deny-default
  namespace: default
spec:
  ingress:
 - from:
    - podSelector: {}
  podSelector: {}
  policyTypes:
 - Ingress

内部请求隔离

  • 在default命名空间内 仅允许 标签为app: testredis 的pod访问 标签为app: default-redis-rc-2 的6379端口
apiVersion: extensions/v1beta1
kind: NetworkPolicy
metadata:
  labels:
    app: default-redis-rc-2
  name: ns-pod2pod
  namespace: default
spec:
  ingress:
 - from:
    - podSelector:
        matchLabels:
          app: testredis
    ports:
    - port: 6379
      protocol: TCP
  podSelector:
    matchLabels:
      app: default-redis-rc-2
  policyTypes:
 - Ingress

NS 内部请求

  • 仅允许 project: default 命名空间访问 app: default-redis-rc-2 的6379
apiVersion: extensions/v1beta1
kind: NetworkPolicy
metadata:
  labels:
    app: default-redis-rc-2
  name: pod2pod
  namespace: default
spec:
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          project: default
    ports:
    - protocol: TCP
  podSelector:
    matchLabels:
      app: default-redis-rc-2
  policyTypes:
  - Ingress

集群内非本namespace请求

  • 允许ns为project: michael 访问default 命名空间下面的 app: default-redis-rc-2 下面的6379端口
apiVersion: extensions/v1beta1
kind: NetworkPolicy
metadata:
  labels:
    app: default-redis-rc-2
  name: pod2ns
  namespace: default
spec:
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          project: michael
    ports:
    - port: 6379
      protocol: TCP
  podSelector:
    matchLabels:
      app: default-redis-rc-2
  policyTypes:
  - Ingress

允许指定NS里面的POD访问

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: ns-pod
  namespace: default
spec:
  podSelector:
    matchLabels:
      app: web
  ingress:
    - from:
      - namespaceSelector:    
          matchLabels:
             project: test
        podSelector:           
          matchLabels:
            test: pycheck

找到一个不错的github地址 内涵动态图和yaml 还有说明

https://github.com/ahmetb/kubernetes-network-policy-recipes
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值