You need to enable JavaScript to run this app.
文档中心
容器服务

容器服务

复制全文
下载 pdf
服务与路由 FAQ
请求 Ingress 无响应,该如何处理?
复制全文
下载 pdf
请求 Ingress 无响应,该如何处理?

问题现象

请求 Ingress 时无响应,无法访问后端服务。

解决方案

请求 Ingress 时,需要经过 Ingress、Service、Pod,逐个排查每个环节是否正常。排查步骤如下:

  1. 根据所用的 Ingress 名称,查看 Ingress 的转发规则。示例如下:
kubectl get ingress test-ingress -n default -oyaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test-ingress
  namespace: default
spec:
  ingressClassName: nginx
  rules:
  - host: test.com
    http:
      paths:
      - backend:
          service:
            name: test
            port:
              number: 3001
        path: /
        pathType: Prefix
status:
  loadBalancer: {}
  1. 排查后端 service 是否存在,由以上示例所示,请求将被 nginx 转发到 default 命名空间下,名称为 test 的 servcie,service 的端口号为 3001。若能够找到对应的 service,则表示 service 正常;若 service 不存在,则需要创建对应的 service。
kubectl get service test -n default
NAME       TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)    AGE
test      ClusterIP   xxx.xxx.xxx.xx   <none>        443/TCP   1h
  1. 通过如下命令判断 service 对应的 endpoints 列表是否为空,若 endpoints 字段为空,说明该 service 后端没有挂载 Pod,则需要创建对应负载。
kubectl get ep test -n default
NAME       ENDPOINTS                                  AGE
platform   xxx.xxx.xxx.xxx:3001,xxx.xxx.xxx.xxx:3001   1h
  1. 排查主机上是否存在相同端口的监听,导致 nginx 无法监听指定的端口。
最近更新时间:2023.11.21 19:52:00
这个页面对您有帮助吗?
有用
有用
无用
无用