我正在按照此处的教程进行测试,以将安全组用于Pod:https://docs.aws.amazon.com/eks/latest/userguide/security-groups-for-pods.html
我能够成功部署它,因为可以看到带有vpc.amazonaws.com/pod-eni:[eni etc]
注释的Pod,并且可以在AWS控制台中成功确认已创建了一个新的ENI,并使用了与Pod相同的私有IP。安全组已附加到创建的ENI。
出于测试目的,我让这个安全组接受所有流量。这意味着我所有的豆荚都可以在任何端口下相互到达。我还可以确认可以从任何Pod进行DNS解析,因为我可以访问AWS外部的服务(即卷曲google / facebook等)。我唯一的问题是我似乎无法从同一节点访问Pod。被执行(在任何端口上)。奇怪的是,我可以从不存在Pod的任何其他节点访问Pod(因此,在3节点EKS集群中,如果pod“ pod-A”在node1中运行,那么我只能到达来自节点2和节点3的“ pod-A”,而不是来自节点1的“ pod-A” )。
这是一个问题,因为该节点中的kubelet无法通过所有http活动/就绪检查,并且我的statefulset从未出现过(我认为这对于部署也将是一个问题,尽管我没有尝试过) 就像我说的那样,我确实成功部署了Pod的安全组,但是即使我已经为该安全组设置了“所有流量”,我也很难理解为什么我无法从同一节点访问Pod。>
eks version: eks.3
kubernetes version: 1.17
cni: amazon-k8s-cni-init:v1.7.4
amazon-k8s-cni:v1.7.4
答案 0 :(得分:1)
我再也想不起来了,所以我也在aws cni repo中问了一下,他们回答了: https://github.com/aws/amazon-vpc-cni-k8s/issues/1260