Kubernetes: ingress default-back-end not found错误

在创建K8s ingress时遇到default-back-end not found错误,原因是缺少默认后端服务。解决方案是手动添加default-http-backend服务,通过yaml文件定义并在kube-system命名空间中应用,从而成功解决该问题。

我建了一个 K8s ingress 但是使用下面的命令,确看到 default-back-end not found 错误:

kubectl describe ingress [my-ingress-name]

ingress default-back-end not found
我们的 ingress.yaml 如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: mongo-express-ingress
  # annotations:
  #   kubernetes.io/ingress.class: "nginx"
  #annotations:
  #  nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
    - host: mongo-express.com
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service: 
                name: mongo-express-service
                port:
                  number: 8081

原因

这是因为虽然我们加上了 minikube ingress controller 插件,但是 minikube 没有给我们加上默认的后端 (default back end)。我们需要自己加上这个服务。

我们可以通过下面的命令检查我们是否在命名空间 kube-system 有 default-back-end 服务:

kubectl get service -n kube-system

kube-system 没有找到 default back end

解决方案

使用下面的 yaml 文件创建 default-back-end 服务:

apiVersion: v1
kind: Service
metadata:
  name: default-http-backend
  namespace: kube-system
spec:
  selector:
    app: ingress-nginx-controller
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80

使用下面的命令创建服务:

kubectl apply -f backend.yaml

再使用 describe 命令查看 ingress,显示如下:
在这里插入图片描述
问题解决了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

surfirst

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值