Как перенаправить трафик на конкретный модуль? - PullRequest
0 голосов
/ 04 марта 2019

У меня есть приложение, которое использует в базе данных памяти.Я создал набор состояний с помощью Pod, скажем, с 3 репликами.использовал PVC для хранения файлов, связанных с базой данных.

Я использовал Loabalancer для предоставления набора состояний.

Поэтому, когда трафик попадает в loadbalancer каждый раз, когда он перенаправляется на разные модули.

Могу ли я в любом случае управлять балансировкой нагрузки для стручка на основании какого-либо условия (например, если IP-адрес клиента - X, перейдите к стручку Y)?

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Вы можете использовать входящий ресурс K8s для решения этого случая.Я думаю, что вы пытаетесь сделать маршрутизацию на основе хоста.Поместите свои стручки позади различных услуг, используя этикетки.В вашем случае 1 - 100 за службой 1, 100 - 200 за службой 2 и так далее.Затем создайте входной ресурс, чтобы перенаправить входящий трафик на разные сервисы на основе хоста или пути, что бы вам ни потребовалось.Возможно, вам придется использовать прокси-сервер, такой как 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

0 голосов
/ 04 марта 2019

Тот факт, что у вас есть топология лидера / последователя, запрос на направление трафика к указанному номеру (главному узлу) ошибочен по нескольким причинам:

  1. Что происходит, когда текущийЛидер отказывается, и проводятся новые выборы для выбора нового лидера.
  2. Тот факт, что модули являются эфемерными, они не должны играть главную роль в производстве, вместо этого они должны работать с развертываниями и их репликами.То, что вы пытаетесь достичь, это анти-паттерн

В любом случае, если это то, что вы хотите, может быть, вы хотите прочитать о gateways in istio, который можно найти здесь

...