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

В этом документе описывается процесс создания сервиса 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.