• Русский
  • Добавить сервис

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

    Содержание

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

    1. Текущий namespace добавлен в service mesh. Инструкции см. в разделе 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Примечание: этот параметр виден только если текущий service mesh является мультикластерным service mesh (не менее 2 кластеров).

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

    При включении переключателя, после успешного добавления сервиса:
    • Если в каком-либо другом управляемом кластере нет сервиса с внутренним маршрутом, имя которого совпадает с маршрутом, связанным с выбранным Deployment, в этом кластере синхронно создаётся внутренний маршрут с таким же именем для обеспечения обнаружения сервиса. При создании внутреннего маршрута с одинаковым именем в других кластерах:
      • Если в кластере отсутствует namespace с таким же именем, как текущий namespace, создание внутреннего маршрута не удастся, и возможности кросс-кластерного обнаружения сервиса не будет.
      • Если в namespace (с таким же именем, как текущий) уже существует внутренний маршрут с таким же именем, как у маршрута, связанного с выбранным Deployment, будет использован существующий маршрут. Примечание: если конфигурация существующего маршрута отличается от конфигурации маршрута, связанного с выбранным Deployment, кросс-кластерное обнаружение сервиса может не работать.
    • Переключатель Cross-cluster Service Discovery для всех сервисов с одинаковым именем во всех кластерах mesh будет включён.
    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.