Docs 主页 → MongoDB Enterprise Kubernetes Operator
为 MongoDB Enterprise Kubernetes Operator 部署设置范围
在安装 Kubernetes Operator 之前,您可以设置 Kubernetes Operator 部署的范围。 范围取决于您选择在其中部署 Ops Manager 和 MongoDB
资源的命名空间。
Kubernetes 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 的命名空间以外)中的资源时:
创建以下资源:
ClusterRole 可访问多种资源。有关完整的资源定义,请参阅 操作符-角色.yaml 示例。这是集群范围的资源。
创建 ClusterRoleBinding 链接 ClusterRole 和 ServiceAccount。此
clusterRoleBinding
将绑定您使用 Kubernetes 操作符在安装它的命名空间上使用的 ServiceAccount 创建的clusterRole
。
包括 ClusterRole 和 ClusterRoleBinding 在安装过程中应用的默认配置文件中。
以下示例说明了 ClusterRole 如何 和 ClusterRoleBinding 在集群中协同工作。
假设您在mongodb
命名空间中创建一个 ServiceAccount,然后在此命名空间中安装 Kubernetes 操作符。Kubernetes 操作符 使用此 ServiceAccount。
要将 Kubernetes 操作符范围设置为监视命名空间ns1
和ns2
,请执行以下操作:
获取 集群管理员权限。
使用这些权限,创建集群范围内的非命名 ClusterRole 。
创建 ClusterRoleBinding 位于三个命名空间中:
mongodb
、ns1
和ns2
。此 ClusterRoleBinding 将绑定 ClusterRole 到 命名空间中的 ServiceAccount。mongodb
clusterRoleBinding
将允许部署在mongodb
命名空间中的 Kubernetes 操作符 访问目标命名空间的clusterRole
中描述的资源,即mongodb
、ns1
和ns2
中描述的资源。
Operator 使用集群范围的作用域
您可以将 Kubernetes 操作符的作用域设置为 Kubernetes 集群。在这种情况下,Kubernetes Operator 会监视所有 命名空间 中的 Ops Manager 和 资源MongoDB
在 Kubernetes 集群中。
重要
对于每个 Kubernetes 集群,您只能部署一个具有集群范围范围的 Kubernetes Operator 实例。
要为 Kubernetes Operator 设置集群范围的作用域,请按照您的首选安装方法的说明进行操作。
后续步骤
设置 MongoDB Enterprise Kubernetes Operator 的范围后,您可以: