gpt4 book ai didi

kubernetes - 如何创建匹配 Kubernetes API 的网络策略

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

在我们的 EKS Kubernetes 集群中,我们有一个通用的 calico 网络策略来禁止所有流量。然后我们添加网络策略以允许所有流量。

我们的一个 pod 需要与 Kubernetes API 通信,但我似乎无法将该流量与非常广泛的 ipBlock 选择器相匹配。还有其他方法吗?

这目前有效,但访问范围太广:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: test-network-policy
spec:
podSelector:
matchLabels:
run: my-test-pod
policyTypes:
- Egress
egress:
- to: # To access the actual kubernetes API
- ipBlock:
cidr: 192.168.0.0/16
ports:
- protocol: TCP
port: 443

在 AWS EKS 中我看不到控制平面 pod,但在我的 RPI 集群中我可以。在 RPI 集群中,API pod 有标签“component=kube-apiserver,tier=control-plane”,所以我也尝试使用带有这些标签的 podSelector,但它在 EKS 或 RPI 集群中都不匹配:

    - to:
- namespaceSelector:
matchLabels:
name: kube-system
- podSelector:
matchLabels:
component: kube-apiserver

如有任何帮助,我们将不胜感激。

最佳答案

如果你:

  • 通过运行 kubectl cluster-info 找到 API 服务器

  • 调查一下

Kubernetes master is running at ... lets say from the example https://EXAMPLE0A04F01705DD065655C30CC3D.yl4.us-west-2.eks.amazonaws.com

最后在 NetworkPolicy 中使用 a.b.c.d/32,例如

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: test-network-policy
spec:
podSelector: {}
policyTypes:
- Egress
egress:
- to:
- ipBlock:
cidr: a.b.c.d/32
ports:
- protocol: TCP
port: 443

如果我理解错了请指正

关于kubernetes - 如何创建匹配 Kubernetes API 的网络策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64301218/

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