Автоматическое масштабирование — это функция в OpenShift, где развертываемые приложения могут масштабироваться и уменьшаться в зависимости от требований в соответствии с определенными спецификациями. В приложении OpenShift автоматическое масштабирование также называется автоматическим масштабированием. Существует два типа масштабирования приложения следующим образом.
Вертикальное масштабирование
Вертикальное масштабирование — это все больше и больше энергии на одной машине, что означает добавление процессора и жесткого диска. Это старый метод OpenShift, который сейчас не поддерживается в выпусках OpenShift.
Горизонтальное масштабирование
Этот тип масштабирования полезен, когда необходимо обработать больше запросов, увеличив число машин.
В OpenShift есть два способа включить функцию масштабирования .
- Использование файла конфигурации развертывания
- Во время запуска изображения
Использование файла конфигурации развертывания
В этом методе функция масштабирования включается через файл yaml конфигурации deploymant. Для этого используется команда OC autoscale с минимальным и максимальным количеством реплик, которые необходимо запустить в любой момент времени в кластере. Нам нужно определение объекта для создания автомасштабатора. Ниже приведен пример файла определения pod autoscaler.
apiVersion: extensions/v1beta1 kind: HorizontalPodAutoscaler metadata: name: database spec: scaleRef: kind: DeploymentConfig name: database apiVersion: v1 subresource: scale minReplicas: 1 maxReplicas: 10 cpuUtilization: targetPercentage: 80
Как только у нас будет файл, нам нужно сохранить его в формате yaml и выполнить следующую команду для развертывания.
$ oc create –f <file name>.yaml
Во время запуска изображения
Можно также автоматически масштабировать без файла yaml, используя следующую команду oc autoscale в командной строке oc.
$ oc autoscale dc/database --min 1 --max 5 --cpu-percent = 75 deploymentconfig "database" autoscaled
Эта команда также создаст файл аналогичного типа, который впоследствии можно будет использовать для справки.
Стратегии развертывания в OpenShift
Стратегия развертывания в OpenShift определяет поток развертывания с различными доступными методами. В OpenShift ниже перечислены важные типы стратегий развертывания .
- Роллинг стратегия
- Воссоздать стратегию
- Индивидуальная стратегия
Ниже приведен пример файла конфигурации развертывания, который используется в основном для развертывания на узлах OpenShift.
kind: "DeploymentConfig" apiVersion: "v1" metadata: name: "database" spec: template: metadata: labels: name: "Database1" spec: containers: - name: "vipinopenshifttest" image: "openshift/mongoDB" ports: - containerPort: 8080 protocol: "TCP" replicas: 5 selector: name: "database" triggers: - type: "ConfigChange" - type: "ImageChange" imageChangeParams: automatic: true containerNames: - "vipinopenshifttest" from: kind: "ImageStreamTag" name: "mongoDB:latest" strategy: type: "Rolling"
В приведенном выше файле Deploymentconfig у нас есть стратегия Rolling.
Мы можем использовать следующую команду OC для развертывания.
$ oc deploy <deployment_config> --latest
Скользящая стратегия
Скользящая стратегия используется для непрерывного обновления или развертывания. Этот процесс также поддерживает хуки жизненного цикла, которые используются для внедрения кода в любой процесс развертывания.
strategy: type: Rolling rollingParams: timeoutSeconds: <time in seconds> maxSurge: "<definition in %>" maxUnavailable: "<Defintion in %>" pre: {} post: {}
Воссоздать Стратегию
Эта стратегия развертывания имеет некоторые основные функции стратегии развертывания и поддерживает ловушку жизненного цикла.
strategy: type: Recreate recreateParams: pre: {} mid: {} post: {}
Индивидуальная стратегия
Это очень полезно, когда кто-то хочет предоставить свой собственный процесс или процесс развертывания. Все настройки могут быть сделаны согласно требованию.