J02.07. Routes (Маршрутизация)
Что такое Routes (Маршрутизация)?
Routes (Маршрутизация) — функционал Cloud Managed Kubernetes, аналогичный Ingress в Kubernetes. Вы можете использовать маршрут и один IP-адрес для агрегирования и предоставления нескольких сервисов.
Необходимые условия перед выполнением настроек
Перед выполнением настроек:
1. Создайте рабочее пространство, проект и двух пользователей, например, ws-admin и project-regular. Admin должна быть предоставлена роль project-admin в проекте, а project-regular — роль operator.
2. Если доступ к маршрутизации должен осуществляться в режиме HTTPS, создайте секретную переменную, содержащую ключи tls.crt(сертификат TLS) и tls.key (закрытый ключ TLS). Ключи используются для шифрования.
3. Создайте минимум один сервис.
Настройка метода доступа к маршрутизации
1. Войдите в консоль как project-admin и перейдите в проект.
2. Выберите Gateway Settings в Project Settings на левой панели навигации и нажмите кнопку Enable Gateway справа.
3. В появившейся экранной форме установите для параметра Access Mode значение NodePort или LoadBalancer и нажмите кнопку ОК.
Создание маршрутизации
Создание состоит из следующих последовательных шагов:
1. Настройка основной информации.
2. Настройка правил маршрутизации.
3. Настройка дополнительных параметров.
4. Получение доменного имени, пути службы и адреса шлюза.
При необходимости проверьте параметры настройки.
Шаг 1. Настройка основной информации
1. Выйдите из веб-консоли Cloud Managed Kubernetes, войдите снова как project-regular и перейдите к тому же проекту.
2. Выберите Routes в Application Workloads на левой панели навигации и нажмите кнопку Create справа.
3. На вкладке Basic Information настройте основную информацию о маршруте и нажмите кнопку Next.
- Name: имя, которое является уникальным идентификатором.
- Alias: псевдоним.
- Description: описание.
Шаг 2. Настройка правил маршрутизации
1. На вкладке Routing Rules нажмите кнопку Add Routing Rule.
2. Выберите режим, настройте правила маршрутизации, нажмите кнопки √ и Next.
- Auto Generate: Cloud Managed Kubernetes автоматически генерирует доменное имя в формате <Service name>.<Project name>.<Gateway address>.nip.io. Доменное имя автоматически преобразуется nip.io в адрес шлюза. Этот режим поддерживает только HTTP.
- Domain Name: установите имя домена для маршрута.
- Протокол: выберите http или https. Если выбран https, выберите секретную переменную, которая содержит ключи tls.crt (сертификат TLS) и tls.key (закрытый ключ TLS). Ключи используются для шифрования.
- Paths: сопоставьте каждую службу с путем. Чтобы добавить несколько путей при необходимости, нажмите кнопку Add.
Шаг 3. Настройка дополнительных параметров
1. Перейдите на вкладку Advanced Settings и выберите кнопку Add Metadata.
2. Настройте аннотации и метки для маршрута и нажмите кнопку Create.
Шаг 4. Получение доменного имени, пути службы и адреса шлюза
1. Выберите Routes в Application Workloads на левой панели навигации и щелкните имя маршрута справа.
2. Получите доменное имя и путь к службе, адрес шлюза в Rules. Адрес шлюза зависит от значения режима доступа Route:
- Если установлено значение NodePort, IP-адрес узла кластера Kubernetes используется в качестве адреса шлюза. NodePort отображается после имени домена.
- Если установлено значение LoadBalancer, адрес шлюза назначается подключаемым модулем балансировки нагрузки.
Настройка разрешения доменного имени
Если в конфигурации правил маршрутизации выбрали параметр Auto Generate, то настройка доменного имени не требуется. Доменное имя автоматически преобразуется как nip.io в адрес шлюза.
Если в конфигурации правил маршрутизации выбрали параметр Specify Domain, то настройте разрешение имени домена на вашем DNS-сервере или добавьте <Route gateway address> <Route domain name> в файл etc/hosts клиентской машины.
Настройка доступа к маршрутизации
Режим доступа NodePort
1. Войдите на клиентский компьютер, подключенный к адресу Route gateway.
2. Используйте адрес <Route domain name>:<NodePort>/<Service path> для доступа к серверной службе маршрута.
Метод доступа к LoadBalancer
1. Войдите на клиентский компьютер, подключенный к адресу Route gateway.
2. Используйте адрес <Route domain name>/<Service path> для доступа к серверной службе маршрута.
Доступ к маршруту из-за пределов частной сети
Если необходим доступ к маршруту из-за пределов вашей частной сети с помощью NodePort или LoadBalancer в зависимости от сетевой среды, то:
- Может потребоваться настройка политики переадресации трафика и брандмауэра в инфраструктурной среде. Это необходимо для получения доступа к адресу шлюза и номеру порта маршрута.
- Если в конфигурации правил маршрутизации выбран параметр Auto Generate, может потребоваться ручное редактирование правила маршрутизации. Это необходимо для изменения адреса шлюза в имени домена маршрутизации на внешний IP-адрес частной сети.
- Если в конфигурации правил маршрутизации выбран параметр Specify Domain, то может потребоваться изменение конфигурации на DNS-сервере или в файле etc/hosts клиентского компьютера. Это необходимо для преобразования доменного имени во внешний IP-адрес вашей частной сети.
Проверка параметров настройки
При необходимости просмотрите параметры настройки маршрутизации.
Операции
1. Выберите Routes в Application Workloads на левой панели навигации и щелкните имя маршрута справа.
2. Нажмите кнопку Edit Information или нажмите кнопку More и выберите операцию в раскрывающемся меню:
- Edit YAML: изменение файла конфигурации YAML Route.
- Edit Routing Rules: изменение правил маршрутизации.
- Edit Annotations: изменение аннотации маршрута.
- Delete: возврат на страницу с списком правил маршрутизации после удаления.
Статус ресурса
Щелкните вкладку Resource Status, чтобы просмотреть правила маршрутизации.
Метаданные
Щелкните вкладку Metadata, чтобы просмотреть метки и аннотации правил маршрутизации.
События
Щелкните вкладку Events, чтобы просмотреть события правил маршрутизации.