OpenShift - Dimensionamento de aplicativos

O escalonamento automático é um recurso do OpenShift em que os aplicativos implantados podem ser escalonados e afundados conforme e quando necessário de acordo com certas especificações. No aplicativo OpenShift, o escalonamento automático também é conhecido como escalonamento automático de pod. São doistypes of application scaling do seguinte modo.

Dimensionamento Vertical

A escala vertical tem tudo a ver com adicionar mais e mais energia a uma única máquina, o que significa adicionar mais CPU e disco rígido. O é um método antigo de OpenShift que agora não é suportado por versões do OpenShift.

Dimensionamento Horizontal

Este tipo de escalonamento é útil quando há necessidade de lidar com mais solicitações, aumentando o número de máquinas.

No OpenShift, existem two methods to enable the scaling feature.

  • Usando o arquivo de configuração de implantação
  • Durante a execução da imagem

Usando o arquivo de configuração de implantação

Neste método, o recurso de dimensionamento é ativado por meio de um arquivo yaml de configuração de deploymant. Para isso, o comando OC autoscale é usado com um número mínimo e máximo de réplicas, que precisam ser executadas em qualquer ponto do tempo no cluster. Precisamos de uma definição de objeto para a criação do autoescalador. A seguir está um exemplo de arquivo de definição do autoescalador de pod.

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

Assim que tivermos o arquivo no lugar, precisamos salvá-lo com o formato yaml e executar o seguinte comando para implantação.

$ oc create –f <file name>.yaml

Durante a execução da imagem

Também é possível escalonar automaticamente sem o arquivo yaml, usando o seguinte oc autoscale comando na linha de comando oc.

$ oc autoscale dc/database --min 1 --max 5 --cpu-percent = 75
deploymentconfig "database" autoscaled

Este comando também irá gerar um tipo de arquivo semelhante que pode ser usado posteriormente como referência.

Estratégias de implantação em OpenShift

A estratégia de implantação no OpenShift define um fluxo de implantação com diferentes métodos disponíveis. No OpenShift, a seguir estão osimportant types of deployment strategies.

  • Estratégia de rolamento
  • Estratégia de recriação
  • Estratégia personalizada

A seguir está um exemplo de arquivo de configuração de implantação, que é usado principalmente para implantação em nós 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"

No arquivo Deploymentconfig acima, temos a estratégia como Rolling.

Podemos usar o seguinte comando OC para implantação.

$ oc deploy <deployment_config> --latest

Estratégia de Rolling

A estratégia contínua é usada para atualizações contínuas ou implantação. Esse processo também oferece suporte a ganchos de ciclo de vida, que são usados ​​para injetar código em qualquer processo de implantação.

strategy:
   type: Rolling
   rollingParams:
      timeoutSeconds: <time in seconds>
      maxSurge: "<definition in %>"
      maxUnavailable: "<Defintion in %>"
      pre: {}
      post: {}

Estratégia de Recriação

Essa estratégia de implantação tem alguns dos recursos básicos da estratégia de implantação contínua e também oferece suporte ao gancho do ciclo de vida.

strategy:
   type: Recreate
   recreateParams:
      pre: {}
      mid: {}
      post: {}

Estratégia Personalizada

Isso é muito útil quando se deseja fornecer seu próprio processo ou fluxo de implantação. Todas as personalizações podem ser feitas de acordo com o requisito.

strategy:
   type: Custom
   customParams:
      image: organization/mongoDB
      command: [ "ls -l", "$HOME" ]
      environment:
         - name: VipinOpenshiftteat
         value: Dev1