【问题标题】:Error: endpoints "default-http-backend" not found错误:未找到端点“default-http-backend”
【发布时间】:2022-10-07 18:31:18
【问题描述】:

我在裸机 Ubuntu-18.04 服务器中设置了Kubernetes cluster v1.19.16,目前我想通过http://jenkins.company.com 连接集群 jenkins 服务。已配置 Haproxy 服务器端前端和后端。

我的service.yaml文件内容如下,

apiVersion: v1
kind: Service
metadata:
  name: jenkins-svc
  namespace: jenkins
  annotations:
      prometheus.io/scrape: \'true\'
      prometheus.io/path:   /
      prometheus.io/port:   \'8080\'
spec:
  selector: 
    app: jenkins-server
  type: ClusterIP
  ports:
    - protocol: TCP
      port: 8080
      targetPort: 80

ingress-resource.yaml文件内容如下,

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: jenkins-ingress
  namespace: jenkins
  annotations:
    kubernetes.io/ingress.class: \"nginx\"
spec:
  rules:
  - host: \"jenkins.company.com\"
    http:
      paths:
      - pathType: Prefix
        path: \"/\"
        backend:
          serviceName: jenkins-svc
          servicePort: 8080
# kubectl get service -n jenkins
NAME          TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
jenkins-svc   ClusterIP   10.96.136.255   <none>        8080/TCP   20m
# kubectl get ing jenkins-ingress
Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
NAME              CLASS    HOSTS                ADDRESS   PORTS   AGE
jenkins-ingress   <none>   jenkins.company.com            80      5h42m
# kubectl describe ingress  -n jenkins
Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
Name:             jenkins-ingress
Namespace:        jenkins
Address:
Default backend:  default-http-backend:80 (<error: endpoints \"default-http-backend\" not found>)
Rules:
  Host             Path  Backends
  ----             ----  --------
  jenkins.dpi.com
                   /   jenkins-svc:8080 (10.244.0.16:80)
Annotations:       ingress.kubernetes.io/rewrite-target: /
                   kubernetes.io/ingress.class: nginx
Events:            <none>

当我尝试访问http://jenkins.company.com 时,它会在浏览器上显示以下错误消息。

请让我知道我在这里缺少什么?

  • 可能是吊舱崩溃了?你能通过 portforwd 到达 pod 吗?
  • jenkinsnginx-ingress 命名空间中,所有 pod 都运行良好。

标签: kubernetes kubernetes-ingress nginx-ingress


【解决方案1】:

service portcontainer port 的问题。 Jenkins 默认端口是8080,所以我假设你的服务端口是80

  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080

和入口应该是

spec:
  rules:
  - host: "jenkins.company.com"
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          serviceName: jenkins-svc
          servicePort: 80

port:这个服务的端口 targetPort pod(s) 上用于转发流量的目标端口

Difference between targetPort and port in Kubernetes Service definition

【讨论】:

    猜你喜欢
    • 2021-06-07
    • 2021-09-02
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多