Docs 菜单

Docs 主页MongoDB Enterprise Kubernetes Operator

为 MongoDB Enterprise Kubernetes Operator 部署设置范围

在此页面上

  • Kubernetes Operator 部署范围
  • 后续步骤

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

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

  • Operator 使用与资源相同的单一命名空间 (默认)

  • 操作符使用命名空间的子集

  • Operator 使用集群范围的作用域

您可以将 Kubernetes Operator 的范围设置为使用相同的 命名空间 作为资源。In this case, the Kubernetes Operator watches Ops Manager and MongoDB resources in that same namespace.

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

您可以将 Kubernetes 操作符的范围设置为使用一个或多个 命名空间 与 Kubernetes 操作符资源使用的命名空间不同。在这种情况下,Kubernetes 操作符会监视 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. 创建以下资源:

    • ClusterRole 可访问多种资源。有关完整的资源定义,请参阅 操作符-角色.yaml 示例。这是集群范围的资源。

    • 创建 ClusterRoleBinding 链接 ClusterRole 和 ServiceAccount。此clusterRoleBinding将绑定您使用 Kubernetes 操作符在安装它的命名空间上使用的 ServiceAccount 创建的clusterRole

  2. 包括 ClusterRole ClusterRoleBinding 在安装过程中应用的默认配置文件中。

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

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

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

  1. 获取 集群管理员权限。

  2. 使用这些权限,创建集群范围内的非命名 ClusterRole

  3. 创建 ClusterRoleBinding 位于三个命名空间中:mongodbns1ns2 。此 ClusterRoleBinding 将绑定 ClusterRole 到 命名空间中的 ServiceAccount。mongodbclusterRoleBinding将允许部署在mongodb命名空间中的 Kubernetes 操作符 访问目标命名空间的clusterRole中描述的资源,即mongodbns1ns2中描述的资源。

另请参阅Operator.watchNamespace。

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

重要

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

要为 Kubernetes Operator 设置集群范围的作用域,请按照您的首选安装方法的说明进行操作。

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

←  选择 Kubernetes 操作符 安装模式:单 Kubernetes 集群或多 Kubernetes 集群考虑因素 →