对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

为 MongoDB Enterprise Kubernetes Operator 部署设置范围

在安装 Kubernetes Operator 之前,您可以设置 Kubernetes Operator 部署的范围。 范围取决于您选择在其中部署 MongoDB Ops Manager 和 MongoDB 资源的命名空间。

您可以设置以下范围之一:

您可以将 Kubernetes 操作符的范围设置为使用与资源相同的命名空间。在这种情况下,Kubernetes 操作符会监视该命名空间中的 MongoDB Ops Manager 和 MongoDB 资源。

安装 Kubernetes 操作符时,它会使用默认命名空间。

您可以将 Kubernetes 操作符 的范围设置为使用一个或多个与 Kubernetes 操作符 资源使用的命名空间不同的命名空间。在这种情况下,Kubernetes 操作符 会监视您指定的命名空间子集中的 MongoDB Ops Manager 和 MongoDB 资源。

要安装具有此范围的 Kubernetes 操作符 instances,请将helm操作符.watchNamespace结合使用参数。

在单个 Kubernetes 操作符实例监视不同集群资源类型的部署中,监视命名空间子集非常有用。例如,您可以将 Kubernetes 操作符 配置为监视一个命名空间子集中的MongoDB资源,并监视另一命名空间子集中的MongoDBMultiCluster资源。为了避免在资源协调期间出现竞争条件,对于您希望 Kubernetes 操作符监视的每种自定义资源类型,请确保将范围设置为命名空间的不同子集。

按照helm的相关安装说明进行操作,但在Operator.watchNamespace中指定一个或多个命名空间 Kubernetes Operator 要监视的参数:

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

安装 Kubernetes Operator 以监控一个或多个命名空间(部署 Kubernetes Operator 的命名空间以外)中的资源时:

  1. 创建以下资源:

  2. ClusterRole ClusterRoleBinding 包含在安装期间应用的默认配置文件中。

  3. 创建本地Kubernetes ServiceAccounts:

    为每个命名空间创建以下部分或全部本地Kubernetes ServiceAccounts:

    • 如果要在命名空间中部署 MongoDB 实例,请使用mongodb-enterprise-database-pods

    • 如果要在命名空间中部署 Ops Manager,请使用mongodb-enterprise-appdbmongodb-enterprise-ops-manager

以下示例说明了 ClusterRoleClusterRoleBinding 如何在集群中协同工作。

假设您在mongodb命名空间中创建一个 ServiceAccount,然后在此命名空间中安装 Kubernetes 操作符。Kubernetes 操作符 使用此 ServiceAccount。

要将 Kubernetes 操作符范围设置为监视命名空间ns1ns2 ,请执行以下操作:

  1. 使用这些特权,创建一个集群范围的、无命名空间的ClusterRole

  2. 在三个命名空间中创建 ClusterRoleBinding:mongodbns1ns2 。此 ClusterRoleBinding 会将 ClusterRole 绑定到 mongodb命名空间中的 ServiceAccount。clusterRoleBinding 将允许部署在 mongodb命名空间中的Kubernetes Operator访问权限目标命名空间的 clusterRole 中描述的资源,即 mongodbns1ns2 中描述的资源。

另请参阅Operator.watchNamespace。

您可以将 Kubernetes 操作符 的作用域设置为 Kubernetes 集群。在这种情况下,Kubernetes 操作符 会监视 Kubernetes 集群中所有命名空间中的 Ops Manager 和 MongoDB 资源。

重要

对于每个 Kubernetes 集群,您只能部署一个具有集群范围范围的 Kubernetes Operator 实例。

要为 Kubernetes Operator 设置集群范围的作用域,请选择您的平台。

设置 MongoDB Enterprise Kubernetes Operator 的范围后,您可以: