我的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可以拨打互联网电话吗?
谢谢!
复制步骤
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;" ]
kubectl exec -it shell -- bash
登录此pod,然后尝试curl 'google.com
失败。