Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Implantar um recurso Ops Manager

Você pode implantar o Ops Manager como um recurso em um container Kubernetes usando o Kubernetes Operator.

As seguintes considerações se aplicam:

Ao configurar o sistema do Ops Manager, você deve escolher se deseja executar conexões por HTTPS ou HTTP.

O seguinte procedimento HTTPS:

  • Estabelece conexões criptografadas por TLSde/para o aplicativo Ops Manager.

  • Estabelece conexões criptografadaspor TLSentre os nós do conjunto de réplicasdo aplicação de banco de dados.

  • Exige certificados válidos para criptografia TLS.

O seguinte procedimento HTTP:

  • Não criptografa conexões de ou para o aplicativo Ops Manager.

  • Não criptografa conexões entre os membros do conjunto de réplicas do aplicativo de banco de dados.

  • Tem menos requisitos de configuração.

Ao executar por HTTPS, o Ops Manager é executado na porta 8443 por padrão.

Selecione a guia apropriada com base no fato de você desejar criptografar o Ops Manager e as conexões do banco de dados de aplicativo com TLS.

  • Conclua os pré- requisitos.

  • Crie um certificado TLS para o conjunto de réplicas do banco de dados do aplicativo.

    Este certificado TLS requer os seguintes atributos:

    Nomes de DNS

    Certifique-se de adicionar SANs ou nomes de assunto para cada Pod que hospeda um nó do conjunto de réplicas do Banco de Dados de Aplicativos. A SAN para cada pod deve usar o seguinte formato:

    <opsmgr-metadata.name>-db-<index>.<opsmgr-metadata.name>-db-svc.<namespace>.svc.cluster.local

    Usos da chave

    Certifique-se de que os certificados TLS incluam os seguintes usos de chave ( 5280):

    • "servidor de autenticação"

    • "autenticação do cliente"

Importante

O Operador do Kubernetes usa kubernetes.io/tls segredos para armazenar certificados TLS e chaves privadas para recursos do Ops Manager e MongoDB . A partir da versão do Kubernetes Operator 1.17.0, o Kubernetes Operator não permite arquivos PEM concatenados armazenados como segredos Opaco.

Esse procedimento se aplica à implantação de uma instância do Ops Manager em um único cluster Kubernetes e à implantação do Ops Manager em um cluster central em uma implantação de vários clusters. Se você quiser implantar várias instâncias do Ops Manager em vários clusters do Kubernetes, consulte Implantar recursos do Ops Manager em vários clusters do Kubernetes.

Siga estas etapas para implantar o recurso do Ops Manager para ser executado em HTTPS e proteger o banco de dados de aplicativo usando TLS.

1

Caso ainda não tenha feito isso, execute o seguinte comando para executar todos os comandos kubectl no namespace que você criou.

Observação

Se você estiver implantando um recurso MongoDB Ops Manager em um sistema do MongoDB de vários clusters Kubernetes:

  • Defina context como o nome do cluster central, como: kubectl config set context "$MDB_CENTRAL_CLUSTER_FULL_NAME".

  • Defina --namespace para o mesmo escopo usado para sua implantação do MongoDB de vários clusters Kubernetes, como: kubectl config --namespace "mongodb".

kubectl config set-context $(kubectl config current-context) --namespace=<metadata.namespace>
2

Se você estiver usando o HashiCorp Vault como sua ferramenta de armazenamento secreto, poderá Criar um Vault Secret .

Para saber mais sobre suas opções de armazenamento secreto, consulte Configurar armazenamento secreto.

  1. Depois de ter seus certificados TLS e chaves privadas, execute o seguinte comando para criar um segredo que armazena MongoDB Ops Manager o certificado TLS :

    kubectl create secret tls <prefix>-<metadata.name>-cert \
    --cert=<om-tls-cert> \
    --key=<om-tls-key>
  2. Execute o seguinte comando para criar um novo segredo que armazena o certificado TLS do banco de dados do aplicação :

    kubectl create secret tls <prefix>-<metadata.name>-db-cert \
    --cert=<appdb-tls-cert> \
    --key=<appdb-tls-key>
3

Se o certificado TLS do Ops Manager for assinado por uma CA personalizada, o certificado de CA também deverá conter certificados adicionais que permitam ao Backup Daemon do Ops Manager baixar binários do MongoDB da Internet. Para criar o(s) certificado(s) TLS, crie um ConfigMap para manter o certificado CA:

Importante

O Kubernetes Operator exige que seu certificado do Ops Manager seja denominado mms-ca.crt no ConfigMap.

  1. Obtenha toda a cadeia de certificados TLS para o Ops Manager no downloads.mongodb.com. O comando openssl a seguir gera o certificado na cadeia para seu diretório de trabalho atual, no formato .crt:

    openssl s_client -showcerts -verify 2 \
    -connect downloads.mongodb.com:443 -servername downloads.mongodb.com < /dev/null \
    | awk '/BEGIN/,/END/{ if(/BEGIN/){a++}; out="cert"a".crt"; print >out}'
  2. Concatene o arquivo de certificado da CA para o Ops Manager com toda a cadeia de certificados TLS de downloads.mongodb.com obtida na etapa anterior:

    cat <custom_ca_cert.pem> cert2.crt cert3.crt cert4.crt >> mms-ca.crt

    Observação

    • Substitua o espaço reservado <custom_ca_cert.pem> pelo seu arquivo PEM de certificado de CA personalizado.

    • Não inclua seu arquivo cert1.crt, pois é o certificado do servidor do MongoDB que não deve ser incluído.

  3. Crie o ConfigMap para o Ops Manager:

    kubectl create configmap om-http-cert-ca --from-file="mms-ca.crt"
4

Altere as configurações para corresponder ao Ops Manager e à configuração do banco de dados de aplicativo.

1---
2apiVersion: mongodb.com/v1
3kind: MongoDBOpsManager
4metadata:
5 name: <myopsmanager>
6spec:
7 replicas: 1
8 version: <opsmanagerversion>
9 adminCredentials: <adminusercredentials> # Should match metadata.name
10 # in the Kubernetes secret
11 # for the admin user
12
13 externalConnectivity:
14 type: LoadBalancer
15 security:
16 certsSecretPrefix: <prefix> # Required. Text to prefix
17 # the name of the secret that contains
18 # Ops Manager's TLS certificate.
19 tls:
20 ca: "om-http-cert-ca" # Optional. Name of the ConfigMap file
21 # containing the certificate authority that
22 # signs the certificates used by the Ops
23 # Manager custom resource.
24
25 applicationDatabase:
26 topology: SingleCluster
27 members: 3
28 version: "8.0.0-ubi8"
29 security:
30 certsSecretPrefix: <prefix> # Required. Text to prefix to the
31 # name of the secret that contains the Application
32 # Database's TLS certificate. Name the secret
33 # <prefix>-<metadata.name>-db-cert.
34 tls:
35 ca: "appdb-ca" # Optional, unless enabling TLS for |mms|.
36 # Name of the ConfigMap file
37 # containing the certicate authority that
38 # signs the certificates used by the
39 # application database.
40
41...
5
6
Chave
Tipo
Descrição
Exemplo

string

Nome para este Kubernetes MongoDB Ops Manager objeto do.

Os nomes de recursos devem ter 44 caracteres ou menos.

Veja também a documentação do metadata.name e do Kubernetes sobre nomes.

om

número

Número de instâncias do Ops Manager a serem executadas em paralelo.

O valor mínimo válido é 1. Este campo será ignorado se você especificar MultiCluster na configuração spec.topology .

1

string

Versão do Ops Manager a ser instalada.

O formato deve ser XYZ. Para visualizar as versões disponíveis do Ops Manager, visualize o registro de contêiner.

8.0.0

string

Nome do segredo que você criou para o usuário administrador do Ops Manager. Configure o segredo para usar o mesmo namespace que o recurso Ops Manager.

om-admin-secret

spec
.security
.certsSecretPrefix

string

Obrigatório.

Texto para prefixo para o nome do segredo que contém certificados TLS do Ops Managers.

om-prod

spec
.security
.tls
.ca

string

Nome do ConfigMap que você criou para verificar seus MongoDB Ops Manager certificados TLS assinados usando uma CA personalizada. Este campo é obrigatório se você assinou seus MongoDB Ops Manager certificados TLS usando uma CA personalizada.

om-http-cert-ca

spec
.externalConnectivity
.type

string

O serviço do Kubernetes ServiceType que expõe o Ops Manager fora do Kubernetes. Exclua a configuração spec.externalConnectivity e seus filhos se não quiser que o operador Kubernetes crie um serviço Kubernetes para rotear o tráfego externo para o aplicação Ops Manager.

LoadBalancer

spec
.applicationDatabase
.members

inteiro

Número de membros do conjunto de réplicas do Ops Manager Application Database .

3

spec
.applicationDatabase
.version

string

Obrigatório.

Versão do MongoDB que o Ops Manager Application Database deve executar.

O formato deve ser X.Y.Z-ubi8 para a edição Enterprise e X.Y.Z para a edição Community. Não adicione o sufixo de tag -ubi8 à imagem da edição Community porque o Kubernetes Operator adiciona o sufixo de tag automaticamente.

IMPORTANTE: Certifique-se de escolher uma versão compatível do MongoDB Server. Versões compatíveis diferem dependendo da imagem base que o recurso do banco de banco de dados MongoDB utiliza.

Para saber mais sobre a versão MongoDB, consulte Versões do MongoDB no Manual MongoDB.

Para obter melhores resultados, use a versão mais recente disponível do MongoDB empresarial que seja compatível com sua versão do Ops Manager.

spec
.applicationDatabase
.topology

string

Opcional.

O tipo do sistema Kubernetes para o banco de dados de aplicativos. Se omitido, o padrão é SingleCluster.

Se você especificar MultiCluster, o Operador Kubernetes ignorará valores que você configurou para o campospec.applicationDatabase.members, se especificado. Em vez disso, você deve especificar o clusterSpecList e incluir nele o clusterName de cada cluster de membros do Kubernetes selecionado no qual deseja implementar o Banco de Dados do Aplicativo, e o número de members (nós do MongoDB ) em cada cluster do Kubernetes.

Não é possível converter uma única instância MongoDB Ops Manager de cluster em uma instância de sistema do MongoDB de cluster multi-Kubernetes modificando as configurações do topology e clusterSpecList no CRD.

Veja também o exemplo da especificação do recurso.

MultiCluster

spec
.applicationDatabase
.security
.certsSecretPrefix

string

Obrigatório.

Texto para prefixar o nome do segredo que contém os certificados TLS do banco de dados do aplicativo.

appdb-prod

spec
.applicationDatabase
.security
.tls
.ca

string

Nome do ConfigMap que você criou para verificar os certificados TLS do banco de dados de aplicativo assinados usando uma CA personalizada. Este campo é obrigatório se você assinou os certificados TLS do banco de dados de aplicativo usando uma CA personalizada.

ca

O Kubernetes Operator monta a CA que você adiciona usando a configuração spec.applicationDatabase.security.tls.ca para o Ops Manager e o Application Database Pods.

7

Para configurar o backup, você deve habilitá-lo e, em seguida:

  • Escolha configurar um armazenamento de snapshots S3 ou um blockstore.Se vocêimplantar um armazenamento de snapshots S3 e um blockstore, o Ops Manager escolherá aleatoriamente um para usar no backup.

  • Escolha configurar um armazenamento de oplog ou um armazenamento de oplog S3. Se você implantar um armazenamento de oplog e um armazenamento de oplog S3, o Ops Manager escolherá aleatoriamente um deles para usar para o backup de oplog.

Chave
Tipo
Descrição
Exemplo

spec
.backup
.enabled

booleano

Sinalizador que indica que o Backup está habilitado. Você deve especificar spec.backup.enabled: true para definir as configurações do banco de dados principal, do oplog e do armazenamento de snapshots.

true

spec
.backup
.headDB

collection

Uma coleção de definições de configuração para o banco de dados principal. Para descrições das configurações individuais na coleção, consulte spec.backup.headDB.

spec
.backup
.opLogStores
.name

string

Nome do armazenamento de oplog.

oplog1

spec
.backup
.s3OpLogStores
.name

string

Nome do armazenamento de oplog S3.

my-s3-oplog-store

spec
.backup
.opLogStores
.mongodbResourceRef
.name

string

Nome do recurso MongoDB ou recurso MongoDBMultiCluster para o armazenamento de oplog. O metadata.name do recurso deve corresponder a esse nome.

Se o campo mongodbResourceRef não estiver explicitamente configurado, oOps Manager assumirá como padrão o Banco de Dados de Aplicativos, que tem escalabilidade limitada e pode não ser adequado para ambientes maiores.

Esta configuração padrão não é recomendada para sistemas de produção ou em escala, pois pode levar à degradação grave do desempenho, à instabilidade no banco de dados do aplicativo e a falhas de backup. Para ambientes de produção, sempre configure uma instância separada do MongoDB usando mongodbResourceRef para cada metadados de armazenamento de backup e oplog.

Você não pode alterar a configuração selecionada nem migrar o backup para outro local após a implantação. A única alternativa é interromper totalmente o backup e reiniciá-lo, o que torna todos os backups anteriores indisponíveis.

my-oplog-db

spec
.backup
.s3OpLogStores
.mongodbResourceRef
.name

string

Nome do recurso MongoDB ou recurso MongoDBMultiCluster para o armazenamento de oplog S3. O metadata.name do recurso deve corresponder a este nome.

my-s3-oplog-db

Você também deve configurar um armazenamento de snapshots S3 ou um blockstore.

Se você implantar um armazenamento de snapshots S3 e um blockstore, o Ops Manager escolherá aleatoriamente um para usar para backup.

Para configurar um armazenamento de snapshots, defina as seguintes configurações:

Chave
Tipo
Descrição
Exemplo

spec
.backup
.s3Stores
.name

string

Nome do armazenamento de snapshots S3.

s3store1

spec
.backup
.s3Stores
.s3SecretRef
.name

string

Nome do segredo que contém os campos accessKey e secretKey. O Backup Daemon Service usa os valores desses campos como credenciais para acessar o bucket compatível com S3 ou S3.

my-s3-credentials

spec
.backup
.s3Stores
.s3BucketEndpoint

string

URL do bucket compatível com S3 ou S3 que armazena os snapshots de backup do banco de dados .

s3.us-east-1.amazonaws.com

spec
.backup
.s3Stores
.s3BucketName

string

Nome do bucket compatível com S3 ou S3que armazena os snapshots de backup do banco de dados .

my-bucket

Para configurar um blockstore, defina as seguintes configurações:

Chave
Tipo
Descrição
Exemplo

spec
.backup
.blockStores
.name

string

Nome do blockstore.

blockStore1

spec
.backup
.blockStores
.mongodbResourceRef
.name

string

Nome do recurso MongoDB que você cria para o blockstore. Você deve implantar este recurso de reconhecimento de data center no mesmo namespace que o recurso Ops Manager.

Se o campo mongodbResourceRef não estiver explicitamente configurado, oOps Manager assumirá como padrão o Banco de Dados de Aplicativos, que tem escalabilidade limitada e pode não ser adequado para ambientes maiores.

Esta configuração padrão não é recomendada para sistemas de produção ou em escala, pois pode levar à degradação grave do desempenho, à instabilidade no banco de dados do aplicativo e a falhas de backup. Para ambientes de produção, sempre configure uma instância separada do MongoDB usando mongodbResourceRef para cada metadados de armazenamento de backup e oplog.

Você não pode alterar a configuração selecionada nem migrar o backup para outro local após a implantação. A única alternativa é interromper totalmente o backup e reiniciá-lo, o que torna todos os backups anteriores indisponíveis.

my-mongodb-blockstore

9

Adicione quaisquer configurações opcionais que você deseja aplicar ao seu sistema ao arquivo de especificação do objeto .

10
11

Execute o seguinte comando kubectl no nome do arquivo da definição de recurso do Ops Manager:

kubectl apply -f <opsmgr-resource>.yaml

Observação

Se você estiver implantando um recurso MongoDB Ops Manager em um sistema MongoDB de vários clusters Kubernetes, execute:

kubectl apply \
--context "$MDB_CENTRAL_CLUSTER_FULL_NAME" \
--namespace "mongodb"
-f https://raw.githubusercontent.com/mongodb/mongodb-kubernetes/1.1.0/public/samples/ops-manager/ops-manager-external.yaml
12

Para verificar o status do recurso do Ops Manager, invoque o seguinte comando:

kubectl get om -o yaml -w

O comando retorna a saída semelhante à seguinte no campo status enquanto o recurso distribui:

status:
applicationDatabase:
lastTransition: "2022-04-01T09:49:22Z"
message: AppDB Statefulset is not ready yet
phase: Pending
type: ""
version: ""
backup:
phase: ""
opsManager:
phase: ""

O Operador Kubernetes reconcilia os recursos na seguinte ordem:

  1. banco de dados de aplicativo.

  2. Gerente de operações.

  3. Backup.

O Operador Kubernetes não reconcilia um recurso até que o anterior entre na fase Running .

Depois que o recurso Ops Manager concluir a fase Pending , o comando retornará uma saída semelhante à seguinte no campo status se você habilitou o Backup:

status:
applicationDatabase:
lastTransition: "2022-04-01T09:50:20Z"
members: 3
phase: Running
type: ReplicaSet
version: "8.0.0-ubi8"
backup:
lastTransition: "2022-04-01T09:57:42Z"
message: The MongoDB object <namespace>/<oplogresourcename>
doesn't exist
phase: Pending
opsManager:
lastTransition: "2023-04-01T09:57:40Z"
phase: Running
replicas: 1
url: https://om-svc.cloudqa.svc.cluster.local:8443
version: "8.0.0"

O backup permanece em um estado Pending até que você configure o banco de dados de backup.

Dica

O campo status.opsManager.url declara o URL de conexão do recurso. Usando esta URL, você pode acessar o Ops Manager de dentro do cluster do Kubernetes ou criar um projeto usando um ConfigMap.

Após o recurso concluir a fase Pending , o comando retornará uma saída semelhante à seguinte no campo status :

status:
applicationDatabase:
lastTransition: "2022-12-06T18:23:22Z"
members: 3
phase: Running
type: ReplicaSet
version: "8.0.0-ubi8"
opsManager:
lastTransition: "2022-12-06T18:23:26Z"
message: The MongoDB object namespace/oplogdbname doesn't exist
phase: Pending
url: https://om-svc.dev.svc.cluster.local:8443
version: ""

O backup permanece em um estado Pending até que você configure o banco de dados de backup.

Dica

O campo status.opsManager.url declara o URL de conexão do recurso. Usando esta URL, você pode acessar o Ops Manager de dentro do cluster do Kubernetes ou criar um projeto usando um ConfigMap.

13

As etapas realizadas diferem com base em como você está roteando o tráfego para o aplicativo Ops Manager no Kubernetes. Se você configurou o Operador do Kubernetes para criar um serviço do Kubernetes para você ou criou um serviço do Kubernetes manualmente, use um dos seguintes métodos para acessar o aplicativo Ops Manager:

  1. Consulte seu provedor de nuvem para obter o FQDN do serviço do balanceador de carga. Consulte a documentação do seu fornecedor de nuvem para obter detalhes.

  2. Abra uma janela do navegador e navegue até o aplicação Ops Manager usando o FQDN e o número da porta do serviço do balanceador de carga.

    https://ops.example.com:8443
  3. Faça login no Ops Manager usando as credenciais de usuário administrador.

Para saber como acessar o aplicativo Ops Manager usando um serviço de terceiros, consulte a documentação da sua solução.

14

Para configurar as credenciais, você deve criar uma MongoDB Ops Manager organização , gerar API chaves de programáticas e criar um segredo. Essas atividades seguem os pré-requisitos e o procedimento na página Criar Credenciais para o Operador Kubernetes .

15

Para criar um projeto, siga os pré-requisitos e o procedimento na página Criar um projeto por sistema do MongoDB usando um ConfigMap.

Defina os seguintes campos no ConfigMap do seu projeto:

  • Defina data.baseUrl no ConfigMap para a URL do aplicativo de Ops Manager. Para encontrar esta URL, invoque o seguinte comando:

    kubectl get om -o yaml -w

    O comando retorna a URL da aplicação Ops Manager no campo status.opsManager.url, semelhante ao seguinte exemplo:

    status:
    applicationDatabase:
    lastTransition: "2022-12-06T18:23:22Z"
    members: 3
    phase: Running
    type: ReplicaSet
    version: "8.0.0-ubi8"
    opsManager:
    lastTransition: "2022-12-06T18:23:26Z"
    message: The MongoDB object namespace/oplogdbname doesn't exist
    phase: Pending
    url: https://om-svc.dev.svc.cluster.local:8443
    version: ""

    Importante

    Se você implantar o Ops Manager com o Kubernetes Operator e o Ops Manager gerenciar os recursos do banco de dados MongoDB implantados fora do cluster do Kubernetes em que foi implantado, será necessário definir data.baseUrl com o mesmo valor da configuração spec.configuration.mms.centralUrl na especificação de recursos do Ops Manager.

    Para saber mais, consulte Gerenciando sistemas externos do MongoDB .

  • Defina data.sslMMSCAConfigMap como o nome do seu ConfigMap que contém o certificado CA raiz usado para assinar o certificado do host do Ops Manager. O Operador Kubernetes exige que você nomeie o certificado deste recurso do Ops Manager mms-ca.crt no ConfigMap.

16

Por padrão, o Ops Manager ativa o Backup. Crie um recurso de banco de dados MongoDB para os armazenamentos de oplog e snapshots para concluir a configuração.

  1. Implemente um MongoDB database para o armazenamento de oplog no mesmo namespace que o Ops Manager.

    Observação

    Crie este reconhecimento de data center como um conjunto de réplica de três membros.

    Combine o metadata.name do recurso com o spec.backup.opLogStores.mongodbResourceRef.name que você especificou em sua definição de recurso do Ops Manager.

  2. Implante um recurso de banco de dados MongoDB para o armazenamento de snapshots S3 no mesmo namespace que o recurso Ops Manager.

    Observação

    Crie o armazenamento de snapshots S3 como um conjunto de réplicas.

    Combine o metadata.name do recurso ao spec.backup.s3Stores.mongodbResourceRef.name que você especificou em sua definição de recurso do Ops Manager.

17

Para verificar o status do recurso do Ops Manager, invoque o seguinte comando:

kubectl get om -o yaml -w

Quando o Ops Manager está em execução, o comando retorna a saída semelhante à seguinte, no campo status :

status:
applicationDatabase:
lastTransition: "2022-12-06T17:46:15Z"
members: 3
phase: Running
type: ReplicaSet
version: "8.0.0-ubi8"
opsManager:
lastTransition: "2022-12-06T17:46:32Z"
phase: Running
replicas: 1
url: https://om-backup-svc.dev.svc.cluster.local:8443
version: "8.0.0"

Consulte Solucionar problemas do operador Kubernetes para obter informações sobre os status de distribuição de recursos.

Avalie esta página