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

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

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

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

    Добавить сервис ServiceMesh

    Шаги

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

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

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

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

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

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

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

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

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

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

    Добавить сервис OpenTelemetry

    Шаги

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

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

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

    ParameterDescription
    DeploymentDeployment, развернутый в текущем пространстве имен 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.