如何阻止来自 kubernetes 中特定命名空间的流量
How to block traffic from specific namespace in kubernetes
我的 k8 集群中有多个命名空间。我想要的只是开发命名空间中的 pods 可以与其他命名空间中的所有其他 pods 进行通信,但不能与生产命名空间中的资源进行通信。
我找不到该场景的文档。有这样的拒绝所有政策
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny-egress
spec:
podSelector: {}
policyTypes:
- Egress
- Ingress
但它适用于同一命名空间中的 pod 级别。我怎样才能修改它以满足我的要求?
参考文档 here
将开发环境中的所有命名空间标记为environment=dev
将生产环境中的所有命名空间标记为environment=prod
那么你可以有如下的网络策略
- 您已有的默认拒绝政策
- 制定一项政策,将来自标签为
environment=prod
的命名空间流向 pods 的流量列入白名单
如下
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: access-nginx
spec:
podSelector: {}
ingress:
- from:
- namespaceSelector:
matchLabels:
environment: "prod"
我的 k8 集群中有多个命名空间。我想要的只是开发命名空间中的 pods 可以与其他命名空间中的所有其他 pods 进行通信,但不能与生产命名空间中的资源进行通信。
我找不到该场景的文档。有这样的拒绝所有政策
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny-egress
spec:
podSelector: {}
policyTypes:
- Egress
- Ingress
但它适用于同一命名空间中的 pod 级别。我怎样才能修改它以满足我的要求?
参考文档 here
将开发环境中的所有命名空间标记为
environment=dev
将生产环境中的所有命名空间标记为
environment=prod
那么你可以有如下的网络策略
- 您已有的默认拒绝政策
- 制定一项政策,将来自标签为
environment=prod
的命名空间流向 pods 的流量列入白名单
如下
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: access-nginx
spec:
podSelector: {}
ingress:
- from:
- namespaceSelector:
matchLabels:
environment: "prod"