Openshift-application-scaling
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