背景

某项目应用需迁移到k8s环境,其中有个应用配置了Ingress,但通过域名访问,始终返回503服务不可用,应用服务都是正常的

查看错误信息

[root@k8s-node1 ~]# curl 10.100.57.176:30080
curl: (7) Failed connect to 10.100.57.176:30080; Connection refused

排查

确认请求是否达到后端
通过nsenter工具进入容器的网络空间

tcpdump -i ens160 -vnn port 32407  

发现并没有请求进入,更改域名后可以看到请求,说明确实请求根本没到达后端

查看Ingress日志
Ingress本质上是一个nginx容器,通过nginx实现路由,可以登录到主机找到该容器

[root@k8s-node1 ~]# docker ps|grep nginx
6845c835de72 anjia0532/google-containers.ingress-nginx.controller "/usr/bin/dumb-init …" 5 days ago Up 5 days k8s_controller_ingress-nginx-controller-6b55b8874b-9bdzg_ingress-nginx_b9394d49-b7c9-448a-b0f1-e93749389592_0
aebd2a52d016 registry.aliyuncs.com/google_containers/pause:3.6 "/pause" 5 days ago Up 5 days k8s_POD_ingress-nginx-controller-6b55b8874b-9bdzg_ingress-nginx_b9394d49-b7c9-448a-b0f1-e93749389592_0

非pause的容器就是Ingress的容器,上面 6845c835de72 就是Ingress的容器,可以直接用docker logs查看日志

docker logs -f -t –tail 100 6845c835de72

2021-04-14T03:04:35.009823820Z W0414 03:04:35.009743 8 controller.go:829] Error obtaining Endpoints for Service “default/mdm-sts-svc”: no object matching key “default/mdm-sts-svc” in local store


评论