• Русский
  • Настройка HA Istio с использованием autoscaling

    Включите High Availability (HA) для плоскости управления Istio с помощью autoscaling, чтобы mesh оставался работоспособным даже при сбое pod istiod.

    NOTE

    При использовании autoscaling вы задаете минимальное и максимальное количество pod'ов плоскости управления Istio, которые могут быть запущены в любой момент времени. Затем Alauda Container Platform масштабирует фактическое число реплик в этих пределах на основе потребления ресурсов — например, использования CPU или памяти, — чтобы плоскость управления могла компенсировать изменения объема нагрузки и шаблонов трафика в mesh.

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

    • Вы вошли в веб-консоль Alauda Container Platform как пользователь с ролью cluster-admin либо у вас есть активная сессия ACP CLI (kubectl) в качестве администратора кластера.
    • Установлен Alauda Service Mesh v2 Operator.
    • Развернут ресурс Istio.

    Настройка через веб-консоль

    Порядок действий

    1. В веб-консоли Alauda Container Platform перейдите в раздел Administrator.

    2. Выберите Marketplace > OperatorHub.

    3. Найдите Alauda Service Mesh v2.

    4. Найдите Alauda Service Mesh v2 и щелкните его, чтобы выбрать.

    5. Щелкните вкладку All Instances.

    6. В раскрывающемся списке Filter by instance type выберите Istio.

    7. Щелкните имя установки Istio, например default.

    8. Щелкните вкладку YAML.

    9. Обновите пользовательский ресурс (CR) Istio, чтобы он соответствовал следующему примеру:

      apiVersion: sailoperator.io/v1
      kind: Istio
      metadata:
        name: default
      spec:
        namespace: istio-system
        values:
          pilot:
            autoscaleMin: 2
            autoscaleMax: 5
            cpu:
              targetAverageUtilization: 80
            memory:
              targetAverageUtilization: 80
      1. spec.values.pilot.autoscaleMin задает минимальное количество реплик плоскости управления Istio, которые всегда запущены. Для соответствия требованиям HA значение должно быть не меньше 2.
      2. spec.values.pilot.autoscaleMax задает максимальное количество реплик плоскости управления Istio, до которого autoscaler может масштабировать систему под нагрузкой.
      3. spec.values.pilot.cpu.targetAverageUtilization задает целевое среднее использование CPU в процентах. Когда наблюдаемая загрузка CPU превышает этот целевой уровень, Horizontal Pod Autoscaler (HPA) добавляет реплики.
      4. spec.values.pilot.memory.targetAverageUtilization задает целевое среднее использование памяти в процентах. Когда наблюдаемое использование памяти превышает этот целевой уровень, HPA добавляет реплики.

    Настройка через CLI

    Порядок действий

    1. Получите имя ресурса Istio:

      kubectl get istio -n istio-system

      Пример вывода

      NAME      NAMESPACE      PROFILE   REVISIONS   READY   IN USE   ACTIVE REVISION   STATUS    VERSION   AGE
      default   istio-system             1           1       1        default           Healthy   v1.28.6   24m

      Ресурс Istio имеет имя default.

    2. Примените patch к пользовательскому ресурсу (CR) Istio, чтобы включить autoscaling для плоскости управления:

      kubectl patch istio default -n istio-system --type merge -p '
      spec:
        values:
          pilot:
            autoscaleMin: 2
            autoscaleMax: 5
            cpu:
              targetAverageUtilization: 80
            memory:
              targetAverageUtilization: 80
      '

      Описание этих параметров см. в разделе Настройка через веб-консоль.

    Проверка

    Проверьте состояние pod'ов плоскости управления Istio:

    kubectl get pods -n istio-system -l app=istiod

    Пример вывода

    NAME                      READY   STATUS    RESTARTS   AGE
    istiod-6b8d64c946-2dq2k   1/1     Running   0          28m
    istiod-6b8d64c946-skg4v   1/1     Running   0          35s

    Запущены два pod'а istiod. Два pod'а — это минимально необходимое количество для HA-плоскости управления Istio, что указывает на наличие базовой конфигурации HA.