Балансировщик нагрузки Kubernetes Ожидается внешний IP - PullRequest
0 голосов
/ 18 февраля 2020

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

apiVersion: v1
kind: Service
metadata:
  name: rabbitmq
  labels:
    run: rabbitmq
spec:
  type: NodePort
  ports:
  - port: 5672
    protocol: TCP
    name: mqtt
  - port: 15672
    protocol: TCP
    name: ui
  selector:
    run: rabbitmq
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: rabbitmq
spec:
  replicas: 1
  selector:
    matchLabels:
      run: rabbitmq
  template:
    metadata:
      labels:
        run: rabbitmq
    spec:
      containers:
      - name: rabbitmq
        image: rabbitmq:latest
        imagePullPolicy: Always

И мой балансировщик нагрузки находится ниже. Я дал loadbalancer nodePort случайным образом, номер порта из созданного в kubernetes номера порта mqtt RabbitMQ, номер целевого порта из созданного в kubernetes номера порта пользовательского интерфейса RabbitMQ

apiVersion: v1
kind: Service
metadata:
  name: loadbalanceservice
  labels:
    app: rabbitmq
spec:
  selector:
    app: rabbitmq
  type: LoadBalancer
  ports:
  - nodePort: 31022
    port: 30601
    targetPort: 31533

Ответы [ 2 ]

2 голосов
/ 18 февраля 2020

тип сервиса Loadbalancer работает только на облачных провайдерах, которые поддерживают внешние балансировщики нагрузки. Установка поля типа в LoadBalancer обеспечивает балансировщик нагрузки для вашей службы. Ожидается, поскольку среда, в которой вы находитесь, не поддерживает Loadbalancer Тип сервиса. В не облачной среде проще будет использовать сервис nodeport . Вот руководство по использованию Nodeport для доступа к сервису вне кластера.

1 голос
/ 18 февраля 2020

Сервис LoadBalancer не работает на голых металлических кластерах. Ваша служба LoadBalancer также будет действовать как служба NodePort. Вы можете использовать комбинацию nodeIP:nodePort для доступа к вашему сервису за пределами кластера.

Если вы хотите, чтобы внешний IP с пользовательской комбинацией портов для доступа к вашему сервису, посмотрите metallb , в котором реализована поддержка сервисов типа LoadBalancer на кластерах без использования металла.

...