Antes de instalar o Operador Kubernetes, você pode definir o escopo da implantação do Operador Kubernetes. Os escopos dependem dos namespaces em que você escolhe para implantar os recursos do Ops Manager e do MongoDB.
Escopos de implantação do operador Kubernetes
Você pode definir um destes escopos:
O operador usa o mesmo namespace único que os recursos
Você pode definir o escopo para o operador Kubernetes usar o mesmo namespace como recursos. Nesse caso, o Operador do Kubernetes observa o MongoDB Ops Manager e os recursos do MongoDB nesse mesmo namespace.
Quando você instala o Operador Kubernetes, ele utiliza o namespace padrão.
O operador usa um subconjunto de namespaces
Você pode definir o escopo do Kubernetes Operator para usar um ou mais namespaces que diferem do namespace usado pelos recursos do Kubernetes Operator. Nesse caso, o Operador do Kubernetes observa o MongoDB Ops Manager e os recursos do MongoDB em um subconjunto de namespaces que você especifica.
Para instalar as instâncias do Operador Kubernetes com esse escopo, use helm com o operador.watchNamespace Parâmetro.
Observar um subconjunto de namespaces é útil em sistemas em que uma única instância do Kubernetes Operator observa um tipo de recurso de cluster diferente. Por exemplo, você pode configurar o Operador Kubernetes para observar recursos do MongoDB em um subconjunto de namespaces e para monitorar recursos do MongoDBMultiCluster em outro subconjunto de namespaces. Para evitar condições de corrida durante a reconciliação de recursos, para cada tipo de recurso personalizado que você deseja que o Operador Kubernetes assista, certifique-se de definir o escopo para um subconjunto distinto de namespaces.
Siga as instruções de instalação relevantes para helm, mas especifique um ou mais namespaces no operador.watchNamespace parâmetro para o operador Kubernetes observar:
# 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
Ao instalar o Operador Kubernetes para observar recursos em um ou mais namespaces diferentes do namespace no qual o Operador Kubernetes está distribuído:
Crie os seguintes recursos:
Um ClusterRole com acesso a vários recursos. Para a definição completa do recurso, consulte o exemplo operator-roles.yaml. Este é um recurso com escopo de cluster.
Crie um ClusterRoleBinding para vincular ClusterRole a ServiceAccount. Esse
clusterRoleBindingvinculará oclusterRoleque você criou à ServiceAccount que o Kubernetes Operator está usando no namespace onde você o instalou.
Inclua o ClusterRole e o ClusterRoleBinding nos arquivos de configuração padrão que você aplica durante a instalação.
Criar contas de serviçolocais do Kubernetes:
Para cada namespace, crie algumas ou todas as seguintes ServiceAccounts locais do Kubernetes:
Se você deseja implantar uma instância MongoDB no namespace, utilize
mongodb-enterprise-database-pods.Se você deseja implantar o Ops Manager no namespace, use
mongodb-enterprise-appdbemongodb-enterprise-ops-manager.
O exemplo a seguir ilustra como ClusterRole e ClusterRoleBinding trabalham juntos no cluster.
Suponha que você crie um ServiceAccount no namespace mongodb e depois instale o Kubernetes Operator nesse namespace. O Operador Kubernetes usa esta ServiceAccount.
Para definir o escopo do Operador Kubernetes para monitorar os namespaces ns1 e ns2:
Usando esses privilégios, crie um ClusterRole sem namespace e em todo o cluster.
Crie um ClusterRoleBinding em três namespaces:
mongodb,ns1ens2. Este ClusterRoleBinding vinculará o ClusterRole ao ServiceAccount no namespacemongodb. OclusterRoleBindingpermitirá ao Operador Kubernetes implantado nomongodbnamespace acessar os recursos descritos noclusterRoledo namespace de destino, ou seja, emmongodb,ns1ens2.
Consulte também operator.watchNamespace.
O operador usa o escopo em todo o cluster
Você pode definir o escopo do Operador Kubernetes para o cluster Kubernetes. Neste caso, o Operador do Kubernetes observa os recursos do MongoDB Ops Manager e do MongoDB em todos os namespaces no cluster do Kubernetes.
Importante
Você pode implantar apenas uma instância do Operador Kubernetes com um escopo de todo o cluster por cluster Kubernetes.
Para definir um escopo em todo o cluster para o Operador Kubernetes, selecione sua plataforma.
Próximos passos
Após configurar o escopo do MongoDB Enterprise Kubernetes Operator, você pode:
Leia as considerações.
Conclua os pré- requisitos.