AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。

Kubernetes Operator 配置のMongoDBドライバーのスコープの設定

Kubernetes Operator をインストールする前に、Kubernetes Operator 配置のスコープを設定できます。 範囲は、 MongoDB Ops Managerと MongoDB リソースの配置を選択した名前空間によって異なります。

次のいずれかのスコープを設定できます。

Kubernetes Operator のスコープを設定して、リソースと同じ名前空間を使用することができます。この場合、 Kubernetes Operator は、同じ名前空間内のMongoDB Ops ManagerとMongoDB リソースを監視します。

Kubernetes Operator をインストールすると、デフォルトの名前空間が使用されます。

Kubernetes Operator のスコープを設定して、 Kubernetes Operator リソースで使用される名前空間空間とは異なる 1 つ以上の名前空間を使用することができます。この場合、 Kubernetes Operator は、指定された名前空間のサブセット内のMongoDB Ops ManagerとMongoDB リソースを監視します。

このスコープで Kubernetes Operator インスタンスをインストールするには、オペレーター.watchNamespace とともにhelmを使用します。 許可されます。

名前空間のサブセットを監視すると、単一の Kubernetes Operator インスタンスが異なるクラスター リソース タイプを監視する配置に役立ちます。 たとえば、Kubernetes Operator を構成して、名前空間の 1 つのサブセット内のMongoDBリソースを監視し、名前空間の別のサブセット内のMongoDBMultiClusterリソースを監視するようにできます。 リソース調整中に競合状態を回避するには、Kubernetes Operator で監視するカスタム リソース タイプごとに、スコープを名前空間の個別のサブセットに設定していることを確認してください。

helmの関連するインストール手順に従いますが、オペレーター.watchNamespace に 1 つ以上の名前空間を指定します。 Kubernetes Operator が監視するパラメーター。

# Watch one namespacehelm install mongodb-kubernetes-operator mongodb/mongodb-kubernetes \ --set operator.watchNamespace='namespace-to-watch' <...>
# Watch both namespace-a and namespace-bhelm install mongodb-kubernetes-operator mongodb/mongodb-kubernetes \ --set operator.watchNamespace="namespace-a\,namespace-b"
# Operator with name `mongodb-kubernetes-operator-qa-envs` will# watch ns-dev, ns-qa and ns-uat namespaces helm install mongodb-kubernetes-operator-qa-envs mongodb/mongodb-kubernetes \ --set operator.watchNamespace="ns-dev\,ns-qa\,ns-uat"
# Operator with name `mongodb-kubernetes-operator-staging` will# watch ns-staging and ns-pre-prodhelm install mongodb-kubernetes-operator-staging mongodb/mongodb-kubernetes --set operator.watchNamespace="ns-staging\,ns-pre-prod"

Kubernetes Operator をインストールして、Kubernetes Operator が配置されている名前空間以外の 1 つ以上の名前空間のリソースを監視する場合、以下のようにします。

  1. 次のリソースを作成します。

  2. インストール中に適用するデフォルトの構成ファイルに ClusterRole と ClusterRoleBinding を含めます。

  3. ローカルKubernetes ServiceAccounts を作成します。

    各名前空間に対して、次のローカルKubernetes ServiceAccount の一部またはすべてを作成します。

    • 名前空間に MongoDB インスタンスを配置する場合は、 mongodb-kubernetes-database-podsを使用します。

    • 名前空間にMongoDB Ops Managerを配置する場合は、mongodb-kubernetes-appdb と mongodb-kubernetes-ops-manager を使用します。

次の例は、ClusterRole と ClusterRoleBinding がクラスター内でどのように連携するかを示しています。

mongodb名前空間に ServiceAccount を作成し、この名前空間に Kubernetes Operator をインストールするとします。 Kubernetes Operator はこの ServiceAccount を使用します。

名前空間ns1とns2を監視するように Kubernetes Operator のスコープを設定するには次の手順に従います。

  1. これらの特権を使用して、クラスター全体で名前空間以外の ClusterRole を作成します。

  2. 次の 3 つの名前空間で ClusterRoleBinding を作成します:mongodb 、 、ns1 ns2。このClusterRoleBindingは、ClusterRoleをmongodb名前空間の ServiceAccount にバインドします。clusterRoleBinding を使用すると、mongodb名前空間に配置されたKubernetes Operator が、ターゲット名前空間の clusterRole に記述されているリソース(つまり、mongodb、ns1、ns2 にあるリソースにアクセスできるようになります。

Operator.watchNamespace も参照してください。

Kubernetes Operator のスコープをKubernetesクラスターに設定できます。この場合、 Kubernetes Operator は、 Kubernetesクラスター内のすべての名前空間でMongoDB Ops Managerと MongoDB リソースを監視します。

重要

Kubernetes クラスターごとに、クラスター全体のスコープを持つ Kubernetes Operator のインスタンスは 1 つだけ配置できます。

Kubernetes Operator のクラスター全体のスコープを設定するには、ご希望のインストール メソッドの手順に従います。

  1. mongodb-kubernetes.yamlサンプルYAMLファイルをKubernetes 演算子 GithubリポジトリのMongoDBから使用します。

  2. Set the spec.template.spec.containers.name.env.name:WATCH_NAMESPACE in mongodb-kubernetes.yaml to "*". You must include the double quotation marks (") around the asterisk (*) in the YAML file.

    WATCH_NAMESPACE: "*"
  3. In mongodb-kubernetes.yaml, change:

    kind: RoleapiVersion: rbac.authorization.k8s.io/v1metadata: name: mongodb-kubernetes-operator

    から:

    kind: ClusterRoleapiVersion: rbac.authorization.k8s.io/v1metadata: name: mongodb-kubernetes-operator
  4. 先ほど変更したClusterRoleに次のコードを追加します。

    - apiGroups: - "" resources: - namespaces verbs: - list - watch
  5. In mongodb-kubernetes.yaml, change:

    kind: RoleBindingapiVersion: rbac.authorization.k8s.io/v1metadata: name: mongodb-kubernetes-operator namespace: mongodbroleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: mongodb-kubernetes-operatorsubjects: - kind: ServiceAccount name: mongodb-kubernetes-operator namespace: mongodb

    から:

    kind: ClusterRoleBindingapiVersion: rbac.authorization.k8s.io/v1metadata: name: mongodb-kubernetes-operator namespace: mongodbroleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: mongodb-kubernetes-operatorsubjects: - kind: ServiceAccount name: mongodb-kubernetes-operator namespace: mongodb
  6. mongodb-kubernetes.yamlファイルで、 <namespace>の値を、Kubernetes Operator でリソースを配置してYAMLファイルを適用する名前空間に変更します。

    ---kind: ServiceAccountapiVersion: v1metadata: name: mongodb-kubernetes-appdb namespace: <namespace>---kind: ServiceAccountapiVersion: v1metadata: name: mongodb-kubernetes-database-pods namespace: <namespace>---kind: ServiceAccountapiVersion: v1metadata: name: mongodb-kubernetes-ops-manager namespace: <namespace>---kind: RoleapiVersion: rbac.authorization.k8s.io/v1metadata: name: mongodb-kubernetes-appdb namespace: <namespace>rules: - apiGroups: - "" resources: - secrets verbs: - get - apiGroups: - "" resources: - pods verbs: - patch---kind: RoleBindingapiVersion: rbac.authorization.k8s.io/v1metadata: name: mongodb-kubernetes-appdb namespace: <namespace>roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: mongodb-kubernetes-appdbsubjects: - kind: ServiceAccount name: mongodb-kubernetes-appdb namespace: <namespace>...
  7. ローカルKubernetesサービス アカウント の作成

    各名前空間に対して、次のローカルKubernetes サービス アカウント の一部またはすべてを作成します。

    • 名前空間に MongoDB インスタンスを配置する場合は、 mongodb-kubernetes-database-podsを使用します。

    • 名前空間にMongoDB Ops Managerを配置する場合は、mongodb-kubernetes-appdb と mongodb-kubernetes-ops-manager を使用します。

    該当する例をコピーして貼り付け、 <namespace>値を名前空間を識別するラベルに置き換えます。

    ---kind: ServiceAccountapiVersion: v1metadata: name: mongodb-kubernetes-database-pods namespace: <namespace>---kind: ServiceAccountapiVersion: v1metadata: name: mongodb-kubernetes-appdb namespace: <namespace>---kind: ServiceAccountapiVersion: v1metadata: name: mongodb-kubernetes-ops-manager namespace: <namespace>

MongoDB Controls for Kubernetes Operator のスコープを設定すると、次のことが可能になります。