gpt4 book ai didi

kubernetes - 拒绝来自特定命名空间的流量的网络策略

转载 作者:行者123 更新时间:2023-12-04 16:59:05 25 4
gpt4 key购买 nike

假设我有 5 个命名空间 - prod、preprod、uat、dev 和 test。每个命名空间都有不同的标签 - ns=prod、ns=preprod、ns=uat、ns=dev 和 ns=test。

问题:
所以我想创建一个网络策略,我不想将流量(导出)从 ns=test 发送到标签为 ns=prod 的特定命名空间。但是 ns=test 应该能够对所有其他命名空间进行导出。

文档:
https://kubernetes.io/docs/concepts/services-networking/network-policies/
https://kubernetes.io/docs/tasks/administer-cluster/declare-network-policy/

我试图从上述文档创建一个 list 文件,但没有运气。我可以使用 podSelector(pod 的标签,但不能只使用命名空间作为一个整体)来做到这一点。

最佳答案

如果您可以添加代码片段会更容易。但是,要弄清楚出了什么问题并不难。

我在想这样的事情可能是您的网络策略的问题。您的 Pod 可能需要万维网连接,因此您无法通过 egress 阻止从测试到生产的通信。规则,因为您可能会添加 0.0.0.0/0让您在任何环境中的 pod 与外部世界通信以下载外部库或与您的应用程序相关的任何内容。

因此,添加 egress 有点困难。停止与任何环境通信的规则。但相反,您可以添加 igress禁止来自 test 的通信的规则或 dev .像这样的事情可能会奏效,但同样,我们可以根据需要更改它。

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: prod-network-policy
namespace: prod
spec:
podSelector:
matchLabels:
ns: prod
policyTypes:
- Ingress
- Egress
ingress:
- from:
- namespaceSelector:
matchLabels:
ns: prod
ns: dev
ns: uat
- podSelector:
matchLabels:
ns: prod
ns: dev
ns: uat
- ipBlock:
cidr: 10.0.1.101/32 #Assuming allow incoming request from ingress controller
egress:
- to: []

有几种方法可以实现这一目标。但是,我有时也会引用 Github 上的这些示例食谱。 .

根据评论编辑
将其他命名空间添加到入口规则以允许来自除 test 之外的其他命名空间的流量。

希望这是有帮助的。

关于kubernetes - 拒绝来自特定命名空间的流量的网络策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59668397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com