【问题标题】:Kubernetes - ingress-nginx "no active endpoint" errorKubernetes - ingress-nginx“无活动端点”错误
【发布时间】:2021-01-18 07:06:43
【问题描述】:

我正在构建一个微服务应用程序。我无法使用邮递员向其中一项服务发送请求:

我正在向使用邮递员发送POST 请求的端点:

http://cultor.dev/api/project

错误:“project-srv”没有任何活动端点(ingress-nginx 返回 503 错误)

注意

所有其他微服务运行良好,使用完全相同的配置。

ingress-nginx 配置:

apiVersion: extensions/v1beta1
kind: Ingress
metadata: 
    name: ingress-service 
    annotations: 
        nginx.ingress.kubernetes.io/default-backend: ingress-nginx-controller
        nginx.ingress.kubernetes.io/use-regex: 'true'
spec: 
    rules: 
        - host: cultor.dev 
          http: 
            paths:
              - path: /api/project/?(.*)
                backend: 
                  serviceName: project-srv 
                  servicePort: 3000
              - path: /api/profile/?(.*)
                backend: 
                  serviceName: profile-srv 
                  servicePort: 3000
              - path: /api/users/?(.*) 
                backend: 
                  serviceName: auth-srv 
                  servicePort: 3000
              - path: /?(.*) 
                backend: 
                  serviceName: client-srv 
                  servicePort: 3000

ClusterIP 服务:

$ kubectl get svc
NAME                TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)             AGE
auth-srv            ClusterIP   10.245.52.208    <none>        3000/TCP            40m
client-srv          ClusterIP   10.245.199.94    <none>        3000/TCP            39m
kubernetes          ClusterIP   10.245.0.1       <none>        443/TCP             24d
nats-srv            ClusterIP   10.245.1.58      <none>        4222/TCP,8222/TCP   39m
profile-srv         ClusterIP   10.245.208.174   <none>        3000/TCP            39m
project-srv         ClusterIP   10.245.131.56    <none>        3000/TCP            39m

日志

inress-nginx:

45.248.29.8 - - [02/Oct/2020:15:16:52 +0000] "POST /api/project/507f1f77bcf86cd799439011 HTTP/1.1" 503 197 "-" "PostmanRuntime/7.26.5" 591 0.000 [default-project-srv-3000] [] - - - - e1ae0615f49091786d56cab2bb9c94c6
W1002 15:17:59.712320       8 controller.go:916] Service "default/project-srv" does not have any active Endpoint.
I1002 15:17:59.814364       8 main.go:115] successfully validated configuration, accepting ingress ingress-service in namespace default
W1002 15:17:59.827616       8 controller.go:916] Service "default/project-srv" does not have any active Endpoint.

【问题讨论】:

  • 确保您的 pod 处于活动状态并且服务使用正确的标签选择器。
  • 要完全了解您的设置,请包括您的DeploymentServicesYAML 定义。您也可以运行kubectl describe pod POD_NAME 来检查它是否处于就绪状态(可用于处理流量)。

标签: kubernetes microservices google-kubernetes-engine nginx-ingress


【解决方案1】:

@Kamol Hasan 建议的标签有误。

“部署”配置中的 pod 选择器标签与其“服务”配置中的选择器不匹配。

【讨论】:

    猜你喜欢
    • 2019-05-30
    • 1970-01-01
    • 2020-01-15
    • 2019-10-21
    • 2019-08-08
    • 1970-01-01
    • 2019-05-14
    • 1970-01-01
    • 2017-10-02
    相关资源
    最近更新 更多