我有一个运行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
但是我一直在入口控制器中间歇性地收到这些错误。
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状态代码。我临时修复它的方法是删除无法与后端通信的副本并重新创建它。这可以暂时解决此问题,但是几个小时后,相同的错误再次开始显示。
答案 0 :(得分:1)
amazon-k8s-cni:v1.5.4
DNS和Pod到Pod的通讯存在已知问题。建议还原为
amazon-k8s-cni:v1.5.3
我遇到了与您看到的相同的问题,回到v1.5.3似乎可以为我解决它。我认为他们在最近启动eks群集时最近将插件恢复到v1.5.3。