gpt4 book ai didi

kubernetes networkpolicy 只允许外部流量到互联网

转载 作者:行者123 更新时间:2023-12-02 12:15:00 25 4
gpt4 key购买 nike

我试图在我的 kubernetes 集群中实现网络策略以将我的 pod 隔离在一个命名空间中,但仍然允许它们访问 Internet,因为我使用 Azure MFA 进行身份验证。

这是我尝试过的,但似乎无法正常工作。入口按预期工作,但这些策略会阻止所有导出。


apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny-all
spec:
podSelector: {}
policyTypes:
- Ingress
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: grafana-policy
namespace: default
spec:
podSelector:
matchLabels:
app: grafana
ingress:
- from:
- podSelector:
matchLabels:
app: nginx-ingress


谁能告诉我我是如何进行上述配置的,所以我也将允许互联网流量但阻止到其他 POD 的流量?

最佳答案

尝试在命名空间上添加默认拒绝所有网络策略:

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: default-deny-all
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress
然后在之后添加允许 Internet 策略:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: allow-internet-only
spec:
podSelector: {}
policyTypes:
- Egress
egress:
- to:
- ipBlock:
cidr: 0.0.0.0/0
except:
- 10.0.0.0/8
- 192.168.0.0/16
- 172.16.0.0/20
这将阻止除互联网出站之外的所有流量。
allow-internet-only策略,所有私有(private) IP 都有一个异常(exception),这将阻止 pod 到 pod 通信。
您还必须允许从 kube-system 到核心 DNS 的导出。如果您需要 DNS 查找,如 default-deny-all策略将阻止 DNS 查询。

关于kubernetes networkpolicy 只允许外部流量到互联网,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57789969/

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