Настройка доступа к кластеру Kubernetes из интернета

Чтобы опубликовать приложение, cоздайте сервис Load Balancer и сетевое правило DNAT в консоли управления платформы Облако VMware.

Создание сервиса Load Balanсer

Сохраните следующую спецификацию для создания сервиса Load Balancer в YAML-файл с названием lb-service.yaml:

apiVersion: v1
kind: Service
metadata:
  name: example-service-2
spec:
  selector:
    app: web
  ports:
    - port: 8080
      targetPort: 8080
  type: LoadBalancer
  loadbalancerIP: 192.168.0.101

Где:

  • port — порт сетевого балансировщика, на котором будут обслуживаться пользовательские запросы.

  • targetPort — порт контейнера, на котором доступно приложение.

  • selector — метки селектора, использованные в шаблоне подов при создании объекта Deployment.

  • loadbalancerIP — (опциональный параметр) IP-адрес для сервиса LoadBalancer. Укажите IP-адрес из диапазона адресов (0.101 — 0.200), выделенных для узлов компонентов кластера (CIDR сети узлов).

Опционально, добавьте в спецификацию алгоритм балансировки. Для этого добавьте аннотацию:

annotations:
service.beta.kubernetes.io/sks-loadbalancer-algorithm: least_connection

См.также

Подробнее о Load Balancer.

Настройка сетевых параметров

Чтобы настроить сетевые параметры:

  1. Авторизуйтесь в консоли управления платформы Облако VMware.

    Примечание

    Данные для входа в личный кабинет предоставляет специалист Cloud.ru после заказа услуги Managed Kubernetes.

  2. Нажмите на карточку Дата-центра и в меню слева выберите Edges.

  3. Выберите пограничный маршрутизатор (Edge gateway).

  4. Добавьте Application Port Profile (внутренний порт, по которому приложение доступно внутри кластера Kubernetes). Для этого перейдите на вкладку Application Port Profiles, нажмите NEW и установите следующие параметры:

    • Name — введите имя профиля порта приложения.

    • Protocol — выберите протокол TCP.

    • Ports — установите порт 6443.

  5. Создайте правило для сети. Для этого перейтите на вкладку NAT и нажмите NEW.

  6. Установите следующие обязательные параметры для правила в окне Add NAT Rule:

    • Description — краткое описание правила.

    • State — статус правила. Активируйте чекбокс.

    • Interface Type — выберите тип DNAT.

    • External IP — укажите внешний IP-адрес добавленный для Edges. Чтобы узнать внешний IP-адрес добавленный для Edges перейдите в раздел Edges, нажмите на название Edge Gateway и перейдите в раздел IP Allocation.

    • External Port — внешний порт для подключения из интернета.

    • Internal IP — добавьте IP-адрес указанный при создании сервиса Load Balancer.

    • Application — выберите добавленный ранее Application Port Profile.

  1. (Опционально) Нажмите Advanced Settings и в параметре Priority установите приоритет для правила.

Примечание

Для каждого кластера Kubernetes на Edge создается правило NOSNAT по умолчанию с приоритетом 0, обеспечивающее сетевую связность. Если на Edge существуют правила NOSNAT или SNAT с тем же приоритетом 0 и пересекающиеся с подсетью кластера Kubernetes (значение Destination IP), то таким правилам следует установить приоритет ниже (1 и далее). В случае пересечения правил NAT c приоритетом 0 кластер Kubernetes может работать некорректно.

  1. Нажмите Save.

  2. Создайте правило для Firewall:

    1. Создайте IP Set для сервиса Load Balancer. Для этого перейдите на вкладку IP Sets, нажмите NEW и установите следующие параметры:

      • Name — имя IP Set.

      • IP Addresses — IP-адрес Load Balancer.

    2. Нажмите Save.

    3. Перейдите на вкладку Firewall, нажмите Edit Rules→New on top и установите параметры:

      • Name — имя правила.

      • State — активируйте чекбокс.

      • Source — выберите Any Source.

      • Destination — выберите созданный IP set.

      • Action — установите значение Allow.

      • IP Protocol — выберите IPv4.

    4. Нажмите Save.

Внимание

При создании правила для Firewall через Terraform в описании правила необходимо указать параметр direction = «IN_OUT».

Подробное описание параметров для правил Firewall в Terraform доступно по ссылке (en):

https://registry.terraform.io/providers/vmware/vcd/3.3.0/docs/resources/nsxt_firewall#firwall-rule

При создании правила в консоли управления платформы Облако VMware данный параметр устанавливается автоматически и имеет значение «IN_OUT».

Запустили Evolution free tier
для Dev & Test
Получить