テンセントクバネティスエンジン(Tencent Kubernetes Engine、TKE)はクラスターとサービスという2レベルのAuto Scaling機能を提供し、サービスの実行状況によって、コンテナのCPU、メモリ、帯域幅などの指標を監視してAuto Scalingサービスを行います。また、次の図に示すように、コンテナのデプロイ状況により、コンテナのリソースアサインが不足、あるいは余裕がある場合に自動でクラスターをスケーリングすることができます:
クラスターのオートスケーリング特徴
TKEでは、コンピューティングリソースの効率的な管理のため、クラスターのオートスケーリングを有効にすることができます。これにより、ユーザーは、業務に応じてスケーラビリティポリシーを設定できます。クラスターのスケーラビリティポリシーには、次のような特徴があります:
CVM(Cloud Virtual Machine)を、業務の負荷に応じて動的かつリアルタイムに自動的に作成および解放し、最適なインスタンス数で業務に対応できるようにします。全過程に人の介入が不要で、ユーザーの人の手によるデプロイの負担がなくなります。
ユーザーが業務に最適なノードリソースを使用できるように支援します。業務ニーズが増加した場合は、コンテナクラスターに適切な量のCVMをシームレスに自動的にユーザに追加することができます。業務ニーズが減少した場合は、不要なCVMを自動的に削減し、デバイスの使用率を向上させ、導入コストとインスタンスコストを削減します。
クラスターオートスケーリング機能説明
Kubernetes cluster autoscaling基本機能
マルチスケーリンググループの設定をサポートします。
TKEスケーリンググループ拡張機能
新しいモデルのスケーリンググループの新規作成をサポートします(推奨)。
クラスター内のノードからテンプレートとしてスケーリンググループを新規作成できます。
スポットインスタンスのスケーリンググループをサポートしています(推奨)。
対応モデルが売り切れた場合は自動的に適切なスケーリンググループを適合させます。
アベイラビリティーゾーン間のスケーラグループの設定をサポートします。
クラスターオートスケーリング制限
クラスターオートスケーリングの拡張可能なノード数は、プライベートネットワーク、コンテナネットワーク、TKEクラスターノードのクォータ、および購入可能なCVMのクォータによって制限されます。
拡張ノードは、モデルの現在の販売状況によって制限されます。モデルが売り切れになった場合は、ノードを拡張できないため、複数のスケーラグループを構成することをお勧めします。
ワークロードにおけるコンテナのrequest値を設定してください。自動拡張のトリガーはクラスター内にリソース不足のためにスケジューリングできないPodが存在することであり、リソースが十分かどうかの判断はPodのrequestに基づいて行われます。
監視メトリックに基づくノードのオートスケーリングを有効にしないことをお勧めします。
スケーラグループを削除すると、スケーラグループ内のCVMも破棄されますので、十分注意してください。
クラスタースケーラグループの構成
マルチスケーラグループ構成(推奨)
クラスターに複数のスケーラグループが存在する場合は、自動拡張圧縮コンポーネントは、選択した拡張アルゴリズムに従ってスケーラグループを選択して拡張します。一度に1つのスケーラグループを選択します。ターゲットのスケーラグループが売り切れなどの理由で拡張に失敗した場合は、一定期間スリープ状態にします。同時に二番目にマッチしたスケーラグループを再選択して拡張するようにトリガーします。
ランダム:拡張するスケーラグループをランダムに選択します。
Most-pods:現在pendingしているPodとスケーラグループのモデルに応じて、より多くのPodをスケジューリングできるスケーラグループを選択して、拡張を実行します。
Least-waste:現在pendingしているPodとスケーラグループのモデルに応じて、Podスケジューリング後のリソース残量がより少ないスケーラグループを選択して拡張を実行します。
特定のモデルが売り切れにならないように、クラスター内に複数の異なるモデルのスケーラグループを構成することをお勧めします。入札モデルと通常モデルを併用してコストを削減できます。
クラスターのシングルスケーラブルグループ構成
クラスターの拡張モデルとしてシングルモデルのみを受け入れる場合は、複数のサブネットの複数の異なるアベイラビリティーゾーンにスケーラグループを構成することをお勧めします。