Openshift-application-scaling

提供:Dev Guides
移動先:案内検索

OpenShift-アプリケーションのスケーリング

自動スケーリングはOpenShiftの機能であり、デプロイされたアプリケーションは特定の仕様に従って必要に応じてスケーリングおよびシンクできます。 OpenShiftアプリケーションでは、自動スケーリングはポッド自動スケーリングとも呼ばれます。 次のように、アプリケーションのスケーリングには2つのタイプがあります。

垂直スケーリング

垂直スケーリングとは、単一のマシンにますます多くの電力を追加することです。つまり、CPUとハードディスクを追加することです。 これはOpenShiftの古い方法であり、現在OpenShiftリリースではサポートされていません。

水平スケーリング

このタイプのスケーリングは、マシンの数を増やしてより多くの要求を処理する必要がある場合に役立ちます。

OpenShiftには、スケーリング機能を有効にする* 2つの方法があります。

  • 展開構成ファイルを使用する
  • イメージの実行中

展開構成ファイルの使用

この方法では、deploymant設定yamlファイルを介してスケーリング機能が有効になります。 このため、OC autoscaleコマンドは、クラスター内の任意の時点で実行する必要があるレプリカの最小数と最大数で使用されます。 オートスケーラーを作成するには、オブジェクト定義が必要です。 以下は、ポッドオートスケーラー定義ファイルの例です。

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

イメージの実行中

ocコマンドラインで次の oc autoscale コマンドを使用することにより、yamlファイルなしで自動スケーリングすることもできます。

$ 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ファイルには、ローリングという戦略があります。

次の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: {}

カスタム戦略

これは、独自の展開プロセスまたはフローを提供する場合に非常に役立ちます。 すべてのカスタマイズは、要件に従って実行できます。

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