2.14. アドミッションフェアーシェアリング
アドミッションフェアーシェアリングを使用して、単一のClusterQueueを共有するローカルキュー間でワークロードを公平に分散します。
歴史的にリソース使用量の少ないローカルキューからのワークロードを優先することで、ワークロードの許容量のバランスを取ることができます。アドミッションフェアーシェアリングを使用すると、設定可能な減衰関数を使用して時間の経過に伴う使用量を追跡し、ワークロードが許可されたときにアドミッションペナルティを適用できます。
複数のテナントが 1 つの ClusterQueue を共有する場合、一部のテナントがリソース不足のリスクがあります。Admission Fair Sharing は、次の要件を満たすことでこの問題に対応します。
- マルチテナントフェアネスの適用 (ビジネスクリティカル)
- 使用履歴に基づいて、すべてのテナントにクラスターリソースを公平に分散します。
- サービスの予測可能性の向上
- 各テナントがリソースの一貫したシェアを確保して、レイテンシーの急増を抑え、リソース不足を防ぎます。
- スケーラブルなガバナンスの実現
- テナントの需要の変化に適応する動的な使用量ベースのアドミッション順序付けにより、静的クォータを補完します。
2.14.1. アドミッションフェアー共有用の Red Hat build of Kueue インスタンスの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of Kueue アドミッションフェアーシェアリングは、デフォルトまたはカスタム設定のいずれかを使用して設定します。
手順
使用する
設定タイプを選択します。-
デフォルト: 定義済みの値を使用します。 -
カスタム: 指定した値を使用します。
-
選択した設定を適用します。
次のコマンドを使用して、
デフォルト設定を作成します。$ oc patch kueue.kueue.openshift.io/cluster --type=merge -p \ '{"spec":{"config":{"admissionFairSharing":{"configuration":"Default","custom":null}}}}'Kueue インスタンスの出力例
config: admissionFairSharing: configuration: Default次のコマンドを使用して、指定した値を適用
するカスタム設定を作成します。$ oc patch kueue.kueue.openshift.io/cluster --type=merge -p \ '{"spec":{"config":{"admissionFairSharing":{"configuration":"Custom","custom":{"usageHalfLifeTimeSeconds":10,"usageSamplingIntervalSeconds":10,"resourceWeights":[{"name":"cpu","weight":"2.0"}]}}}}}'Kueue インスタンスの出力例
config: admissionFairSharing: configuration: Custom custom: resourceWeights: - name: cpu weight: "2.0" usageHalfLifeTimeSeconds: 10 usageSamplingIntervalSeconds: 10resourceWeights- リソースに重みを割り当てます。重みが大きいほど、ペナルティも高くなります。
usageHalfLifeTimeSeconds- 現在の使用量が半分になるまでの時間 (秒単位)。つまり、過去の消費が将来の入学に影響する期間を制御します。
usageSamplingIntervalSeconds-
Red Hat build of Kueue が
FairSharingStatusコンポーネントのconsumedResourcesコンポーネントを更新する頻度 (秒単位)。
2.14.1.1. リソースの重みを設定する リンクのコピーリンクがクリップボードにコピーされました!
メモリーなどのバイト単位で測定されるリソースには、スケールダウンされたresourceWeights値が必要です。Kubernetes はメモリーをバイト単位で表し、CPU コアの数の数十億倍の値を作成します。
この数値の違いにより、メモリーの重み付けをスケールダウンしない限り、CPU の重み付けは無効になります。この調整を行わないと、これらのリソースの raw バイト値が CPU コアなどのヒューマンスケールのリソースを数桁占有し、重み付けが事実上無意味になります。
たとえば、有効なメモリーウェイトを 1.0 にする場合は、代わりに 1.0 / 1,073,741,824 に対応する 9.31e-10 を指定する必要があります。