この手順では、 Ops Manager またはCloud Managerが管理するシャーディングされたクラスターをKubernetes Operator の下のKubernetesに移行します。これは、 レプリカセットをKubernetesに移行する と同じライブのインクリメンタル 拡張プロモート プルーニング ワークフローを使用します。このページで説明されている違いを適用して、その手順に従います。このページではステップについて説明していない場合、レプリカセット の手順と同じように機能します。
重要
埋め込まれたコンフィギュレーションサーバーを持つシャーディングされたクラスターはサポートされていません。 Kubernetes Operator はこのトポロジーを検出し、インポートを拒否します。
外部ノードはすべてのコンポーネントをカバーする
spec.externalMembersmongodmongodシャーディングされたクラスターの場合、mongos はすべてのプロセスをカバーする単一の平面リストです。コンフィギュレーションサーバー 、各シャードの 、 ルーター。すべてのエントリは を設定し、すべてのspec.externalMembers[].type mongodエントリもspec.externalMembers[].replicaSetName を設定して、プロセスがコンフィギュレーションサーバーのレプリカセットに属するか、特定のシャードのレプリカセットに属するか識別します。完全なフィールド参照については、 「 MongoDB移行リソース設定 」を参照してください。
名前を上書きするとオートメーション構成名が保持されます
kubectl mongodb migrate-to-mckプラグインインは spec.configServerNameOverride と spec.shardNameOverrides を設定するため、 Kubernetes Operator は新しいコンフィギュレーションサーバーとシャードレプリカセットを拡張します。また、プラグインは Kubernetes 側のノード数も 0 に設定します。
均等に拡張またはシャードごとに拡張
シャーディングされたクラスターは、次の 2 つの方法でKubernetesに拡張できます。
均等に、コンポーネントごとのカウント
spec.mongodsPerShardCount、spec.configServerCount、spec.mongosCountを引き上げます。すべてのシャードが同じ数のKubernetesノードを受け取る場合は、これを使用します。シャードごとに、シャードを名前付けし、そのノード数を直接または で設定する
spec.shardOverridesclusterSpecList[]エントリを使用します。これは、シャードのサイズが異なる場合、シャードをシャードごとに移行する場合、またはシャードに独自のノード 配置が必要な場合に使用します。注意
spec.shardOverrides[].memberConfigエントリの最上位にある は無視されます。ネストされたspec.shardOverrides[].clusterSpecList[].memberConfigが適用されるドキュメントです。spec.shardOverrides(シャードごとの構成)とspec.shardNameOverrides(オートメーション構成レプリカセットの名前付け)とを混同しないでください。これら 2 つの設定は無関係です。
レプリカセットの手順と同様に、カウントを増加させる前に、関連するコンポーネント上のすべての新しいKubernetesノードに対して memberConfig を手動で記述します。
警告
ノード数を増やす前にspec.memberConfigを設定する
デフォルトでは、新しいKubernetesノードは投票ノードとして参加します。 CRD のデフォルトは votes: 1 と priority: "1" です。これでは、まだ同期中のノードが最初の同期 を完了する前に選挙に参加することができます。
MongoDB、ノード数を増加させる前に、新しいKubernetesノードごとに 1spec.memberConfig つのvotes: 0 priority: "0"エントリを書込むことを推奨します。これにより、同期中のノードは選挙で選出されなくなります。votes は整数です。priority は string です。
コンポーネントあたりの TLS 証明書
それぞれの命名パターンを使用して、コンポーネントごとに 1 つの証明書を発行します。コンフィギュレーションサーバーには <name>-config-*、各シャードには <name>-<i>-*、mongos ルーターには <name>-mongos-* を使用します。
一度に 1 つのコンポーネントを拡張およびプルーニング
コンフィギュレーションサーバー、シャード、または mongos ルーターを拡張またはプルーニングするために、順序は必要ありません。一度に 1 つのコンポーネントのみを拡張またはプルーニングし、目的の状態を待ってから次のコンポーネントまたは次のエントリに移動します。
ステータス条件と検証
ステータス条件と理由は、すべてのコンポーネントにわたる上書き対応のノードの合計から計算された、レプリカセットの場合と同じように機能します。 kubectl wait --for=condition=Migrating=False はシャーディングされたクラスターの移行で有効です。
シャード ノードではなく、mongos ポッドを介して移行を確認します。