Использование одного статического IP-адреса в качестве LoadBalancerIP для нескольких служб с разными портами - PullRequest
0 голосов
/ 21 декабря 2018

Я пытаюсь выставить набор реплик с состоянием монго, запущенный на моем кластере, для внешнего доступа.

У меня есть три реплики, и я создал службу LoadBalancer для каждой реплики с одинаковым LoadBalancerIP, в то время какпоследовательное увеличение порта от 10255 до 10257.

    apiVersion: v1
    kind: Service
    metadata:
      name: mongo-service-0
      namespace: datastore
      labels:
        app: mongodb-replicaset
   spec:
      loadBalancerIP: staticip
      type: LoadBalancer
      externalTrafficPolicy: Local
      selector:
        statefulset.kubernetes.io/pod-name: mongo-mongodb-replicaset-0
      ports:
        - protocol: TCP
          port: 10255
          targetPort: 27017

Проблема заключается в том, что только одна служба mongo-service-0 успешно развернута со статическим IP-адресом, а другой - через некоторое время.

Я пытаюсь выяснить, могу ли я использовать один статический IP-адрес в качестве LoadBalancerIP для нескольких служб с разными портами.

1 Ответ

0 голосов
/ 21 декабря 2018

Поскольку вы используете разные порты для каждой из ваших реплик Mongo, вам пришлось создать разные Kubernetes Services для каждой из реплик.Вы можете связать сервис Kubernetes только с одним балансировщиком нагрузки, и каждый балансировщик нагрузки будет иметь свой собственный уникальный IP-адрес (или IP-адрес), поэтому вы не сможете использовать этот IP-адрес для типа LoadBalancer .of Service.

Временное решение: использовать службу NodePort и, в основном, независимо управлять балансировщиком нагрузки и указывать его на NodePort для каждой из ваших реплик.

ДругойОбходной путь - использовать один и тот же порт в ваших репликах Mongo и использовать тот же сервис Kubernetes LoadBalancer.Есть ли причина, по которой вы этим не пользуетесь?

...