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

    Этот документ поможет вам создать сервис ServiceMesh или сервис OpenTelemetry.

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

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

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

    Шаги

    1. В левой панели навигации нажмите Список сервисов.

    2. Нажмите Добавить сервис.

    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 является multi-cluster service mesh (минимум 2 кластера).

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

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

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

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

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

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

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

    Шаги

    1. В левой панели навигации нажмите Список сервисов.

    2. Нажмите Добавить сервис. Во всплывающем окне выбора режима управления выберите OpenTelemetry.

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

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

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

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

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

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