提问者:小点点

在入口资源中找不到endpoint“默认-超文本传输协议-backend”


当我尝试为我的库伯内特斯集群创建入口资源时(入口控制器已经创建),入口资源/规则正在创建,我能够在kubectl中看到。但是当我做kubectl描述时,我看到一个错误:

默认后端:默认-超文本传输协议-backend:80(

这是预期的吗??我什至无法使用我在入口资源中定义的DNS名称(hotel.example.com)连接到我的应用程序。是由于这个超文本传输协议-backend错误吗?如果不是,任何建议使应用程序连接!!

[dockuser@hostname]$ kubectl describe ing hotel-ingress -n hotel
Name:             hotel-ingress
Namespace:        hotel
Address:
Default backend:  default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
  Host         Path  Backends
  ----         ----  --------

  hotel.example.com
               /     hotel-svc:80 (10.36.0.2:80,10.44.0.2:80)
Annotations: 
Events:

部署文件:namespace. yaml

apiVersion: v1
kind: Namespace
metadata:
  name: hotel

ingress. yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: hotel-ingress
  namespace: hotel
spec:
  rules:
  - host: hotel.example.com
    http:
      paths:
      - path: /
        backend:
          serviceName: hotel-svc
          servicePort: 80

部署. yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hotel
  namespace: hotel
spec:
  replicas: 2
  selector:
    matchLabels:
      app: hotel
  template:
    metadata:
      labels:
        app: hotel
    spec:
      containers:
      - name: hotel
        image: nginxdemos/hello:plain-text
        ports:
          - containerPort: 80

service. yaml

apiVersion: v1
kind: Service
metadata:
  name: hotel-svc
  namespace: hotel
spec:
  selector:
    app: hotel
  ports:
    - port: 80
      targetPort: 80

共3个答案

匿名用户

您可能希望将defaultBackend添加为入口定义的一部分,如下所示

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: default-backend-ingress-example
spec:
  defaultBackend:
    service:
      name: hotel-svc
      port:
        number: 80

环境

minikube version: v1.21.0
kubectl version: v1.20.7

匿名用户

我意识到这是回答(为子孙后代补充),但在我的情况下,我已经跑了

minikube addons enable ingress

但是系统仍然缺少默认超文本传输协议-backend

我怀疑当时有一个冲突的使用端口或一些这样的和默认的超文本传输协议后端默默地未能创建。

在多次尝试纠正问题后,我终于发现执行以下命令为我解决了问题:

原资源已不可用,抱歉

如果我今天必须再次这样做,我可能会尝试直接从ingress-nginx项目应用部署:

kubectl apply -f https://github.com/kubernetes/ingress-nginx/tree/main/deploy/static/provider/baremetal/deploy.yaml

(未测试)

PS:请注意,已经有nginx-load-balanter-conf的配置图,所以我没有添加这些。

PPS:其次,这只是为了在本地笔记本电脑上进行教育,所以对它的可信度持半信半疑的态度。

匿名用户

如果您使用Minikube,可能是因为您没有启用入口。

请尝试以下命令:

minikube addons enable ingress

minikube addons enable ingress --alsologtostderr