Добавить сервис

В этом документе описывается процесс создания сервиса ServiceMesh или сервиса OpenTelemetry.

Содержание

Предварительные требования

  1. Текущий namespace добавлен в сервисную сетку. Инструкции см. в разделе Add Namespaces.
  2. Тип рабочей нагрузки — Deployment, и существует однозначная связь с Service.

Добавление сервиса ServiceMesh

Шаги

  1. В левой навигационной панели нажмите Service List.

  2. Нажмите Add Service.

  3. Следуйте инструкциям для настройки соответствующих параметров.

ПараметрОписание
DeploymentDeployment в текущем namespace на Container Platform, являющийся вычислительным компонентом, на котором работает сервис.
Internal RoutingИнформация о внутреннем маршруте, который однозначно связан с выбранным Deployment, с возможностью изменения протокола маршрута и имени контейнера.
Internal Routing должен соответствовать следующим условиям:
- С выбранным Deployment связан только один внутренний маршрут, и этот маршрут связан исключительно с этим Deployment.
- Тип внутреннего маршрута — NodePort или ClusterIP.
- Сервис поддерживает только протоколы HTTP, HTTP2, gRPC, TCP. Не добавляйте неподдерживаемые протоколы внутреннего маршрута, так как это может привести к ошибкам вызова сервиса.
Sidecar ConfigurationВ режимах управления Service Mesh или Composite в добавляемый сервис автоматически внедряется Sidecar. Это означает, что при запуске Pod сервиса в Pod также запускается контейнер Sidecar, который перехватывает входящий и исходящий трафик сервиса, а также управляет и контролирует сервис.
  • Вы можете управлять выделением ресурсов для Sidecar через конфигурацию ресурсов.
  • Вы можете настроить уровень логирования Sidecar.
  • Вы можете при необходимости настроить пропуск трафика.
Cross-cluster Service DiscoveryПримечание: Этот параметр виден только если текущая сервисная сетка является мультикластерной сервисной сеткой (минимум 2 кластера).

Определяет, будет ли сервис доступен для всех кластеров, управляемых сеткой, позволяя любому сервису или шлюзу в других кластерах сетки напрямую обращаться к текущему сервису.
Переключатель Cross-cluster Service Discovery является глобальным (на уровне всей сетки). Изменение состояния переключателя для любого сервиса с одинаковым именем в сетке повлияет на все сервисы с таким же именем (сервисы с именем, совпадающим с внутренним маршрутом, связанным с выбранным Deployment) во всех кластерах.
Объяснение: Сервисы с одинаковым именем — это сервисы в разных кластерах, управляемых сервисной сеткой, в namespace с одинаковым именем; успешно добавленный сервис и внутренний маршрут, связанный с выбранным Deployment, имеют одинаковое имя.

При включении переключателя, после успешного добавления сервиса:
  • Если в других управляемых кластерах нет сервиса с внутренним маршрутом, имя которого совпадает с маршрутом, связанным с выбранным Deployment, в соответствующем кластере синхронно создаётся внутренний маршрут с таким же именем для обнаружения сервиса. При создании внутреннего маршрута с одинаковым именем в других кластерах:
    • Если в кластере отсутствует namespace с таким же именем, как текущий namespace, создание внутреннего маршрута не удастся, и возможности кросс-кластерного обнаружения сервиса не будет.
    • Если в namespace (с таким же именем, как текущий) уже существует внутренний маршрут с таким же именем, как у маршрута, связанного с выбранным Deployment, будет использован существующий внутренний маршрут. Примечание: Если конфигурация существующего маршрута отличается от конфигурации маршрута, связанного с выбранным Deployment, кросс-кластерное обнаружение сервиса может быть недоступно.
  • Переключатель Cross-cluster Service Discovery для всех сервисов с одинаковым именем в сетке во всех кластерах будет включён.
  1. Нажмите Add.

    После успешного добавления сервиса:

    • (При использовании метода управления Service Mesh) В списке сервисов будет создан сервис с таким же именем, как у Service.

    • Платформа автоматически обновит параметры шаблона Pod Deployment сервиса, добавив или обновив метку app: <service name>.
      Рекомендуется не изменять эти метки напрямую в YAML-файле.

    • Перезапустите Deployment сервиса.
      Во время перезапуска, если хотя бы один Pod Deployment находится в состоянии Running, сервис считается Online; в противном случае сервис — Offline.

Добавление сервиса OpenTelemetry

Шаги

  1. В левой навигационной панели нажмите Service List.

  2. Нажмите Add Service. В появившемся окне выбора метода управления выберите OpenTelemetry.

  3. Следуйте инструкциям для настройки соответствующих параметров.

ПараметрОписание
DeploymentDeployment, развернутый в текущем namespace на Container Platform, являющийся вычислительным компонентом, на котором работает сервис.
Service NameПри использовании метода управления OpenTelemetry необходимо задать имя сервиса.
Примечание: Если в metadata.labels выбранного Deployment присутствует метка asm.cpaas.io/msname: xxx, значение этой метки используется по умолчанию в качестве Service Name и не может быть изменено.
  1. Нажмите Add.

    После успешного добавления сервиса:

    • В режимах управления OpenTelemetry или Composite сервис (Java 8+) по умолчанию будет внедрён OpenTelemetry Java Agent, что позволяет платформе неинвазивно собирать телеметрию сервиса и данные мониторинга JVM.

    • Компонент opentelemetry-operator перехватит создание Pod сервиса и добавит конфигурацию Java Agent.

    • Перезапустите Deployment сервиса.
      Во время перезапуска, если хотя бы один Pod Deployment находится в состоянии Running, сервис считается Online; в противном случае сервис — Offline.