ConfigMap を使用してMongoDB配置ごとに 1 つのプロジェクトを作成
項目一覧
MongoDB Enterprise Kubernetes OperatorMongoDBEnterprise Kubernetes Operator は、Kubernetes Kubernetes ConfigMap を使用して、単一かつ一意のMongoDB OpsMongoDB Ops Manager Managerプロジェクト にリンクします。参照されたプロジェクトが存在しない場合、 Kubernetes Operator は ConfigMap で指定された projectName
に従ってそれを作成します。
Kubernetes Operator ConfigMap を作成するには、サンプル ConfigMap YAMLファイルの数行を編集し、ConfigMap を適用します。 完全な例については、 project.YAML ファイル。
あるいは、 MongoDB Cloud Manager UIまたはMongoDB Ops Manager UIを使用してプロジェクトを作成または選択し、ConfigMap YAML ファイルを自動的に生成し、 Kubernetes環境に適用できるようにすることもできます。
Considerations
配置できる MongoDB リソースはプロジェクトごとに 1 つだけです。 この制限が適用されるのは、MongoDB Ops Manager がプロジェクトごとのデータベースユーザーのアクセスに対して 1 つの認証方法のみをサポートしているためです。 詳しくは、 「 MongoDB Database リソースの配置 」を参照してください。
MongoDB Enterprise Kubernetes Operatorの配置を一意のMongoDB Ops Managerプロジェクトにペアで配置する必要があります。 配置する MongoDB Enterprise Kubernetes Operator インスタンスごとに個別の ConfigMap を作成するか、ConfigMap から
data.projectName
を省略することで、同じ ConfigMap を任意の数の配置で再利用して、プロジェクト名が配置されたリソース名と一致するようにすることができます。 コンフィギュレーション マップにプロジェクト名が指定されている場合、そのプロジェクトがまだ存在しない場合は作成されます。
重要
Kubernetes演算子を使用して、MongoDB Cloud ManagerMongoDB Ops Managerおよび バージョン6.0 .x 以降で リソースを配置できます。
Atlas 演算子を使用して、MongoDB リソースを Atlas に配置できます。
前提条件
Kubernetesバージョン 1.11 以降、またはOpenShiftバージョン 3.11 以降。
MongoDB Enterprise Kubernetes Operator バージョン 0.11 以降がインストールされている。
コンフィギュレーションマップを使用して 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
キー | タイプ | 説明 | 例 |
---|---|---|---|
metadata.name | string | Kubernetes オブジェクト の名前 。 リソース名は 44 文字以下にする必要があります。 1123この名前は、小文字の英数字文字または 詳細については、 名前 に関するKubernetesのドキュメントを参照してください。 | my-project |
metadata.namespace | string | mongodb | |
data.projectName | string | MongoDB Ops Managerプロジェクトのラベル。 Kubernetes Operator は、 MongoDB Ops Managerプロジェクトが存在しない場合は、それを作成します。 または 組織で既存のプロジェクトを使用するには、Cloud Manager MongoDB Ops Manager | myProjectName |
data.orgId | string | 必須。 または 組織 を一意に識別する24 文字の 16stringCloud Manager MongoDB Ops Manager進 。 Kubernetes演算子を使用して、MongoDB Cloud ManagerMongoDB Ops Managerおよび バージョン6.0 .x 以降で リソースを配置できます。 Atlas 演算子を使用して、MongoDB リソースを Atlas に配置できます。
既存の Cloud Managerまたは 組織内に新しいプロジェクトを作成するには、 組織プロジェクト作成者MongoDB Ops Manager ロールが必要です。
| 5b890e0feacf0b76ff3e7183 |
data.baseUrl | string | FQDN とポート番号を含む MongoDB Ops Manager アプリケーションへの URL 。 重要: を Operator で配置し、 MongoDB Ops Managerが配置先のKubernetes クラスターのMongoDB Ops Manager MongoDB外部 に配置された データベースリソースを管理する場合、Kubernetes Cloud Manager を使用している場合は、 | https://ops.example.com:8443 |
次の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 を作成します。
KubernetesOperatorMongoDB Ops Manager には、 ホストの証明書を発行した CA のルート CA 証明書が必要です。以下のコマンドを実行して ConfigMap を作成します データベース ポッドの同じ名前空間にルート CA が含まれている場合
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 ...
強調表示されたセクションをプロジェクトの ConfigMap に追加します。
次のコマンドを呼び出して、デフォルトの構成済みエディターでプロジェクトの ConfigMap を編集します。
kubectl edit configmaps <my-configmap> -n <metadata.namespace> 強調表示されたセクションを例の ConfigMap に貼り付けます プロジェクト ConfigMap の最後にある。
TLS 設定の指定
次のTLSキーを変更します。
キー | タイプ | 説明 | 例 |
---|---|---|---|
sslMMSCAConfigMap | string | ConfigMap の名前 は、MongoDB Ops Manager ホストの証明書に署名するために使用されるルート CA 証明書を含む最初のステップで作成されます。これにより、CA 証明書が Kubernetes Operator とデータベース リソースにマウントされます。 | my-root-ca |
sslRequireValidMMSServerCertificates | ブール値 | からの有効な TLS MongoDB Ops Manager証明書を要求するように演算子を強制します。 重要:値は一重引用符で囲む必要があります。そうしないと、 演算子はエラーをスローします。 | 'true' |
Kubernetesコマンドを呼び出して、ConfigMap を検証します。
kubectl describe configmaps <my-configmap> -n <metadata.namespace>
重要
名前空間オプションは常にkubectl
と含めてください。 kubernetes -n
オプションを指定しない場合、 では空の名前空間がデフォルトで設定されるため、配置が失敗します。<metadata.namespace>
フィールドの値を指定する必要があります。 Kubernetes 演算子、 シークレット と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 の認証情報を作成 します 。