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.

Configurar um recurso do Ops Manager para usar o modo remoto

Em uma configuração padrão, os MongoDB Agent e Backup Daemons acessam os arquivos de instalação do MongoDB pela Internet a partir da MongoDB, Inc.

Você pode configurar o MongoDB Ops Manager para ser executado no Modo Remoto para que os Daemons de Backup e os recursos gerenciados do MongoDB os arquivos de instalação somente do MongoDB Ops Manager, que envia solicitações de download para um ponto de extremidade HTTP em um servidor web local ou armazenamento compatível com S3implantado no cluster Kubernetes .

Implemente um recurso MongoDB Ops Manager .

O procedimento a seguir implementa um servidor HTTP Nginx em seu cluster Kubernetes para hospedar os arquivos de instalação do MongoDB .

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

O ConfigMap neste tutorial configura o Nginx para:

  • Execute um servidor HTTP chamado localhost escutando na porta 80 em um nó no cluster do Kubernetes e

  • Direcione solicitações HTTP para recursos específicos para locais que atendem aos arquivos de instalação do MongoDB Server e das Database Tools do MongoDB database.

  1. Cole o seguinte exemplo Nginx ConfigMap em um editor de texto:

    ---apiVersion: v1kind: ConfigMapmetadata: name: nginx-confdata: nginx.conf: | events {} http { server { server_name localhost; listen 80; location /linux/ { alias /mongodb-ops-manager/mongodb-releases/linux/; } location /tools/ { alias /tools/; } } }...
  2. Salve este arquivo com uma extensão de arquivo .yaml.

  3. Crie o Nginx ConfigMap invocando o seguinte comando kubectl no arquivo ConfigMap que você criou:

    kubectl apply -f <nginix-configmap>.yaml
3

A configuração do recurso Nginx neste tutorial:

  • Implementa uma réplica Nginx,

  • Cria montagens de volume para armazenar arquivos de instalação do MongoDB Server e das MongoDB database Tools, e

  • Define contêineres de inicialização que usam comandos curl para baixar os arquivos de instalação que o Nginx fornece aos recursos do banco de dados MongoDB que você implanta no cluster Kubernetes.

  1. Cole o seguinte exemplo de configuração de recurso Nginx em um editor de texto:

    ---apiVersion: apps/v1kind: Deploymentmetadata: name: nginx-deploymentspec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - image: nginx:1.14.2 imagePullPolicy: IfNotPresent name: nginx ports: - containerPort: 80 volumeMounts: - mountPath: /mongodb-ops-manager/mongodb-releases/linux name: mongodb-versions - mountPath: /tools/db/ name: mongodb-tools - name: nginx-conf mountPath: /etc/nginx/nginx.conf subPath: nginx.conf initContainers: - name: setting-up-rhel-mongodb image: curlimages/curl:latest command: - curl - -L - https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-8.0.0.tgz - -o - /mongodb-ops-manager/mongodb-releases/linux/mongodb-linux-x86_64-rhel80-8.0.0.tgz volumeMounts: - name: mongodb-versions mountPath: /mongodb-ops-manager/mongodb-releases/linux - name: setting-up-rhel-mongodb-tools image: curlimages/curl:latest command: - curl - -L - https://fastdl.mongodb.org/tools/db/mongodb-database-tools-rhel80-x86_64-100.6.0.tgz - -o - /tools/db/mongodb-database-tools-rhel80-x86_64-100.6.0.tgz volumeMounts: - name: mongodb-tools mountPath: /tools/db/ restartPolicy: Always terminationGracePeriodSeconds: 30 volumes: - name: mongodb-versions emptyDir: {} - name: mongodb-tools emptyDir: {} - configMap: name: nginx-conf name: nginx-conf...
  2. Modifique as linhas destacadas no exemplo para especificar as versões do MongoDB Server que você deseja instalar.

    Por exemplo, para substituir a versão 8.0.0 do MongoDB por uma versão de reconhecimento de data center diferente, atualize o seguinte bloco:

    - name: setting-up-rhel-mongodb image: curlimages/curl:latest command: - curl - -L - https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-8.0.0.tgz - -o - /mongodb-ops-manager/mongodb-releases/linux/mongodb-linux-x86_64-rhel80-8.0.0.tgz

    Atualize este bloco para modificar a versão do MongoDB database Tools:

    - name: setting-up-rhel-mongodb-tools image: curlimages/curl:latest command: - curl - -L - https://fastdl.mongodb.org/tools/db/mongodb-database-tools-rhel80-x86_64-100.6.0.tgz - -o - /tools/db/mongodb-database-tools-rhel80-x86_64-100.6.0.tgz
  3. Para carregar várias versões, anexe comandos curl

    para o initContailer apropriado para cada versão que você deseja que o Nginx atenda.

    Por exemplo, para configurar o Nginx para atender ao MongoDB 8.0.0:

    - name: setting-up-rhel-mongodb image: curlimages/curl:latest command: - curl - -L - https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-8.0.0.tgz - -o - /mongodb-ops-manager/mongodb-releases/linux/mongodb-linux-x86_64-rhel80-8.0.0.tgz
  4. Salve este arquivo com uma extensão de arquivo .yaml.

  5. Implemente o Nginx invocando o seguinte comando kubectl no arquivo de recurso do Nginx que você criou:

    kubectl apply -f <nginix>.yaml
4

O serviço neste tutorial expõe o Nginx ao tráfego de outros nós em seu cluster Kubernetes pela porta 80. Isso permite que os pods de recursos do MongoDB database que você implementa usando o Kubernetes Operator baixem os arquivos de instalação do Nginx.

Execute o seguinte comando para criar um serviço para sua implantação do Nginx:

  1. Cole o seguinte serviço de exemplo em um editor de texto:

    ---apiVersion: v1kind: Servicemetadata: name: nginx-svc labels: app: nginxspec: ports: - port: 80 protocol: TCP selector: app: nginx...
  2. Salve este arquivo com uma extensão de arquivo .yaml.

  3. Crie o serviço invocando o seguinte comando kubectl no arquivo de serviço que você criou:

    kubectl apply -f <nginix-service>.yaml
5

A seção destacada usa as seguintes definições de configuração do Ops Manager:

  • automation.versions.source: remote em spec.configuration para habilitar o modo remoto.

  • automation.versions.download.baseUrl em spec.configuration para fornecer a URL base dos recursos HTTP que atendem aos arquivos de instalação do MongoDB.

    Atualize esta linha para substituir <namespace> pelo namespace para o qual você distribui recursos com o Operador Kubernetes.

  • automation.versions.download.baseUrl.allowOnlyAvailableBuilds: "false" em spec.configuration para ajudar a garantir que as compilações corporativas não tenham problemas.

---apiVersion: mongodb.com/v1kind: MongoDBOpsManagermetadata: name: ops-manager-localmodespec: replicas: 1 version: "8.0.0" adminCredentials: ops-manager-admin-secret configuration: # this enables remote mode in Ops Manager automation.versions.source: remote automation.versions.download.baseUrl: "http://nginx-svc.<namespace>.svc.cluster.local:8080" automation.versions.download.baseUrl.allowOnlyAvailableBuilds: "false" backup: enabled: false applicationDatabase: members: 3...
6

Abra o editor de texto de sua preferência e cole a especificação do objeto no local apropriado do arquivo de recurso.

7
8

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

kubectl apply -f <opsmgr-resource>.yaml
9

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

kubectl get om -o yaml -w

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

Após o recurso do Ops Manager concluir a fase Pending , o comando retorna uma saída semelhante ao seguinte:

status: applicationDatabase: lastTransition: "2020-05-15T16:20:22Z" members: 3 phase: Running type: ReplicaSet version: "8.0.0-ubi8" backup: phase: "" opsManager: lastTransition: "2020-05-15T16:20:26Z" phase: Running replicas: 1 url: http://ops-manager-localmode-svc.mongodb.svc.cluster.local:8080 version: "8.0.0"

Copie o valor do campo status.opsManager.url, que declara a URL de conexão do recurso. Você usa esse valor ao criar um ConfigMap mais tarde no procedimento.

10
  1. Se você ainda não tiver feito isso, conclua os seguintes pré-requisitos:

  2. Implante um MongoDB database no mesmo namespace para o qual você distribuiu o Ops Manager. Certifique-se de que você:

    1. Combine o spec.opsManager.configMapRef.name do recurso ao metadata.name do seu ConfigMap.

    2. Combine o spec.credentials do recurso com o nome do segredo que você criou que contém um par de chaves de API programática do Ops Manager.

MongoDB Agent MongoDB Os contêineres de recursos de banco de dados de dados que você cria com o Kubernetes Operator os arquivos de instalação do MongoDB Ops Manager via Nginx em vez da Internet.