https://efficacious-beginner-568.notion.site/ingress-404-8b90bafba2a245a8b725988810d655d5
上图是 ingress ,我用 h1 域名访问结果是 nginx 报 404 (直接问题)
尝试添加 annotation
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
均无果,怀疑是 h2 的服务有问题,然后登陆到这个 ingress 下的 pod 中
curl localhost:8080 可以访问到
curl h2:8080 没有反应
Ping h2 可以
telnet h2 8080 没有反应
那么可以确定是 h2 的服务有问题吗?但实际项目已经在测试,正式环境跑通了,h2:8080 这样的访问方式应该是没问题的
看了 3 个小时,查了好多资料,无解了。。
1
chenxytw 2022-08-01 19:56:18 +08:00
service 咋写的?
|
2
yibo2018 OP |
3
Beebird 2022-08-01 20:44:27 +08:00
kubectl get endpoints h2 看看
|
4
yibo2018 OP @Beebird
░▒▓ ~/Doc/company_f/p/ kubectl get endpoints XXX NAME ENDPOINTS AGE XXX 182.20.2.42:8080,182.20.2.42:8080 55d |
5
Beebird 2022-08-01 21:16:09 +08:00
你的配置,目的是<Service IP:80> 和 <Service IP:8080> 都指向 <Pod IP:8080> 吗?
那你在 ingress 下的 pod 中,curl h2:80 有无反应? (假设你的 ingress 和 h2 在同一个 namespace 下) |
6
xvan 2022-08-01 23:11:40 +08:00
curl 不到 8080 应该就是有问题的。
反馈 404 的话,是不是先把 rewrite 规则去掉避免干扰 然后去 ingress-controller 中看下实际的规则怎么写的,确认下是否如预期, 最后可以看下 ingress-controller 的日志看有没有线索 |
7
xiaobai1213 2022-08-01 23:21:49 +08:00
看一下你的 service 捕捉到目标了吗
|
8
xiaobai1213 2022-08-01 23:23:00 +08:00
@xiaobai1213 之前遇到过 service 的 selector 写的有问题 捕捉不到 deploy 访问的时候就是 timeout
|