3.4. 既知の制限
Red Hat build of Keycloak アップグレードのロールアウト中のダウンタイム
この問題は、パッチリリースの場合、ローリング更新が可能かどうかを確認 する機能を有効にすることで解消できます。
-
複数のノード障害が発生した際に、ノード障害の件数が、キャッシュに設定された
num_owners(デフォルトでは 2) 以上の場合、authenticationSessions、loginFailures、およびactionTokensキャッシュからのエントリーが失われる可能性があります。 whenUnsatisfiable: ScheduleAnywayが指定されたデフォルトのtopologySpreadConstraintsを使用するデプロイメントでは、障害が発生したノード/ゾーンに複数の Pod がスケジュールされている場合、ノード/アベイラビリティーゾーンの障害時にデータ損失が発生する可能性があります。ユーザーは、
topologySpreadConstraintsにwhenUnsatisfiable: DoNotScheduleを定義して、常にゾーンおよびノード全体に Pod を均等にスケジュールさせることで、この状況を緩和できます。ただし、この制約を満たすことができない場合、一部の Red Hat build of Keycloak インスタンスがデプロイされない可能性があります。Infinispan はキャッシュエントリーを配布するときにネットワークトポロジーを認識しません。そのため、キャッシュされたデータの
num_owner個のコピーが、すべて障害が発生したノード/ゾーンに保存されている場合、ノード/アベイラビリティーゾーンの障害時にデータ損失が発生する可能性があります。ノードおよびアベイラビリティーゾーンに対してrequiredDuringSchedulingIgnoredDuringExecutionを定義することで、利用可能なノードまたはゾーンの数に応じて、Red Hat build of Keycloak インスタンスの合計数を制限できます。ただし、プロビジョニングできる Red Hat build of Keycloak インスタンスの数が、{kubernetes} クラスター内のノード/アベイラビリティーゾーンの数に制限されるため、スケーラビリティーが犠牲になります。カスタムのアンチアフィニティー
topologySpreadConstraintsポリシーを設定する方法は、Operator の 高度な設定 の詳細を参照してください。-
Operator は Pod 内でサイトの名前 (分散キャッシュの設定 を参照) を設定しません。サイトの名前は、Downward API 経由では取得できないためです。マシン名オプションは、Pod がスケジュールされるノードの
spec.nodeNameを使用して設定されます。