如何创建与Kubernetes API匹配的网络策略
在我们的EKS Kubernetes集群中,我们有一个通用的印花布网络策略,禁止所有流量。然后我们添加网络策略以允许所有流量 我们的一个pod需要与kubernetesapi通信,但我似乎无法将该通信量与非常广泛的ipBlock选择器相匹配。还有别的办法吗 这目前有效,但访问范围太广:如何创建与Kubernetes API匹配的网络策略,kubernetes,kubernetes-networkpolicy,Kubernetes,Kubernetes Networkpolicy,在我们的EKS Kubernetes集群中,我们有一个通用的印花布网络策略,禁止所有流量。然后我们添加网络策略以允许所有流量 我们的一个pod需要与kubernetesapi通信,但我似乎无法将该通信量与非常广泛的ipBlock选择器相匹配。还有别的办法吗 这目前有效,但访问范围太广: apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: test-network-policy spec: podSele
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中,我看不到控制平面吊舱,但在我的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
- 看smth的样子
- 将其转换为ip地址,假设它是
a.b.c.d
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
如果我理解smth错误,请纠正我对于EKS,您还需要将主节点安全组中的工作节点IP列入白名单。我正在使用专用通信运行EKS访问,并且节点没有公共IP,因此不需要列入白名单。这也意味着,如果我允许来自192.168.0.0/16的pod的所有流量,那么它就可以工作了,但这是一个太宽的范围。