Учебники

OpenShift — масштабирование приложения

Автоматическое масштабирование — это функция в 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: {}

Индивидуальная стратегия

Это очень полезно, когда кто-то хочет предоставить свой собственный процесс или процесс развертывания. Все настройки могут быть сделаны согласно требованию.