[英]How do I map multiple services to one Kubernetes Ingress path?
如何設置Kubernentes Ingress和Controller基本上執行以下nginx.conf文件的操作:
upstream backend {
server server1.example.com weight=5;
server server2.example.com:8080;
server backup1.example.com:8080 backup;
}
我希望一個http端點映射到多個Kubernetes服務,優先選擇主要服務,但也有一個備份服務。 (對於我的特定項目,我需要有多個服務而不是一個具有多個pod的服務。)
這是我嘗試的ingress.yaml文件。 我很確定我列出多個后端的方式是不正確的。 我該怎么辦? 我如何設置“備份”標志?
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: fanout-ingress
annotations:
ingress.kubernetes.io/rewrite-target: /
kubernetes.io/ingress.class: "nginx"
# kubernetes.io/ingress.global-static-ip-name: "kubernetes-ingress"
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: server1
servicePort:
- path: /
backend:
serviceName: server2
servicePort: 8080
- path: /
backend:
serviceName: backup1
servicePort: 8080
我在GKE上運行Kubernetes。
Kubernetes Ingress無能為力。
您可以創建一個以server1,server2和backup1為目標的新服務,並在Ingress中使用它。 但后端將以循環方式使用。
您可以使用您希望的配置創建(無狀態)nginx反向代理的部署和服務,並在Ingress中使用它。
但是,您需要根據某些東西進行區分(除了端口,因為它是Ingress),因此您的兩個選項將是虛擬主機或路徑。
路徑不適用於某些期望標准路徑的服務。 根據您的示例判斷,您最有可能想要像a.example.com和b.example.com這樣的內容。 以下是Kubernetes文檔中的示例:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: name-virtual-host-ingress
spec:
rules:
- host: foo.bar.com
http:
paths:
- backend:
serviceName: service1
servicePort: 80
- host: bar.foo.com
http:
paths:
- backend:
serviceName: service2
servicePort: 80
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.