EKS中的Nginx入口控制器无法将流量路由到Pod

时间:2019-10-15 15:52:58

标签: amazon-web-services kubernetes nginx-ingress amazon-eks aws-eks

我有一个运行kubernetes 1.14的EKS集群。按照以下link中的步骤,我在群集上部署了Nginx控制器。

这是我遵循的步骤-

  

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml

     

kubectl适用-f   https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/aws/service-l4.yaml

     

kubectl适用-f   https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/aws/patch-configmap-l4.yaml

但是我一直在入口控制器中间歇性地收到这些错误。

2019/10/15 15:21:25 [error] 40#40: *243746 upstream timed out (110: Connection timed out) while connecting to upstream, client: 63.xxx.xx.xx, server: x.y.com, request: "HEAD / HTTP/1.1", upstream: "http://172.20.166.58:80/", host: "x.y.com"

有时是这些-

{"log":"2019/10/15 02:58:40 [error] 119#119: *2985 connect() failed (113: No route to host) while connecting to upstream, client: xx.1xx.81.1xx, server: a.b.com , request: \"OPTIONS /api/v1/xxxx/xxxx/xxx HTTP/2.0\", upstream: \"http://172.20.195.137:9050/api/xxx/xxx/xxxx/xxx\ ", host: \"a.b.com \", referrer: \"https://x.y.com/app/connections\"\n","stream":"stderr","time":"2019-10-15T02:58:40.565930449Z "}

我正在使用本地Amazon VPC CNI插件进行Kubernetes联网-

  

amazon-k8s-cni:v1.5.4

我注意到nginx入口控制器pod的5个副本中有两个副本无法与后端应用程序通信。 为了检查nginx入口控制器容器与后端应用程序之间的连接性,我将其塞入nginx入口控制器容器中,并尝试使后端服务卷曲,但超时,但是当我将SSH转换为另一个后端服务,然后卷曲相同的后端服务时,返回200状态代码。我临时修复它的方法是删除无法与后端通信的副本并重新创建它。这可以暂时解决此问题,但是几个小时后,相同的错误再次开始显示。

1 个答案:

答案 0 :(得分:1)

amazon-k8s-cni:v1.5.4

DNS和Pod到Pod的通讯存在已知问题。建议还原为

amazon-k8s-cni:v1.5.3

v1.5.4 Release Notes

我遇到了与您看到的相同的问题,回到v1.5.3似乎可以为我解决它。我认为他们在最近启动eks群集时最近将插件恢复到v1.5.3。