給定這個yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
名稱: test-ingress-2
注解:
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
規則:
- host:/span> test.com
http:
路徑:
- 后端:
serviceName: admin
servicePort: 8080
path: /admin/*
pathType: ImplementationSpecific
- 后端:
serviceName: keycloak
服務埠: 8080
path: auth/*
pathType: ImplementationSpecific
我希望rewrite-target只適用于服務admin。對keycloak的請求不應受到影響。我怎樣才能做到這一點呢?
uj5u.com熱心網友回復:
你可以把ingress檔案或配置分開,只要確保你保持不同的名字
。所以你可以創建TWO ingress
apiVersion: extensions/v1beta1。
kind: Ingress
metadata:
名稱: test-ingress-1
注解:
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
規則:
- host:/span> test.com
http:
路徑:
- 后端:
serviceName: admin
servicePort: 8080
path: /admin/*
pathType: ImplementationSpecific
Ingress。2具有不同的配置,你可以根據需要編輯任何東西,現在洗掉注釋。
apiVersion: extensions/v1beta1。
kind: Ingress
metadata:
名稱: test-ingress-2
注解:
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
規則:
- host:/span> test.com
http:
路徑:
- 后端:
serviceName: keycloak
服務埠: 8080
path: auth/*
pathType: ImplementationSpecific
如果你想把所有的東西都存盤在一個YAML檔案中,你也可以通過用---合并它們來實作。
uj5u.com熱心網友回復:
用戶Harsh Manvar的回答很好,顯示了正確的解決方案。但我要把它擴展一下,告訴你為什么。始終創建盡可能少的相互依賴的部署。例如,如果你需要改變keycloak中的某些內容,它不應該對admin產生任何影響。此外,如果入口處壞了,你將有兩個壞的服務,而不是一個。實際上,你應該始終為一個服務創建一個入口。
此外,你可能想創建完全不同的重寫規則。那么,創建獨立的入口將是一個非常好的主意。請看這個問題.
。也請看關于重寫規則的檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/319473.html
標籤:
