12.4 Horizontal Pod Autoscalerのデプロイ
次のステップでは、Horizontal Pod Autoscaler (HPA)を構成および実行して、CPUまたはメモリー使用率のリソース・メトリックに基づいてOracle Unified Directory (OUD)をスケーリングする方法を示します。
「Oracle Unified Directoryインスタンスの作成」のOUD構成の例を想定すると、デフォルトで3つのOUDサーバー(oud-ds-rs-0
、oud-ds-rs-1
、oud-ds-rs-2
)が起動されます。
次の例では、StatefulSet oud-ds-rs
をターゲットとするHPAリソースが作成されます。このリソースは、少なくとも3つのOUDサーバーから最大5つのOUDサーバーまで、OUDサーバーを自動スケーリングします。スケール・アップは、平均CPUが常に70%を超えている場合に行われます。スケール・ダウンは、平均CPUが常に70%を下回っている場合に行われます。
- OUDで使用されるStatefulSetを検索します:
例:kubectl get statefulset -n <namespace>
出力は次のようになります:kubectl get statefulset -n oudns
NAME READY AGE oud-ds-rs 3/3 23h
$WORKDIR/kubernetes/hpa
に移動し、次を含むautoscalehpa.yaml
ファイルを作成します:
説明:# apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: oud-sts-hpa namespace: oudns spec: scaleTargetRef: apiVersion: apps/v1 kind: StatefulSet name: oud-ds-rs #statefulset name of oud behavior: scaleDown: stabilizationWindowSeconds: 60 scaleUp: stabilizationWindowSeconds: 60 minReplicas: 3 maxReplicas: 5 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 70
oud-ds-rs
は、前に返されたStatefulSetですminReplicas
は、デフォルトで起動されるOUDサーバーの数と一致する必要があります。maxReplicas
は、HPAで起動できるOUDサーバーの最大数に設定する必要があります。
ノート:
メモリー・メトリックに基づいてHPAを設定するには、次の内容でメトリック・ブロックを更新します。Oracleでは、CPUとメモリーの両方ではなく一方のみを使用することをお薦めします:metrics: - type: Resource resource: name: memory target: type: Utilization averageUtilization: 70
- 次のコマンドを実行して、オートスケーラを作成します:
出力は次のようになります:kubectl apply -f autoscalehpa.yaml
horizontalpodautoscaler.autoscaling/oud-sts-hpa created
- 次を実行して、オートスケーラのステータスを確認します:
出力は次のようになります:kubectl get hpa -n oudns
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE oud-sts-hpa StatefulSet/oud-ds-rs 5%/70% 3 5 3 33s