nginx-ingress间歇性失败

时间:2019-09-11 14:45:27

标签: kubernetes kubernetes-helm nginx-ingress

nginx-ingress间歇性失败

NGINX入口控制器版本:0.22.0 图片:quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.22.0 图片ID:docker-pullable://quay.io/kubernetes-ingress-controller/nginx-ingress-controller@sha256:47ef793dc8dfcbf73c9dee4abfb87afa3aa8554c35461635f6539c6cc5073b2c

quay.io/kubernetes-ingress-controller/nginx-ingress-controller Kubernetes版本(使用Kubectl版本):v1.15.3

环境:

云提供商或硬件配置:Vcenter中的Vm 操作系统(例如,来自/ etc / os-release):VERSION =“ 16.04.6 LTS(Xenial Xerus)” 内核(例如uname -a):Linux appsec-ana01 4.4.0-143-generic#169-Ubuntu SMP Thu Feb 7 07:56:38 UTC 2019 x86_64 x86_64 x86_64 GNU / Linux 安装工具: 其他: 发生了什么事:

我的nginx-ingress-controller出现故障,并且重新启动不一致。

您期望发生的事情: 没有重启发生

如何重现它(尽可能最小且尽可能精确):应该发生相同版本的问题。 curl-我What is the purpose of administrative installation initiated using msiexec /a? HTTP / 1.1 200 OK 日期:2019年9月11日星期三11:15:56 GMT 内容长度:2 内容类型:文本/纯文本; charset = utf-8

我们需要了解的其他信息: kubectl获取事件的结果如下

2m警告不健康的pod / nginx-ingress-controller-7cfb747d6c-4n4nz活动探针失败:获取http://10.244.10.48:10254/healthz:net / http:在等待连接时请求被取消(在等待标头时超过了Client.Timeout) 30s警告不健康的pod / nginx-ingress-controller-7cfb747d6c-4n4nz活动探针失败:获取http://10.244.10.48:10254/healthz:net / http:请求已取消(在等待标头时超过了Client.Timeout) 6m5s警告不健康的pod / nginx-ingress-controller-7cfb747d6c-4n4nz准备就绪探针失败:获取http://10.244.10.48:10254/healthz:net / http:请求已取消(在等待标头时超过了Client.Timeout) 35m警告不健康的pod / nginx-ingress-controller-7cfb747d6c-4n4nz就绪性探针失败:获取http://10.244.10.48:10254/healthz:net / http:在等待连接时被取消请求(在等待标头时超过了Client.Timeout)

curl -I http://10.244.10.48:10254/healthz HTTP / 1.1 200 OK 日期:2019年9月11日星期三11:15:56 GMT 内容长度:2 内容类型:文本/纯文本; charset = utf-8

2 个答案:

答案 0 :(得分:0)

您日志中的错误清楚地说明了特定nginx-ingress-controller* Pod的运行状况检查问题。由于 Readiness Liveness probeskubelet节点代理完全管理,因此,我会仔细检查kubelet服务,为了获取任何相关的错误或可疑事件:

$ sudo systemctl status kubelet -l

$ sudo journalctl -u kubelet

因此,尽管您成功测试了kubelet个针对curl端点的请求,但从/health节点到K8s API服务器的连接可能会出现问题。

同时,您可以从Nginx Ingress控制器的Pod中检查日志并检查引导事件:

kubectl logs $(kubectl get po -l app=nginx-ingress -o jsonpath='{.items[0].metadata.name}')

我还将检查起源nginx-ingress-controller* Pod所在的K8s Node的容量,并观察整个集群中已分配对象的整体资源利用率。

我建议您查看官方的 Nginx Ingress-Controller 故障排除document,以获取更多调查方法。

答案 1 :(得分:0)

我会说它不与Nginx控制器连接,而是与Kubernetes节点连接。你见过这个吗?

https://github.com/kubernetes/kubernetes/issues/70324

相关问题