オートスケーリング¶
values.yaml
の presto.autoscaling
セクションでは、Denodo 組み込み MPP の水平オートスケーリングを構成します。水平スケーリングは、負荷の増加に対してデプロイするポッドレプリカの数を増やして対応することを意味します。負荷が減って、ポッドの数が構成されている最小数より多い場合、 HorizontalPodAutoscaler (HPA) がワークロードリソースのスケールダウンを指示します。これは、デフォルトで無効になっています。
presto:
autoscaling:
enabled: false
maxReplicas: 20
targetCPUUtilizationPercentage: 80
HorizontalPodAutoscaler
(HPA) が動作することを保証するために、以下に示す 2 つの要件 があります。
Kubernetes にメトリックを提供するための監視ツールとして、Metrics Server、Prometheus などがインストールされていること。
values.yaml
ファイルにワーカーの CPU リソース要求presto.worker.resources
が定義されていること。リソース要求が構成されていない場合、オートスケーラー (HPA) は何も実行しません。リソースはデフォルトでは構成されていません。なぜなら、その構成は、Kubernetes クラスタ管理者の選択肢として残してあるからです。たとえば、
presto.worker.resources.requests.cpu
は、ポッド用に予約されている CPU の数を表します。この値は、ワーカーあたりの総 CPU 数の 80% に設定することから始めることをお勧めします。したがって、32 コアのノードの場合、この値を 25.6 または 25600m に設定できます。これらはどちらも 25.6 個のコアを表します。
presto: worker: resources: requests: cpu: 25600mこれは後で必要に応じて調整できます。オートスケーラーは、この値を
targetCPUUtilizationPercentage
とともに使用して、新しいワーカーが必要かどうかを決定します。
動作している HorizontalPodAutoscaler
の現在のステータスは、以下の方法で確認できます。
kubectl get hpa
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS
presto-worker Deployment/presto-worker 22%/80% 2 6 2
クラスタ内のノードの動作に合わせてポッドの拡張性を調整するために、 ノードベースのオートスケーリングとポッドベースのオートスケーリングを組み合わせて使用することを強くお勧めします 。なぜなら、MPP ワーカーごとに 1 つのノードを使用することをお勧めしているからです。これにより、クラスタのオートスケーラーが、スケールアップが必要な場合は新しいノードを追加し、スケールダウンが必要な場合は不要なノードをシャットダウンすることができます。
Amazon EKS のノードベースのオートスケーリングについては、「 EKS における Denodo 組み込み MPP クラスタのオートスケーリングの構成 」を参照してください。
Azure Kubernetes Service のノードベースのオートスケーリングについては、「 AKS における Denodo 組み込み MPP クラスタのオートスケーリングの構成 」を参照してください。