Menu Docs
Página inicial do Docs
/
Operador de Kubernetes do MongoDB Enterprise
/

Configurar um recurso do Ops Manager para usar o modo remoto

Nesta página

Em uma configuração padrão, os agente MongoDB e Backup Daemon acessam os arquivos de instalação do MongoDB pela Internet da MongoDB, Inc.

Você poderá configurar o Ops Manager para ser executado no modo remoto com o Operador Kubernetes se os nós do cluster do Kubernetes não tiverem acesso à Internet. Os Backup Daemon e os recursos managed do MongoDB baixam os arquivos de instalação somente do Ops Manager, que faz o proxy das solicitações de download por proxy para um endpoint HTTP em um servidor Web local ou armazenamento compatível com o S3 implantado em seu cluster Kubernetes.

Este procedimento aborda a implantação de um servidor HTTP Nginx em seu cluster Kubernetes para hospedar os arquivos de instalação do MongoDB.

Implantar um recurso Ops Manager. O procedimento a seguir mostra como atualizar seu objeto Kubernetes do Ops Manager para ativar o Modo Remoto.

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 do 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:

    1---
    2apiVersion: v1
    3kind: ConfigMap
    4metadata:
    5 name: nginx-conf
    6data:
    7 nginx.conf: |
    8 events {}
    9 http {
    10 server {
    11 server_name localhost;
    12 listen 80;
    13 location /linux/ {
    14 alias /mongodb-ops-manager/mongodb-releases/linux/;
    15 }
    16 location /tools/ {
    17 alias /tools/;
    18 }
    19 }
    20 }
    21...
  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 containers de inicialização que usam curl comandos para baixar os arquivos de instalação que o Nginx fornece aos recursos do banco de dados MongoDB que você implementa em seu cluster Kubernetes.

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:

    1---
    2apiVersion: v1
    3kind: Service
    4metadata:
    5 name: nginx-svc
    6 labels:
    7 app: nginx
    8spec:
    9 ports:
    10 - port: 80
    11 protocol: TCP
    12 selector:
    13 app: nginx
    14...
  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.

1---
2apiVersion: mongodb.com/v1
3kind: MongoDBOpsManager
4metadata:
5 name: ops-manager-localmode
6spec:
7 replicas: 1
8 version: "6.0.0"
9 adminCredentials: ops-manager-admin-secret
10 configuration:
11 # this enables remote mode in Ops Manager
12 automation.versions.source: remote
13 automation.versions.download.baseUrl: "http://nginx-svc.<namespace>.svc.cluster.local:8080"
14
15 backup:
16 enabled: false
17
18 applicationDatabase:
19 members: 3
20...
6

Abra seu editor de texto preferido e cole o objeto especificação no local apropriado em seu 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:

1status:
2 applicationDatabase:
3 lastTransition: "2020-05-15T16:20:22Z"
4 members: 3
5 phase: Running
6 type: ReplicaSet
7 version: "4.4.5-ubi8"
8 backup:
9 phase: ""
10 opsManager:
11 lastTransition: "2020-05-15T16:20:26Z"
12 phase: Running
13 replicas: 1
14 url: http://ops-manager-localmode-svc.mongodb.svc.cluster.local:8080
15 version: "6.0.0"

Copie o valor do status.opsManager.url campo , que declara o URL de conexão do recurso. Você usa esse valor quando cria 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.

Os agente MongoDB em execução nos container de reconhecimento de data center MongoDB que você cria com o Kubernetes baixam os arquivos de instalação do Ops Manager via Nginx em vez da Internet.

← Implantar um recurso Ops Manager