【发布时间】:2020-10-14 00:13:21
【问题描述】:
我正在按照此处的教程测试为 pod 使用安全组:https://docs.aws.amazon.com/eks/latest/userguide/security-groups-for-pods.html
我能够成功部署它,因为我可以看到我的 pod 注释为:vpc.amazonaws.com/pod-eni:[eni etc],并且我可以在 AWS 控制台中成功确认使用与 pod 相同的私有 IP 和所选安全组创建了一个新 ENI附加到创建的 ENI。
出于测试目的,我有这个安全组来接受所有流量。这意味着我所有的 pod 都可以在任何端口下相互访问。我还可以确认可以从任何 pod 完成 DNS 解析,因为我可以访问 AWS 之外的服务(即 curl google / facebook 等)我唯一的问题是我似乎无法从同一个节点访问 pod 是正在执行(在任何端口上)。奇怪的部分是我可以从 pod 不存在的任何其他节点到达 pod(所以在 3 节点 EKS 集群中,如果 pod“pod-A”在 node1 中运行,那么我只能到达“pod-A”来自 node2 和 node3,但不是来自 node1)。
这是一个问题,因为该节点中的 kubelet 未能通过所有 http liveness/readiness 检查,并且我的 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
【问题讨论】:
标签: amazon-web-services kubernetes amazon-eks aws-security-group