
我正在嘗試建立一個非常簡單的 Kubernetes 集群,包含前端、後端和資料庫服務。以下是前端服務定義檔的一部分:
apiVersion: v1
kind: Service
metadata:
name: frontend
labels:
tier: frontend
spec:
selector:
tier: frontend
ports:
- port: 80
nodePort: 30080
type: LoadBalancer
當我在連接埠 30080 存取叢集的 IP 時,一切正常。
現在,我正在嘗試設定一個在連接埠 80 上工作的 Ingress(為將叢集部署到 Azure 做準備)。我想將所有 HTTP 流量導向前端,因為這是我的叢集中唯一的 HTTP 服務。所以ingress定義檔如下:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: zippori
annotations:
kubernetes.io/ingress.class: addon-http-application-routing
spec:
backend:
serviceName: frontend
servicePort: 80
但是,當我訪問http://minikube-ip我收到以下非常簡單的錯誤:
預設後端 - 404
就好像 Ingress 不會將任何內容轉發到我的前端,而只是嘗試自己的預設後端。
我怎樣才能解決這個問題?
答案1
問題出在 Ingress 服務。
在 Ingress 類型 yaml 中,您使用註解來定義「入口後端」。對於 AKS 來說,它是“addon-http-application-routing”,但對於 minikube 來說,開箱即用的是kubernetes.io/ingress.class: nginx
使用正確的註解更新 Ingress 應該可以為您的 minikube 設定啟用服務。