Сценарии администрирования AUSC#

Предусловия#

Требования к набору привилегий администратора Kubernetes в части выполнения сценариев, перечисленных ниже: для установки и настройки Autoscaler необходимы как минимум права администратора, описанные в разделе «Параметры настройки» в секции Управление ролями пользователей.

Последовательность выполнения#

Для выполнения сценария администрирования AUSC необходимо выполнить следующую последовательность шагов:

  1. Запуск

  2. Остановка

  3. Настройка выделения ресурсов

Запуск#

После установки Autoscaler в соответствии с Руководством по установке, все его реплики должны запуститься автоматически. Если же этого не произошло или по каким-либо причинам необходим ручной запуск реплик, то ниже приведены последовательности действий для запуска.

С использованием веб-интерфейса Kubernetes#

Шаг

Действие

Вход в веб-консоль Kubernetes

Перейдите по ссылке (URL) веб-консоли нужного кластера Kubernetes, в окне ввода учетных данных введите токен пользователя или kubeconfig

Переход в нужный проект

Выберите нужный проект в выпадающем списке в шапке веб-интерфейса Kubernetes

Запуск pod

1. В меню выберите пункт Workload/Deployments.
2. На странице найдите нужный Deployment (можно использовать поиск по имени).
3. Нажмите ⋮ и выберите Scale.
4. Задайте нужное количество подов и нажмите Scale

Выход из веб-консоли Kubernetes

1. Щелкните по имени пользователя, чтобы раскрыть меню учетной записи.
2. Выберите пункт Log out.
3. Закройте окно браузера

С использованием консоли Kubernetes#

Шаг

Действие

Вход в клиент Kubernetes

Запросите у администратора кластера kubeconfig для kubectl

Запуск компонента

В консоли выполните команду: kubectl --kubeconfig=<путь_к_файлу_kubeconfig> scale --replicas=<N> deployment/<имя deployment>,
где: N>0 — требуемое количество запущенных подов

Остановка#

С использованием веб-интерфейса Kubernetes#

Шаг

Действие

Логин в веб-консоль Kubernetes

Перейдите по ссылке (URL) веб-консоли нужного кластера Kubernetes, в окне ввода учетных данных введите токен пользователя или kubeconfig

Переход в нужный проект

Выберите нужный проект в выпадающем списке в шапке веб-интерфейса Kubernetes

Остановка компонента

Выполните следующие действия:
1. В меню выберите пункт Workload/Deployments .
2. На странице найдите нужный Deployment (при необходимости можно воспользоваться поиском по имени).
3. Нажмите ⋮ и выберите Scale.
4. Уменьшите количество подов до 0 и нажмите Scale

Выход из веб-консоли Kubernetes

Выполните следующие действия:
1. Кликом по иконке пользователя раскройте меню.
2. Выберите пункт Sign out .
3. Закройте окно браузера

С использованием консоли Kubernetes#

Шаг

Действие

Запросить kubeconfig для kubectl

Запросите у администратора кластера kubeconfig для kubectl

Остановка компонента

В консоли выполните команду: kubectl --kubeconfig=<путь_к_файлу_kubeconfig> scale --replicas=0 deployment/<имя deployment>

Настройка выделения ресурсов#

С использованием веб-интерфейса Kubernetes#

Шаг

Действие

Логин в веб-консоль Kubernetes

Перейдите по ссылке (URL) веб-консоли нужного кластера Kubernetes, в окне ввода учетных данных введите токен пользователя или kubeconfig

Переход в проект

Выберите нужный проект в выпадающем списке в шапке веб-интерфейса Kubernetes

Вход в Deployment

Выполните следующие действия:
1. В меню выберите пункт Workload/Deployments.
2. На странице найдите нужный Deployment (при необходимости можно воспользоваться поиском по имени).
3. Перейдите по ссылке в наименовании ⋮ , выберите Edit, перейдите на вкладку YAML или JSON

Корректировка параметров

Выполните следующие действия:
1. В окне редактирования найдите параметры:
spec.template.spec.containers[0].resources.limits.cpu
spec.template.spec.containers[0].resources.limits.memory
spec.template.spec.containers[0].resources.requests.cpu
spec.template.spec.containers[0].resources.requests.memory
2. Установите нужные значения

Сохранение

Нажмите кнопку Update

Проверка конфигурации

Снова зайдите на вкладку Edit в YAML или JSON

Выход из веб-консоли Kubernetes

Выполните следующие действия:
1. Кликом по иконке пользователя раскройте меню.
2. Выберите пункт Sign out.
3. Закройте окно браузера

Конфигурирование Autoscaler#

В данном разделе представлено описание конфигурации компонентов Autoscaler.

Если в ходе эксплуатации продукта требуется настройка конфигураций микросервисов компонента Autoscaler, то администратор с соответствующими правами может это сделать, изменив configmap с конфигурацией приложения.

autoscaler-adapter#

Конфигурация autoscaler-adapter производится в рамках env = „WATCH_NAMESPACE“ и аргументами запуска (args) в деплойменте.

  args:
    - '--port=8080'
    - '--logtostderr=true'
    - '--stderrthreshold=ERROR'
    - '--disable-compression=true'
    - >-
      --metrics-controller-address=autoscaler-controller.synai5.svc.cluster.local:9666
    - '--v=4'
    - '--secure-port=6443'
    - '--tls-cert-file=/app/certs/tls.crt'
    - '--tls-private-key-file=/app/certs/tls.key'
    - >-
      --metrics-operator-address=autoscaler-operator.synai5.svc.cluster.local:9090

autoscaler-controller#

Конфигурация autoscaler-controller производится в рамках configmap autoscaler-controller-config, уже развернутом на кластерe.

Ниже приведен пример конфигурации autoscaler-controller.

      env:
        - name: POD_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: OPERATOR_NAME
          value: autoscaler-controller
        - name: KUBEAPI_TLS_ENABLE
          value: 'false'
        - name: KUBERNETES_SERVICE_HOST
          value: kubernetes.default.svc.cluster.local

Далее приведена спецификация конфигурации autoscaler-controller.

autoscaler-controller-config.env#

Поле

Описание

WATCH_NAMESPACE

Определяет конфигурацию источников данных для Autoscaler

POD_NAME

Определяет имя пода

POD_NAMESPACE

Определяет namespace, в котором находится autoscaler-controller

OPERATOR_NAME

Определяет имя оператора

KUBEAPI_TLS_ENABLE

Выбирает, какой будет клиент для взаимодействия с кубом

KUBERNETES_SERVICE_HOST

Определяет хост Kube-API

TRIGGER_CRON_ENABLE

Включает или выключает триггер cron

TRIGGER_PROMETHEUS_ENABLE

Включает или выключает триггер prometheus

TRIGGER_K8S_WORKLOAD_ENABLE

Включает или выключает триггер kubernetes-workload

TRIGGER_UTILIZATION_ENABLE

Включает или выключает триггер utilization

TRIGGER_PROMETHEUS_HOST

Определяет хост prometheus

TRIGGER_PROMETHEUS_PORT

Определяет порт prometheus

TRIGGER_PROMETHEUS_PREFIX

Запрос в prometheus

Примечание: если поле изменить в runtime, то для внесения изменений необходимо перезапустить pod.

Параметры настройки#

Для использования Autoscaler необходимо создать объекты Custom Resource ScaledObject и ProjectCapacityPolicy. Подробнее о самих объектах и их использовании описано в AUSC-API-Reference.

Правила эксплуатации#

Специальных правил или условий для эксплуатации среды функционирования не предусмотрено.

Описание механизмов безопасности#

Специальных механизмов безопасности не предусмотрено.

Результат#

Успешный результат:

  • Компонент AUSC запущен, ресурсы выделены, сервис доступен.

  • Компонент AUSC остановлен, ресурсы освобождены.