允许EKS工作者节点访问Internet

时间:2019-05-17 23:01:02

标签: amazon-web-services networking amazon-ec2 kubernetes amazon-eks

我的EKS集群中有两个节点组,两个都是通过CloudFormation创建的,并且按照AWS在这里推荐的设置-https://docs.aws.amazon.com/eks/latest/userguide/launch-workers.html

因此,节点组具有其自己的安全组,其入站和出站规则几乎相同。但是,第二个节点组上的Pod无法访问Internet,并且所有呼叫均失败并超时。例如,如果我通过kubectl exec -it pod-name -- bash登录到第二个节点组上的一个pod并尝试curl 'google.com,它将给我curl: (6) Could not resolve host: google.com。但是,如果我将ssh放入属于该节点组的EC2实例之一,并尝试相同的方法,则效果很好。

我首先创建的节点组不存在此问题。如果我将第一个节点组的安全组分配给第二个节点组(同时保留其现有的安全组),那么它也可以解决此问题。但这对我来说并不理想,因为每个节点组有多个安全组还有很多其他问题。

有什么想法可以使第二个节点组上的Pod可以拨打互联网电话吗?

谢谢!


复制步骤

  1. 按照here
  2. 的说明用控制台创建EKS集群。
  3. 通过CloudFormation创建第二个NodeGroup,并使用相同的步骤将其加入集群。
  4. 使用以下清单创建Pod,并使用适当的nodeSelector来确保其落在新节点组中的一个节点上。
apiVersion: v1
kind: Pod
metadata:
  name: shell
spec:
  nodeSelector:
    yourlabel: yourlabelvalue
  containers:
  - name: shell
    image: ubuntu:latest
    command: [ "/bin/bash", "-c", "--" ]
    args: [ "apt-get update; apt-get -y install curl; while true; do sleep 30; done;" ]
  1. 通过kubectl exec -it shell -- bash登录此pod,然后尝试curl 'google.com失败。

0 个答案:

没有答案