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

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