Предоставление сервиса LoadBalancer в миникубе на произвольном порту? - PullRequest
0 голосов
/ 04 марта 2020

У меня есть кластер мини-кубов с запущенным WordPress в одном развертывании и MySQL в другом. Оба развертывания имеют соответствующие услуги. Определение для службы WordPress выглядит следующим образом:

apiVersion: v1
kind: Service
metadata:
    name: wordpress
spec: 
    selector:
        app: wordpress
    ports:
        - port: 80 
    type: LoadBalancer

Служба работает нормально, а minikube service дает мне хороший путь с адресом minikube ip и случайным высоким портом. Проблема в WordPress нужен полный URL в названии сайта . Я бы предпочел не менять его каждый раз и иметь локальное DNS-имя для кластера.

Есть ли способ выставить LoadBalancer на произвольном порту в мини-кубе? С любым портом у меня все будет в порядке, пока его порт определен мной, а не миникубом?

1 Ответ

1 голос
/ 04 марта 2020

Имейте в виду, что Minikube не может обеспечить настоящий loadbalancer , как различные облачные провайдеры, и просто имитирует его, используя простые nodePort Service вместо этого.

Вы можете полностью контролировать используемый порт. Прежде всего, вы можете указать его вручную в спецификации nodePort Service (помните, что он должен находиться в диапазоне по умолчанию: 30000-32767):

Если вы хотите указать c порт число, вы можете указать значение в поле nodePort. Плоскость управления либо выделит вам этот порт, либо сообщит о сбое транзакции API. Это означает, что вам нужно позаботиться о возможных конфликтах портов самостоятельно. Вы также должны использовать действительный номер порта, который находится внутри диапазона, настроенного для использования NodePort.

Ваш пример может выглядеть следующим образом:

apiVersion: v1
kind: Service
metadata:
    name: wordpress
spec: 
    selector:
        app: wordpress
    ports:
        - port: 80
          targetPort: 80
          nodePort: 30000
    type: NodePort

Вы также можете изменить это диапазон по умолчанию, предоставляя пользовательское значение после --service-node-port-range флага при запуске kube-apiserver.

при использовании кластера kubernetes , настроенного с помощью инструмента kukbeadm (* 1031) * Minikube также использует его в качестве загрузчика по умолчанию), вам нужно отредактировать файл /etc/kubernetes/manifests/kube-apiserver.yaml и предоставить требуемый флаг с вашим настраиваемым диапазоном портов.

...