MongoDB Controls for Kubernetes Operator は、 Kubernetes ConfigMap を使用して、単一かつ一意の Ops Manager プロジェクト にリンクします。参照されたプロジェクトが存在しない場合、 Kubernetes Operator はprojectName
ConfigMap で指定された に従ってそれを作成します。
Kubernetes Operator ConfigMap を作成するには、例ConfigMap YAMLファイルの数行を編集し、ConfigMap を適用します。完全な例を表示するには、プロジェクトの.YAMLファイル を参照してください。
あるいは、 MongoDB Cloud Manager UIまたはMongoDB Ops Manager UIを使用してプロジェクトを作成または選択し、ConfigMap YAML ファイルを自動的に生成し、 Kubernetes環境に適用できるようにすることもできます。
Considerations
配置できる MongoDB リソースはプロジェクトごとに 1 つだけです。 この制限が適用されるのは、MongoDB Ops Manager がプロジェクトごとのデータベースユーザーのアクセスに対して 1 つの認証方法のみをサポートしているためです。 詳しくは、 「 MongoDB Database リソースの配置 」を参照してください。
MongoDB Controls for Kubernetes Operator 配置を一意のMongoDB Ops Managerプロジェクトにペアにする必要があります。配置するMongoDB Controls for Kubernetes Operatorインスタンスごとに個別の ConfigMap を作成するか、ConfigMap から
data.projectName
を省略して、プロジェクト名が配置されたリソース名と一致するようにすることで、同じ ConfigMap を任意の数の配置で再利用することができます。コンフィギュレーション マップにプロジェクト名が指定されている場合、そのプロジェクトがまだ存在しない場合は作成されます。
重要
Kubernetes演算子を使用して、MongoDB Cloud ManagerMongoDB Ops Managerおよび バージョン6.0 .x 以降で リソースを配置できます。
Atlas 演算子を使用して、MongoDB リソースを Atlas に配置できます。
前提条件
コンフィギュレーションマップを使用して 1 つのプロジェクトを作成
kubectl
をデフォルトで名前空間に設定します。
まだ作成していない場合は、次のコマンドを実行して、作成した名前空間ですべてのkubectl
コマンドを実行します。
注意
MongoDB Ops Manager リソースを複数の Kubernetes クラスター MongoDB 配置に配置している場合、次の手順に従います。
context
を中央クラスターの名前に設定します(例:kubectl config set context "$MDB_CENTRAL_CLUSTER_FULL_NAME"
。MongoDB のマルチ配置に使用したのと同じスコープ(例:
kubectl config --namespace "mongodb"
に--namespace
を設定します。
kubectl config set-context $(kubectl config current-context) --namespace=<metadata.namespace>
以下のコマンドを呼び出して ConfigMap を作成します。
cat <<EOF | kubectl apply -f - apiVersion: v1 kind: ConfigMap metadata: name: my-project namespace: mongodb data: projectName: myProjectName # this is an optional parameter; when omitted, the Operator creates a project with the resource name orgId: 5b890e0feacf0b76ff3e7183 # this is a required parameter baseUrl: https://ops.example.com:8443 EOF
キー | タイプ | 説明 | 例 |
---|---|---|---|
| string | リソース名は 44 文字以下にする必要があります。 1123この名前は、小文字の英数字文字または 詳細については、 名前 に関するKubernetes のドキュメントを参照してください。 |
|
| string |
| |
| string | MongoDB Ops Managerプロジェクトのラベル。 Kubernetes Operator は、 MongoDB Ops Managerプロジェクトが存在しない場合は、それを作成します。 または 組織で既存のプロジェクトを使用するには、Cloud Manager MongoDB Ops Manager |
|
| string | 必須。 または 組織 を一意に識別する24 文字の 16stringCloud Manager MongoDB Ops Manager進 。 Kubernetes演算子を使用して、MongoDB Cloud ManagerMongoDB Ops Managerおよび バージョン6.0 .x 以降で リソースを配置できます。 Atlas 演算子を使用して、MongoDB リソースを Atlas に配置できます。
既存の Cloud Managerまたは 組織内に新しいプロジェクトを作成するには、 組織プロジェクト作成者MongoDB Ops Manager ロールが必要です。
|
|
| string | FQDN とポート番号を含む MongoDB Ops Manager アプリケーションへの URL 。 重要: を Operator で配置し、 MongoDB Ops Managerが配置先のKubernetes クラスターのMongoDB Ops Manager MongoDB外部 に配置された データベースリソースを管理する場合、Kubernetes Cloud Manager を使用している場合は、 |
|
次のKubernetesコマンドを呼び出して、ConfigMap を確認します。
kubectl describe configmaps <configmap-name>
このコマンドは、shell に ConfigMap の説明を返します。
Name: <configmap-name> Namespace: <namespace> Labels: <none> Annotations: <none> Data ==== baseUrl: ---- <myOpsManagerURL> Events: <none>
カスタム CA を使用した HTTPS 対応のMongoDB Ops Managerへの接続
MongoDB Ops Manager インスタンスで HTTPS を有効にするために、独自の TLS 証明書を使用することを選択した場合があります。カスタム証明書を使用した場合は、そのカスタム証明書に署名した CA を Kubernetes Operator に追加する必要があります。 カスタム CA を追加するには、次の手順を実行します。
証明機関(CA)証明書の ConfigMap を作成します。
Kubernetes Operator には、Ops Manager ホストの証明書を発行した CA のルート CA 証明書が必要です。次のコマンドを実行して、データベースポッドの同じ名前空間にルート CA を含む ConfigMap を作成します。
kubectl -n <metadata.namespace> create configmap <root-ca-configmap-name> \ --from-file=mms-ca.crt
重要
Kubernetes Operator では、ConfigMap でMongoDB Ops Managerリソースの証明書 mms-ca.crt
に名前を付ける必要があります。
次の例の強調表示されたセクションをコピーしますConfigMap
。
1 2 apiVersion: v1 3 kind: ConfigMap 4 metadata: 5 name: <my-configmap> 6 namespace: <my-namespace> 7 data: 8 projectName: <my-ops-manager-project-name> # this is an optional parameter 9 orgId: <org-id> # this is a required parameter 10 baseUrl: https://<my-ops-manager-URL>
11 sslMMSCAConfigMap: <root-ca-configmap-name> 12 sslRequireValidMMSServerCertificates: ‘true’ 13 ...
TLS 設定の指定
次のTLSキーを変更します。
キー | タイプ | 説明 | 例 |
---|---|---|---|
| string | Ops Manager ホストの証明書に署名するために使用されるルート CA 証明書を含む最初のステップで作成された ConfigMap の名前。これにより、CA 証明書がKubernetes Operator とデータベースリソースにマウントされます。 |
|
| ブール値 | からの有効な TLS MongoDB Ops Manager証明書を要求するように演算子を強制します。 重要:値は一重引用符で囲む必要があります。そうしないと、 演算子はエラーをスローします。 |
|
Kubernetesコマンドを呼び出して、ConfigMap を検証します。
kubectl describe configmaps <my-configmap> -n <metadata.namespace>
重要
kubectl
名前空間オプションは常に-n
と含めてください。 オプションを指定しない場合、kubernetes はデフォルトで空の名前空間になるため、デプロイは失敗します。<metadata.namespace>
フィールドの値を指定する必要があります。 Kubernetes Operator、 secret 、およびMongoDB
リソースは、同じ 一意の名前空間で実行する必要があります。
このコマンドは、shell に ConfigMap の説明を返します。
Name: <my-configmap> Namespace: <namespace> Labels: <none> Annotations: <none> Data ==== sslMMSCAConfigMap: ---- <root-ca-configmap-name> sslRequireValidMMSServerCertificates: ---- true Events: <none>
次のステップ
ConfigMap が作成されたので、 MongoDB リソースの配置 を開始する前 に、 Kubernetes Operator の認証情報を作成 します 。