Oracle Database Operator for Kubernetes
Oracle Database Operator for Kubernetesクラスタ・アドオンを有効にすると、次のキー/値のペアを引数として渡すことができます。
Oracle Database Operatorをクラスタ・アドオンとして使用するには、cert-managerもデプロイする必要があります(スタンドアロン製品またはクラスタ・アドオンのいずれか)。スタンドアロン製品としてcert-managerをデプロイする場合は、skipAddonDependenciesCheck構成引数をtrueに設定します。
| キー(APIおよびCLI) | キーの表示名(コンソール) | 説明 | 必須/オプション | デフォルト値 | 値の例 |
|---|---|---|---|---|---|
affinity |
affinity |
アフィニティ・スケジューリング・ルールのグループ。 プレーン・テキストまたはエンコードされたBase64のJSON形式。 未使用者:
可能な等価:
|
オプション | null | null |
nodeSelectors |
ノード・セレクター |
ノード・セレクタおよびノード・ラベルを使用して、アドオン・ポッドが実行されるワーカー・ノードを制御できます。 ポッドをノードで実行するには、ポッドのノード・セレクタのキー/値がノードのラベルと同じである必要があります。
プレーン・テキストまたはエンコードされたBase64のJSON形式。 未使用者:
可能な等価:
|
オプション | null | {"foo":"bar", "foo2": "bar2"}ポッドは、 |
numOfReplicas |
numOfReplicas | アドオン配備の複製の数。 未使用者:
可能な等価:
|
必須 | 1クラスタごとにアドオン・デプロイメントのレプリカを1つ作成します。 |
2クラスタごとにアドオン・デプロイメントの2つのレプリカを作成します。 |
rollingUpdate |
rollingUpdate |
maxSurgeおよびmaxUnavailableによるローリング更新の望ましい動作を制御します。 プレーン・テキストまたはエンコードされたBase64のJSON形式。 未使用者:
可能な等価:
|
オプション | null | null |
tolerations |
許容範囲 |
テイントおよび許容範囲を使用して、アドオン・ポッドが実行されるワーカー・ノードを制御できます。 taintがあるノード上でポッドを実行するには、ポッドに対応する許容範囲が必要です。
プレーン・テキストまたはエンコードされたBase64のJSON形式。 可能な等価:
|
オプション | null | [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]この許容範囲を持つポッドのみが、 |
topologySpreadConstraints |
topologySpreadConstraints |
指定されたトポロジ間で一致するポッドを分散する方法。 プレーン・テキストまたはエンコードされたBase64のJSON形式。 未使用者:
|
オプション | null | null |
| キー(APIおよびCLI) | キーの表示名(コンソール) | 説明 | 必須/オプション | デフォルト値 | 値の例 |
|---|---|---|---|---|---|
manager.ContainerResources
|
マネージャ・コンテナ・リソース |
アドオン・コンテナが要求するリソース数量を指定し、アドオン・コンテナが超過できないリソース使用量制限を設定できます。 プレーン・テキストまたはエンコードされたBase64のJSON形式。 |
オプション | null |
{"limits": {"cpu": "500m", "memory": "200Mi" }, "requests": {"cpu": "100m", "memory": "100Mi"}}
100ミリコアのCPUと100メビバイトのメモリーをリクエストするアドオン・コンテナを作成します。アドオンコンテナを500MバイトのCPUおよび200Mバイトのメモリーに制限します。 |
skipAddonDependenciesCheck
|
skipAddonDependenciesCheck | 他の必要なアドオンがデプロイされているかどうか(cert-managerアドオンなど)。 | オプション | null |
true
|
次の表に、大規模クラスタでこのクラスタ・アドオンを構成する際の考慮事項を示します。
| 引数名 | ロールWRTノード数 | 説明 | クラスタ・サイズが増加するにつれて | リスク | 推奨事項 |
|---|---|---|---|---|---|
manager.ContainerResources
|
あり |
オペレータ・ポッドのCPUおよびメモリのリクエストと制限を定義します。 |
クラスタ・サイズが増加すると、オペレータは次のことを経験します。
|
リソースのサイズが小さい場合:
|
大規模なクラスタで追加の負荷を処理するために十分なメモリーとCPUを割り当てます。クラスタ・サイズが大きくなるとインフォーマ・キャッシュが大きくなるため、メモリーのサイズ設定に特に注意してください。 |
numOfReplicas
|
なし |
デプロイされたオペレータ・ポッドの数を制御します。 |
レプリカを追加すると、リーダーの選択によってフォルト・トレランスとフェイルオーバーが向上します。 コントローラのアクティブなリーダーとして機能するポッドは1つだけです。その他のレプリカはスタンバイに残り、リーダーに障害が発生した場合にのみ引き継ぎます。 スタンバイレプリカでは同じコントローラのリコンシリエーションループが処理されないため、レプリカの数を増やすと、リコンシリエーションスループットの線形スケーリングは行われません。 |
レプリカ数が少ないと、オペレータのダウンタイムのリスクが高まり、障害後のリカバリが遅くなります。 |
高可用性を実現するには、中程度の数のレプリカ(3から5など)を使用します。リコンシリエーション・パフォーマンスを向上させるためにレプリカの数を増やさないでください。 |
affinity / nodeSelectors / tolerations
|
なし |
オペレータ・ポッドがクラスタ内でスケジュールされる場所を制御します。 |
適切なポッド配置:
|
正しく設定されていない場合、Oracle Database Operatorが間違ったノードに配置されたり、スケジュールに失敗したりすると、リコンシリエーションの遅延やパフォーマンスの不安定化につながる可能性があります。 |
これらの引数を使用して、専用インフラストラクチャ・ノードでオペレータ・ポッドをスケジュールします。ポッド・アンチアフィニティ・ルールを必要に応じて適用して、レジリエンスを向上させます。 |
rollingUpdate
|
なし |
オペレータのデプロイメント更新戦略を制御します。 |
大規模クラスタでのアップグレード時には、ローリング更新戦略は次のようになります。
|
適切に構成されていない場合、アップグレードによって一度に多数のOracle Database Operatorポッドが一時的に停止され、リコンシリエーションの遅延やフェイルオーバーの安全性の損失が発生する可能性があります。 |
クラスタ操作を中断せずにアップグレードを完了できるように、 |
topologySpreadConstraints
|
なし |
オペレータ・レプリカがノードおよび可用性ドメイン間でどのように分散されるかを制御します。 |
レプリカを分散すると、すべてのオペレータ・ポッドが同じノードまたは同じ可用性ドメインで実行されなくなり、ノードまたは可用性ドメイン障害の影響が軽減されます。 |
正しく構成されていない場合、オペレータ・ポッドは同じノードまたは同じ可用性ゾーンでスケジュールされる可能性があり、ノードまたはゾーンの障害時に複数のレプリカが失われるリスクが高くなります。 |
大規模クラスタで高可用性を実現するには、トポロジ分散制約を使用します。 |