Миграция из Docker Swarm: знакомство с моим сервисом Kubernetes для всего мира (в известном порту) - PullRequest
0 голосов
/ 05 февраля 2019

Я запускаю крошечный (читай: одноузловой) кластер Docker Swarm, который я хочу перенести в Kubernetes, и я не могу понять, как открыть Сервис на определенном порту, чтобы я мог получить к нему доступ извнеworld.

В Docker Swarm я мог бы выставить, например, сервер MySQL, указав

ports:
  - '3306:3306'

как часть сервисного блока в моем файле конфигурации стека, что позволило бы мне получить к нему доступ 127.0.0.1:3306.

Чтобы воспроизвести это в Kubernetes, моим первым инстинктом было использование типа сервиса NodePort и указание

ports:
  - port: 3306
    targetPort: 3306
    nodePort: 3306

в спецификации сервиса.Но это недопустимо: Kubernetes говорит мне provided port is not in the valid range. The range of valid ports is 30000-32767.

Тогда есть Ingress, который, кажется, тесно связан с тем, что я хочу сделать, но это в бета-версии и, по-видимому,ориентирован на HTTP-сервисы (что не охватывает все мои варианты использования).Существует также тип LoadBalancer, но я не использую облачного провайдера с поддержкой для него, и поэтому я не могу это сделать.

Это немного смутило меня.Если я хочу выставить службу в своем кластере Kubernetes, чтобы я мог получить к ней доступ извне (например, из Интернета в целом на some-public-ip:3306), каков рекомендуемый (или альтернативный, удобный для новичков) способ его настройки?Чего мне не хватает?

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Запускает трафик ha-proxy для прокси-базы данных в службу mysq k8, Ha-proxy поддерживает https и трафик tcp

0 голосов
/ 05 февраля 2019

NodePort, вероятно, самый простой подход, но вам нужно будет выбрать порт в диапазоне от 30000 до 32767. Таким образом, вы получите доступ, скажем, some-public-ip:30306, который будет внутренне сопоставлен с портом вашей службы 3306.

...