繁体   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