1. 程式人生 > 其它 >Kubernetes: ingress default-back-end not found錯誤

Kubernetes: ingress default-back-end not found錯誤

技術標籤:devops架構kuberneteslinux

我建了一個 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,顯示如下:
在這裡插入圖片描述
問題解決了。