簡體   English   中英

如何將流量轉發到特定吊艙?

[英]How to forward Traffic to specific pod?

我有一個在內存數據庫中使用的應用程序。 我使用帶有3個副本的Pod創建了statefulset。 用於存儲數據庫相關文件的PVC。

我使用了Loabalancer來公開有狀態集。

因此,當流量每次到達負載均衡器時都轉發到不同的Pod。

無論如何,我是否可以根據某些條件控制到Pod的負載平衡(例如,如果客戶端IP為X,則轉到Pod Y)?

事實上,您具有領導者/從屬者拓撲,將流量定向到所述nome(主節點)的要求存在缺陷,其原因有兩個:

  1. 當前領導者進行故障轉移並且有新的選舉來選擇新領導者時會發生什么
  2. Pod是臨時性的,它們不應在生產中扮演主要角色,而應與部署及其副本一起使用。 您要實現的是反模式

無論如何,如果這是您想要的,也許您想閱讀有關gateways in istio中的gateways in istio ,可以在這里找到

您可以使用K8s入口資源來解決這種情況。 我認為您要嘗試的是基於主機的路由。 使用標簽將您的廣告連播置於其他服務的后面。 在您的情況下,服務1落后1-100,服務2落后100-200,依此類推。 然后創建一個入口資源,以根據主機或路徑將傳入流量重定向到其他服務,無論您需要什么。 您可能必須使用像Nginx這樣的代理才能在公共雲平台上正常工作。 YAML清單將是這樣的:

apiVersion: extensions/v1beta1 kind: Ingress metadata: name: example-ingress annotations: kubernetes.io/ingress.class: nginx spec: rules: - host: host1.com http: paths: - path: /web1 backend: serviceName: service1 servicePort: 443 - path: /api/v1/a backend: serviceName: service2 servicePort: 80 - path: /api/v1/b backend: serviceName: service3 servicePort: 80 - host: host2.com http: paths: - path: /web2 backend: serviceName: service4 servicePort: 443 - path: /api/v2/a backend: serviceName: service5 servicePort: 80

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM