重要
このページの設定は、 Kubernetes Operator の下で自己管理型配置のKubernetesへの移行をサポートするために存在します。移行 を伴う なしでKubernetesに直接配置する MongoDBリソースにはこれらを設定 しないでください 。
MongoDBこのページでは、自己管理型、仮想マシン配置からKubernetesへの移行中にのみ適用される リソースフィールド、ステータス条件、注釈が記載されています。MongoDB リソース設定の完全なセットについては、 「 MongoDB Database リソース仕様 」を参照してください。
外部ノード
これらのフィールドは、移行がKubernetesに拡張されるソース仮想マシンまたは必要最低限のプロセスを識別します。これらは MongoDBリソース、apiVersion: mongodb.com/v1 に適用されます。
重要
これらのフィールドは移行のためだけに存在します。 Kubernetes配置のMongoDBリソースではこれらを設定しないでください。
spec.externalMembersType: array of
ExternalMemberobjects移行の一部である仮想マシンまたは必要最低限のソース プロセス。このフィールドは、移行のためだけに存在します。
このリストからエントリを削除することもできますが、移行が開始された後はエントリを 追加しない でください。空の
spec.externalMembersリストは、移行が完了したことを意味します。
spec.externalMembers[].processName型: string
必須
このフィールドは、移行のためだけに存在します。オートメーション構成の
processes配列に表示される正確なプロセス名。
spec.externalMembers[].hostname型: string
必須
このフィールドは、移行のためだけに存在します。オートメーション構成に表示される、プロセスの
host:port値。
名前の上書き
これらのフィールドは移行専用に存在し、 Kubernetes Operator が使用または生成するリソースまたはオートメーション構成名を上書きします。
spec.replicaSetNameOverride型: string
このフィールドは、移行のためだけに存在します。 Kubernetesリソース名と異なる場合、またはオートメーション構成レプリカセット名が有効なKubernetes名でない場合の、オートメーション構成レプリカセット名。
kubectl mongodb migrate-to-mckプラグインは、--resource-name-overrideフラグを通じてこのフィールドを設定します。
spec.configServerNameOverride型: string
このフィールドは、移行のためだけに存在します。オートメーション構成に表示されるコンフィギュレーションサーバーのレプリカセット名。
spec.shardNameOverridesType: array of
ShardNameOverrideobjectsこのフィールドは、移行のためだけに存在します。シャードごとのオートメーション構成のレプリカセット名とシャード
_id。注意
spec.shardNameOverridesspec.shardOverridesとspec.shardOverridesを混同しないでください。 はシャードごとのリソース設定を構成するため、移行の名前付けとは無関係です。Kubernetes
StatefulSet名は、これらのオーバーライドの影響を受けません。
構成可能なオートメーション コンフィギュレーション パス
Kubernetes Operator では、以前はこれらのオートメーション構成設定がハードコードされていました。移行には、 Kubernetes の配置がソース仮想マシンですでに使用されているパスと一致するように、これらが構成可能である必要があります。
spec.downloadBase型: string
デフォルト:
/var/lib/mongodb-mms-automationMongoDB Agent がエージェントのバイナリをダウンロードするディレクトリ。 Kubernetes Operator は、この設定からキーファイル パスを
<downloadBase>/keyfileとして生成します。
spec.security.tls.caFilePath型: string
デフォルト:
/mongodb-automation/tls/ca/ca-pemKubernetes Operator が ポッド内に CA 証明書をプロジェクションする絶対パス。このパスには、少なくとも 2 つのパス セグメントが含まれている必要があります。アプリケーション データベースではサポートされていません。
注意
ポッド テンプレートがこのパス以上にボリュームをマウントしている場合、そのマウントはプロジェクションされた CAファイルをシャドウできます。カスタム値を設定する前に、
podTemplateボリューム マウントを確認してください。
spec.security.authentication.agents.autoPEMKeyFilePath型: string
データベースポッド内のMongoDB Agent の結合された PEMファイルの絶対パス。このフィールドを設定すると、MongoDB Ops Manager またはCloud Manager
tls.autoPEMKeyFilePathの 値が設定され、そのパスにspec.security.authentication.agents.clientCertificateSecretRefが参照するシークレットがマウントされます。spec.security.authentication.agents.clientCertificateSecretRefが必要です。Kubernetes Operator が非移行配置に使用するハッシュ生成エージェント証明書マウント パスにデフォルト設定されます。
ステータス条件
status.conditionsType: array of Kubernetes Conditions
標準のKubernetes条件(キーは
type)。このフィールドはMongoDBリソースの新機能であり、移行 をサポートしています。
status.conditions[type=Migrating]タイプ: Kubernetes条件
移行がアクティブかどうかの最上位インジケーター。
statusはTruespec.externalMembersですが、FalseMigrationCompleteは空でないため、最後の外部ノードを削除すると理由 により に変わります。理由ステータス意味ValidatingTrueドライバーによる注釈が設定されています。
ExtendingTrue目的のKubernetesノード数が最後に調整された数を超えています。
PruningTrueexternalMembersのカウントはstatus.migrationObservedExternalMembersCountを下回りました。InProgressTrue外部メンバーは存在しますが、変更はありません。これは、最初の調整の理由でもあります。
MigrationCompleteFalseすべての外部メンバーが削除されました。
優先順位は
Validating> です。Extending>Pruning>InProgress。 Kubernetesサイドも生成するプルーニングがExtendingと報告する同時にプルーニングと拡張は許可されていません。
移行完了をスクリプトするには、
status.phaseをポーリングするのではなくkubectl wait --for=condition=Migrating=Falseを使用します。
status.conditions[type=NetworkConnectivityVerified]Type: Kubernetes condition
ドライバーで実行された接続チェックの結果。外部ノードがなくなると、 Kubernetes Operator はこの条件を
status.conditionsから完全に削除します。バリデータージョブ終了コード状態理由意味ジョブはまだ実行中
UnknownRunningstatus.phaseはConnectivityCheckRunningです。0TrueNetworkValidationPassedすべての外部ノードはアクセス可能であり、認証されます。
2FalseAuthenticationFailed認証情報、認証メカニズム、または欠落している
__system@localロール。3FalseNetworkFailedDNS、TLS、タイムアウト、または到達不能なノード。ジョブ ポッド ログを確認します。
1またはその他FalseUnknownErrorクラス化されていない障害。ジョブ ポッド ログを確認します。
ジョブが開始される前に発生する失敗には、
OperatorImageUnknown、BuildStatefulSetOptions、AgentCertSecretFailed、AgentCertSubjectという理由が使用されます。Kubernetes Operator は、外部ノードがなくなると、
status.conditionsからNetworkConnectivityVerified条件を完全に削除します。
status.migrationObservedExternalMembersCountタイプ: 整数
spec.externalMembersKubernetes Operator が前回の調整時に監視した エントリの数。 Kubernetes Operator は、次回の調整時にこの値を現在のspec.externalMembersカウントと比較して、外部ノードをプルしたことを検出します。このフィールドは、外部ノードが存在しない場合、設定されません。注意
このフィールドは、 Go構造体埋め込みの副作用として、
MongoDBOpsManagerカスタムリソーススキーマにも表示されます。MongoDBOpsManagerリソースでは、フィールドは常に null です。その場合は無視します。
注釈
移行固有の注意が必要な関連フィールド
次の既存の MongoDBリソースフィールドは移行専用ではありませんが、移行中に特定の値または確認が必要です。
spec.members、spec.mongodsPerShardCount、 、spec.configServerCountはすべて、spec.mongosCount0kubectl mongodb migrate-to-mckプラグインが生成するリソースの から開始されます。spec.memberConfig[].votes(整数、デフォルトでは1)とspec.memberConfig[].priority(浮動小数点数を含む string、デフォルトでは"1")。少なくとも と同じ数の エントリを提供する必要があります。spec.memberConfigspec.membersKubernetes Operatorspec.memberConfigは、シャーディングされたクラスターの最上位の を無視します。 プラグインはkubectl mongodb migrate-to-mckspec.memberConfigを生成せず、 Kubernetes Operator は新しいノードをデフォルトで非投票にしないため、新しいノードの同期中は CRD のデフォルトである と1"1"は完全にエラーとなります。警告
ノード数を増やす前にspec.memberConfigを設定する
デフォルトでは、新しいKubernetesノードは投票ノードとして参加します。 CRD のデフォルトは
votes: 1とpriority: "1"です。これでは、まだ同期中のノードが最初の同期 を完了する前に選挙に参加することができます。MongoDB、ノード数を増加させる前に、新しいKubernetesノードごとに 1
spec.memberConfigつのvotes: 0priority: "0"エントリを書込むことを推奨します。これにより、同期中のノードは選挙で選出されなくなります。votesは整数です。priorityは string です。spec.versionソース配置と完全に一致する必要があるフィールドは、 、 、spec.featureCompatibilityVersion、spec.additionalMongodConfig.net.portspec.security.authentication.modes、spec.security.authentication.internalClusterです。