Implantar um recurso Ops Manager
Nesta página
Você pode implantar o Ops Manager como um recurso em um container Kubernetes usando o Kubernetes Operator.
Considerações
As seguintes considerações se aplicam:
Criptografando conexões
Ao configurar a implantação 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 criptografadas por TLSentre os nós do conjunto de réplicas do aplicativo 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 sobre 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 aplicativos com TLS.
Pré-requisitos
Conclua os pré-requisitos .
Leia as considerações.
Crie um certificado TLS para o conjunto do banco de dados do aplicativo.
Este certificado TLS requer os seguintes atributos:
Nomes de DNSAdicione SANs ou nomes de assunto para cada Pod que hospeda um membro do conjunto de réplicas do Banco de Dados de Aplicativo. 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 chaveCertifique-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 MongoDB Ops Manager e MongoDB . A partir da versão 1 do operador Kubernetes .17.0, o Operador Kubernetes não suporta arquivos PEM concatenados armazenados como segredos Opaco.
Antes de implantar um recurso MongoDB Ops Manager , certifique-se de planejar seu recurso MongoDB Ops Manager :
Concluir os pré- requisitos
Leia as considerações.
Procedimento
Este procedimento se aplica à implantação de uma instância MongoDB Ops Manager em um único cluster Kubernetes e à implantação do MongoDB Ops Manager em um cluster de operadores em uma implantação de vários clusters. Se você quiser implantar várias instâncias do MongoDB Ops Manager em vários clusters do Kubernetes , consulte Implantar recursos MongoDB Ops Manager em vários clusters do Kubernetes .
Siga estas etapas para implantar o recurso MongoDB Ops Manager para executar HTTPS e proteger o banco de dados de aplicativo usando TLS.
Configure kubectl
como padrão para seu namespace.
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>
Crie segredos para seus certificados.
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.
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> 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>
Adicione certificados adicionais aos certificados CA personalizados.
Se o MongoDB Ops Manager certificado TLS for assinado por uma CA personalizada , o certificado CA também deverá conter certificados adicionais que permitam MongoDB Ops Manager ao Backup Daemon do baixar MongoDB binários do 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.
Obtenha toda a cadeia de certificados TLS para o Ops Manager em
downloads.mongodb.com
. O comandoopenssl
a seguir gera o certificado na cadeia para o 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}' Concatene o arquivo de certificado da CA para o Ops Manager com toda a cadeia de certificados TLS da
downloads.mongodb.com
que você obteve na etapa anterior:cat cert2.crt cert3.crt cert4.crt >> mms-ca.crt Criar o ConfigMap para MongoDB Ops Manager:
kubectl create configmap om-http-cert-ca --from-file="mms-ca.crt"
Copie um dos seguintes exemplos de objeto do Ops Manager Kubernetes.
Altere as configurações para corresponder ao Ops Manager e à configuração do banco de dados de aplicativo.
1 2 apiVersion: mongodb.com/v1 3 kind: MongoDBOpsManager 4 metadata: 5 name: <myopsmanager> 6 spec: 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: "6.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 ...
1 2 apiVersion: mongodb.com/v1 3 kind: MongoDBOpsManager 4 metadata: 5 name: <myopsmanager> 6 spec: 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: MultiCluster 27 clusterSpecList: 28 - clusterName: cluster1.example.com 29 members: 4 30 - clusterName: cluster2.example.com 31 members: 3 32 - clusterName: cluster3.example.com 33 members: 2 34 version: "6.0.0-ubi8" 35 security: 36 certsSecretPrefix: <prefix> # Required. Text to prefix to the 37 # name of the secret that contains the Application 38 # Database's TLS certificate. Name the secret 39 # <prefix>-<metadata.name>-db-cert. 40 tls: 41 ca: "appdb-ca" # Optional, unless enabling TLS for |mms|. 42 # Name of the ConfigMap file 43 # containing the certicate authority that 44 # signs the certificates used by the 45 # application database. 46 47 ...
Abra seu editor de texto preferido e cole a especificação do objeto em um novo arquivo de texto.
Defina as configurações específicas para o seu sistema.
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. Consulte também e a | om | |
número | Número de instâncias do Ops Manager a serem executadas em paralelo. O valor mínimo válido é | 1 | |
string | Versão do Ops Manager a ser instalada. O formato deve ser XYZ. Para visualizar as MongoDB Ops Manager versões disponíveis , visualize o registro de contêiner. | 6.0.0 | |
string | Nome do segredo que você criou para o MongoDB Ops Manager usuário administrador do . Configure o segredo para usar o mesmo namespace como o MongoDB Ops Manager recurso . | om-admin-secret | |
string | Obrigatório. Texto para prefixo para o nome do segredo que contém certificados TLS do Ops Managers. | om-prod | |
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 | |
string | O Kubernetes serviço do ServiceType que expõe o MongoDB 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 MongoDB Ops Manager . | LoadBalancer | |
inteiro | Número de membros do conjunto de réplicas do Ops Manager Application Database . | 3 | |
string | Obrigatório. Versão do MongoDB que o banco de Ops Manager Application Database deve executar. O formato deve ser 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. | |
string | Opcional. O tipo do sistema Kubernetes para o banco de dados de aplicativos. Se omitido, o padrão é Se você especificar 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 Veja também o exemplo da especificação do recurso. | MultiCluster | |
string | Obrigatório. Texto para prefixo ao nome do segredo que contém os certificados TLS do banco de dados do aplicação . | appdb-prod | |
string | Nome do ConfigMap que você criou para verificar os certificados TLS do banco de dados de aplicativo assinados usando uma CA personalizada. Esse campo é obrigatório se você assinou os certificados TLS do banco de dados de aplicativo usando uma CA personalizada. |
O Kubernetes Operator monta a CA que você adiciona usando a configuração |
Opcional: Configure as configurações de Backup.
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 armazenamento de snapshots S3e um armazenamento de blockstore, oMongoDB 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 oplog armazenamento de e um armazenamento de S3 oplog , o escolheráMongoDB Ops Manager aleatoriamente um deles para usar para o oplog backup de .
Chave | Tipo | Descrição | Exemplo |
---|---|---|---|
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 . | |
string | Nome do armazenamento de oplog. | oplog1 | |
string | Nome do armazenamento de oplog do S3 . | my-s3-oplog-store | |
string | Nome do recurso MongoDB ou recurso MongoDBMultiCluster para o armazenamento de oplog. O metadata.name do recurso deve corresponder a esse nome. | my-oplog-db | |
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 armazenamento de snapshots S3 ou um armazenamento de blockstore.
Se você implantar um 3 armazenamento de armazenamento de snapshots de blockstore, oMongoDB 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 |
---|---|---|---|
string | Nome do armazenamento de snapshots do S3 . | s3store1 | |
string | Nome do segredo que contém os accessKey secretKey campos e . O Backup Daemon Service usa os valores desses campos como credenciais para acessar o bucket compatível com S3 ou S3 . | my-s3-credentials | |
string | URL do bucket compatível com S3 ou S3que armazena os snapshots de backup do banco de dados de dados. | s3.us-east-1.amazonaws.com | |
string | Nome do bucket compatível com S3 ou S3que armazena os snapshots de backup do banco de dados de dados. | my-bucket |
Para configurar um blockstore, defina as seguintes configurações:
Chave | Tipo | Descrição | Exemplo |
---|---|---|---|
string | Nome do blockstore. | blockStore1 | |
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. | my-mongodb-blockstore |
Opcional: defina quaisquer configurações adicionais para um backup do Ops Manager.
Adicione quaisquer configurações opcionais para backups que você deseja aplicar ao seu sistema no objeto arquivo de especificação. Por exemplo, para cada tipo de armazenamento de backup e para processos de daemon de backup MongoDB Ops Manager , você pode atribuir rótulos para associar armazenamentos de backup específicos ou processos de daemon de backup a projetos específicos. Use os elementos spec.backup.[*].assignmentLabels
dos recursos do OpsManager.
Opcional: defina quaisquer configurações adicionais para um sistema do Ops Manager.
Adicione quaisquer configurações opcionais que você deseja aplicar à sua implantação ao objeto arquivo de especificação.
Crie sua instância do Ops Manager.
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-enterprise-kubernetes/master/samples/ops-manager/ops-manager-external.yaml
Monitore o status da sua instância do Ops Manager.
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:
banco de dados de aplicativo.
Gerente de operações.
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: "6.0.5-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: "6.0.17"
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 este URL, você pode acessar o MongoDB Ops Manager de dentro do cluster 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: "6.0.5-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 este URL, você pode acessar o MongoDB Ops Manager de dentro do cluster Kubernetes ou criar um projeto usando um ConfigMap.
Acesse o aplicativo Ops Manager.
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:
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.
Abra uma janela do navegador e navegue até o aplicação MongoDB Ops Manager usando o FQDN e o número da porta do seu serviço de balanceador de carga.
https://ops.example.com:8443 Faça login no Ops Manager usando as credenciais de usuário administrador.
Defina suas regras de firewall para permitir o acesso da Internet ao
spec.externalConnectivity.
port
no host em que seu cluster Kubernetes está sendo executado.Abra uma janela do navegador e navegue até o aplicação MongoDB Ops Manager usando o FQDN e o
spec.externalConnectivity.
port
.https://ops.example.com:30036 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.
Criar credenciais para o Operador Kubernetes.
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 .
Crie um projeto utilizando um ConfigMap.
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 o do MongoDB Ops Manager aplicativo URL. 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: "6.0.5-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çãospec.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 contendo o certificado CA raiz usado para assinar o certificado do MongoDB Ops Manager host do . O Kubernetes Operator exige que você nomeie o certificado deste recurso do MongoDB Ops Managermms-ca.crt
no ConfigMap.
Implemente os recursos do MongoDB database para concluir a configuração do backup.
Por padrão, o MongoDB 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.
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 ospec.backup.opLogStores.mongodbResourceRef.name
que você especificou em sua definição de recurso do Ops Manager.Implemente um recurso de banco de dadosMongoDB para o armazenamento de snapshots do S3 no mesmo namespace que o recurso MongoDB Ops Manager .
Observação
Crie o armazenamento de snapshots S3 como um conjunto de réplicas.
Combine o
metadata.name
do recurso aospec.backup.s3Stores.mongodbResourceRef.name
que você especificou em sua definição de recurso do Ops Manager.
Confirme se o recurso do Ops Manager está em execução.
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: "6.0.5-ubi8" opsManager: lastTransition: "2022-12-06T17:46:32Z" phase: Running replicas: 1 url: https://om-backup-svc.dev.svc.cluster.local:8443 version: "6.0.17"
Consulte Solucionar problemas do operador Kubernetes para obter informações sobre os status de distribuição de recursos.
Siga estas etapas para implantar o recurso do MongoDB Ops Manager para ser executado por HTTP:
Configure kubectl
como padrão para seu namespace.
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>
Copie um dos seguintes exemplos de objeto do Ops Manager Kubernetes.
Altere as configurações para corresponder à configuração do MongoDB Ops Manager .
1 2 apiVersion: mongodb.com/v1 3 kind: MongoDBOpsManager 4 metadata: 5 name: <myopsmanager> 6 spec: 7 replicas: 1 8 version: <opsmanagerversion> 9 adminCredentials: <adminusercredentials> # Should match metadata.name 10 # in the secret 11 # for the admin user 12 externalConnectivity: 13 type: LoadBalancer 14 15 applicationDatabase: 16 topology: SingleCluster 17 members: 3 18 version: <mongodbversion> 19 ...
1 2 apiVersion: mongodb.com/v1 3 kind: MongoDBOpsManager 4 metadata: 5 name: <myopsmanager> 6 spec: 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 16 applicationDatabase: 17 topology: MultiCluster 18 clusterSpecList: 19 - clusterName: cluster1.example.com 20 members: 4 21 - clusterName: cluster2.example.com 22 members: 3 23 - clusterName: cluster3.example.com 24 members: 2 25 version: "6.0.5-ubi8" 26 27 ...
Abra seu editor de texto preferido e cole a especificação do objeto em um novo arquivo de texto.
Defina as configurações incluídas no exemplo anterior .
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. Para saber mais, consulte e a documentação do Kubernetes | om | |
número | Número de instâncias do Ops Manager a serem executadas em paralelo. O valor mínimo válido é | 1 | |
string | Versão do Ops Manager a ser instalada. O formato deve ser XYZ. Para obter a lista de versões disponíveis do , visualize MongoDB Ops Manager o registro de contêiner. | 6.0.0 | |
string | om-admin-secret | ||
string | Opcional. O Kubernetes serviço do ServiceType que expõe o MongoDB Ops Manager fora do Kubernetes. Exclua a configuração | LoadBalancer | |
inteiro | Número de membros do conjunto de réplicas do Ops Manager Application Database . | 3 | |
string | Obrigatório. Versão do MongoDB que o banco de Ops Manager Application Database deve executar. O formato deve ser 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. | |
string | Opcional. O tipo do sistema Kubernetes para o banco de dados de aplicativos. Se omitido, o padrão é Se você especificar Em vez disso, você deve especificar o 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 Veja também o exemplo da especificação do recurso. | MultiCluster |
Opcional: Configure as configurações de backup.
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 armazenamento de snapshots S3e um armazenamento de blockstore, oMongoDB 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 oplog armazenamento de e um armazenamento de S3 oplog , o escolheráMongoDB Ops Manager aleatoriamente um deles para usar para o oplog backup de .
Chave | Tipo | Descrição | Exemplo |
---|---|---|---|
booleano | Sinalizador que indica que o backup está habilitado. Você deve especificar spec.backup.enabled: true para definir as configurações do banco de banco de dados principal, armazenamento de oplog, armazenamento de oplog S3 e 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 . | |
string | Nome do armazenamento de oplog. | oplog1 | |
string | Nome do armazenamento de oplog do S3 . | my-s3-oplog-store | |
string | Nome do recurso MongoDB ou recurso MongoDBMultiCluster para o armazenamento de oplog. O metadata.name do recurso deve corresponder a esse nome. | my-oplog-db | |
string | Nome do recurso de banco de dados MongoDB para o armazenamento de oplog S3 . | my-s3-oplog-db |
Você também deve configurar um armazenamento de armazenamento de snapshots S3 ou um armazenamento de blockstore. Se você implantar um armazenamento de armazenamento de snapshots S3e um armazenamento de blockstore, oMongoDB Ops Manager escolherá aleatoriamente um para usar no backup.
Para configurar um armazenamento de snapshots S3 , defina as seguintes configurações:
Chave | Tipo | Descrição | Exemplo |
---|---|---|---|
string | Nome do armazenamento de snapshots do S3 . | s3store1 | |
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 | |
string | URL do bucket compatível com S3 ou S3que armazena os snapshots de backup do banco de dados de dados. | s3.us-east-1.amazonaws.com | |
string | Nome do bucket compatível com S3 ou S3que armazena os snapshots de backup do banco de dados de dados. | my-bucket | |
string | us-east-1 |
Para configurar um blockstore, defina as seguintes configurações:
Chave | Tipo | Descrição | Exemplo |
---|---|---|---|
string | Nome do blockstore. | blockStore1 | |
string | Nome do recurso MongoDB que você cria para o blockstore. Você deve implantar esse recurso de banco de dados de dados no mesmo namespace que o recurso MongoDB Ops Manager . O metadata.name do recurso deve corresponder a este nome. | my-mongodb-blockstore |
Opcional: defina quaisquer configurações adicionais para um backup do Ops Manager.
Adicione quaisquer configurações opcionais para backups que você deseja aplicar ao seu sistema no objeto arquivo de especificação. Por exemplo, para cada tipo de armazenamento de backup e para processos de daemon de backup MongoDB Ops Manager , você pode atribuir rótulos para associar armazenamentos de backup de backup específicos ou processos de daemon de backup a projetos específicos. Use os elementos spec.backup.[*].assignmentLabels
dos recursos do OpsManager.
Opcional: defina quaisquer configurações adicionais para um sistema do Ops Manager.
Adicione quaisquer configurações opcionais que você deseja aplicar à sua implantação ao objeto arquivo de especificação.
Crie sua instância do Ops Manager.
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-enterprise-kubernetes/master/samples/ops-manager/ops-manager-external.yaml
Monitore o status da sua instância do Ops Manager.
Para verificar o status do recurso do Ops Manager, invoque o seguinte comando:
kubectl get om -o yaml -w
O comando retorna uma saída semelhante ao seguinte, no campo status
enquanto o recurso implementa:
status: applicationDatabase: lastTransition: "2023-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:
banco de dados de aplicativo.
Gerente de operações.
Backup.
O Operador Kubernetes não reconcilia um recurso até que o anterior entre na fase Running
.
Depois que o recurso MongoDB Ops Manager concluir a fase Pending
, o comando retornará a saída semelhante à seguinte no campo status
se você tiver habilitado o backup:
status: applicationDatabase: lastTransition: "2023-04-01T09:50:20Z" members: 3 phase: Running type: ReplicaSet version: "6.0.5-ubi8" backup: lastTransition: "2022-04-01T09:57:42Z" message: The MongoDB object <namespace>/<oplogresourcename> doesn't exist phase: Pending opsManager: lastTransition: "2022-04-01T09:57:40Z" phase: Running replicas: 1 url: http://om-svc.cloudqa.svc.cluster.local:8080 version: "6.0.17"
O backup permanece em um estado Pending
até que você configure os bancos de dados de backup.
Dica
O campo status.opsManager.url
declara o URL de conexão do recurso. Usando este URL, você pode acessar o MongoDB Ops Manager de dentro do cluster Kubernetes ou criar um projeto usando um ConfigMap.
Acesse o aplicativo Ops Manager.
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:
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.
Abra uma janela do navegador e navegue até o aplicação MongoDB Ops Manager usando o FQDN e o número da porta do seu serviço de balanceador de carga.
http://ops.example.com:8080 Faça login no Ops Manager usando as credenciais de usuário administrador.
Defina suas regras de firewall para permitir o acesso da Internet ao
spec.externalConnectivity.
port
no host em que seu cluster Kubernetes está sendo executado.Abra uma janela do navegador e navegue até o aplicação MongoDB Ops Manager usando o FQDN e o
spec.externalConnectivity.
port
.http://ops.example.com:30036 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.
Opcional: Crie credenciais para o Operador Kubernetes.
Se você habilitou o backup, você deverá criar uma organização MongoDB Ops Manager , gerar chaves de API programáticas e criar um segredo em sua ferramenta de armazenamento secreto. Essas atividades seguem os pré-requisitos e o procedimento na página Criar Credenciais para o Operador Kubernetes .
Opcional: crie um projeto usando um ConfigMap.
Se você habilitou o backup, crie um projeto seguindo os pré-requisitos e o procedimento na página Criar um projeto por sistema do MongoDB usando um ConfigMap.
Você deve definir data.baseUrl
no ConfigMap para o do MongoDB Ops Manager aplicativo URL. 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-04-01T10:00:32Z" members: 3 phase: Running type: ReplicaSet version: "6.0.5-ubi8" backup: lastTransition: "2022-04-01T09:57:42Z" message: The MongoDB object <namespace>/<oplogresourcename> doesn't exist phase: Pending opsManager: lastTransition: "2022-04-01T09:57:40Z" phase: Running replicas: 1 url: http://om-svc.cloudqa.svc.cluster.local:8080 version: "6.0.17"
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 .
Opcional: implemente os recursos do banco de dados de dados MongoDB para concluir a configuração do backup.
Se você ativou o Backup, crie um recurso de MongoDB database para os armazenamentos de oplog e snapshots para concluir a configuração.
Implemente um MongoDB database para o armazenamento de oplog no mesmo namespace que o Ops Manager.
Observação
Crie este banco de dados como um conjunto de réplicas.
Combine o
metadata.name
do recurso com ospec.backup.opLogStores.mongodbResourceRef.name
que você especificou em sua definição de recurso do Ops Manager.Escolha uma das seguintes opções:
Implante um recurso deMongoDB database para o blockstore no mesmo namespace que o recurso MongoDB Ops Manager .
Combine o
metadata.name
do recurso aospec.backup.blockStores.mongodbResourceRef.name
que você especificou em sua definição de recurso do Ops Manager.Configure um bucket S3 para ser usado como armazenamento de snapshots do S3 .
Certifique-se de que você possa acessar o bucket S3 usando os detalhes especificados na definição de recursos MongoDB Ops Manager .
Opcional: confirme que o recurso MongoDB Ops Manager está em execução.
Se você ativou o backup, verifique o status do recurso do MongoDB Ops Manager invocando o seguinte comando:
kubectl get om -o yaml -w
Quando o MongoDB Ops Manager está em execução, o comando retorna a seguinte saída no campo status
:
status: applicationDatabase: lastTransition: "2022-04-01T10:00:32Z" members: 3 phase: Running type: ReplicaSet version: "6.0.5-ubi8" backup: lastTransition: "2022-04-01T10:00:53Z" phase: Running version: "6.0.5-ubi8" opsManager: lastTransition: "2022-04-01T10:00:34Z" phase: Running replicas: 1 url: http://om-svc.cloudqa.svc.cluster.local:8080 version: "6.0.17"
Consulte Solucionar problemas do operador Kubernetes para obter informações sobre os status de distribuição de recursos.