发生了什么?
我想使用网络策略来限制pod之间的流量。在我的案例中,我将argocd部署到了AWS EKS集群上,并在aws负载均衡器控制器之上添加了alb。Argocd位于argocd命名空间中,而AWS负载均衡器控制器位于kube-system命名空间中。在没有网络策略的情况下,设置运行良好。但是当将网络策略部署到argocd命名空间时,它也会阻止来自alb的流量,我无法访问域名。我收到了504网关超时的错误。在network policies中为argocd和kube-system命名空间的双向流量添加了条目。
你期望发生什么?
我期望添加alb控制器命名空间的条目将允许来自alb的流量。
我们如何尽可能精确地重现它?
通过aws蓝图部署的EKS。
从最新的helm图表部署了argocd和aws-load-balancer-controller。
网络策略如下:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: argocd-allow-ingress-egress
namespace: argocd
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress
ingress:
- from:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: argocd
- from:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: kube-system
egress:
- to:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: argocd
- to:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: kube-system
我们需要了解其他信息吗?
通过aws vpc cni插件使用的网络策略。
aws-load-balancer-controller的hostNetwork设置为false。
Kubernetes版本:
$ kubectl version
Client Version: v1.28.3
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.28.3-eks-4f4795d
云提供商:
AWS
操作系统版本:
# On Linux:
$ cat /etc/os-release
# paste output here
$ uname -a
# paste output here
# On Windows:
C:\> wmic os get Caption, Version, BuildNumber, OSArchitecture
# paste output here
安装工具:
容器运行时(CRI)和版本(如有适用)
相关插件(CNI,CSI等)和版本(如有适用)
5条答案
按热度按时间w6mmgewl1#
/sig network
cnh2zyt32#
2wnc66cl3#
@MikeZappa87: 标签
triage/accept
无法应用,因为仓库中没有它们。对此的回应:
/triage accept
/assign @astoycos
使用PR评论与我互动的说明已提供。如果您对我的行为有任何疑问或建议,请针对该仓库提交一个问题。
zphenhs44#
/triage accepted
q0qdq0h25#
@kkarczewski So this issue is most likely specific to the aws vpc cni addon since that's the process actually implementing the dataplane rules. However, if the ALB pods are hostnetworked that could be the issue. Regardless reaching out to the aws VPC cni addon development community it most likely the best course of action
Additionally you can simplify your policy like so:
Although that shouldn't effect the functionality