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

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

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

    1. Текущий namespace добавлен в service mesh. См. инструкции в разделе Add Namespaces.
    2. Тип workload — Deployment, и между ним и Service установлено соответствие один к одному.

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

    Шаги

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

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

    3. Ознакомьтесь с приведенными ниже инструкциями, чтобы настроить соответствующие параметры.

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

    ParameterDescription
    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.