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

    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.

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

    1---
    2apiVersion: apps/v1
    3kind: Deployment
    4metadata:
    5 name: nginx-deployment
    6spec:
    7 replicas: 1
    8 selector:
    9 matchLabels:
    10 app: nginx
    11 template:
    12 metadata:
    13 labels:
    14 app: nginx
    15 spec:
    16 containers:
    17 - image: nginx:1.14.2
    18 imagePullPolicy: IfNotPresent
    19 name: nginx
    20 ports:
    21 - containerPort: 80
    22 volumeMounts:
    23 - mountPath: /mongodb-ops-manager/mongodb-releases/linux
    24 name: mongodb-versions
    25 - mountPath: /tools/db/
    26 name: mongodb-tools
    27 - name: nginx-conf
    28 mountPath: /etc/nginx/nginx.conf
    29 subPath: nginx.conf
    30 initContainers:
    31 - name: setting-up-rhel-mongodb
    32 image: curlimages/curl:latest
    33 command:
    34 - curl
    35 - -L
    36 - https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-6.0.1.tgz
    37 - -o
    38 - /mongodb-ops-manager/mongodb-releases/linux/mongodb-linux-x86_64-rhel80-6.0.1.tgz
    39 volumeMounts:
    40 - name: mongodb-versions
    41 mountPath: /mongodb-ops-manager/mongodb-releases/linux
    42 - name: setting-up-rhel-mongodb-tools
    43 image: curlimages/curl:latest
    44 command:
    45 - curl
    46 - -L
    47 - https://fastdl.mongodb.org/tools/db/mongodb-database-tools-rhel80-x86_64-100.6.0.tgz
    48 - -o
    49 - /tools/db/mongodb-database-tools-rhel80-x86_64-100.6.0.tgz
    50 volumeMounts:
    51 - name: mongodb-tools
    52 mountPath: /tools/db/
    53 restartPolicy: Always
    54 terminationGracePeriodSeconds: 30
    55 volumes:
    56 - name: mongodb-versions
    57 emptyDir: {}
    58 - name: mongodb-tools
    59 emptyDir: {}
    60 - configMap:
    61 name: nginx-conf
    62 name: nginx-conf
    63...
  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 4.0.2 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-6.0.1.tgz
    - -o
    - /mongodb-ops-manager/mongodb-releases/linux/mongodb-linux-x86_64-rhel80-6.0.1.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 6.0.1:

    - name: setting-up-rhel-mongodb
    image: curlimages/curl:latest
    command:
    - curl
    - -L
    - https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-6.0.1.tgz
    - -o
    - /mongodb-ops-manager/mongodb-releases/linux/mongodb-linux-x86_64-rhel80-6.0.1.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
  1. Cole o seguinte exemplo de configuração de recurso Nginx em um editor de texto:

    1---
    2apiVersion: apps/v1
    3kind: Deployment
    4metadata:
    5 name: nginx-deployment
    6spec:
    7 replicas: 1
    8 selector:
    9 matchLabels:
    10 app: nginx
    11 template:
    12 metadata:
    13 labels:
    14 app: nginx
    15 spec:
    16 containers:
    17 - image: nginx:1.14.2
    18 imagePullPolicy: IfNotPresent
    19 name: nginx
    20 ports:
    21 - containerPort: 80
    22 volumeMounts:
    23 - mountPath: /mongodb-ops-manager/mongodb-releases/linux
    24 name: mongodb-versions
    25 - mountPath: /tools/db/
    26 name: mongodb-tools
    27 - name: nginx-conf
    28 mountPath: /etc/nginx/nginx.conf
    29 subPath: nginx.conf
    30 initContainers:
    31 - name: setting-up-rhel-mongodb
    32 image: curlimages/curl:latest
    33 command:
    34 - curl
    35 - -L
    36 - https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel<version>-4.2.0.tgz
    37 - -o
    38 - /mongodb-ops-manager/mongodb-releases/linux/mongodb-linux-x86_64-rhel<version>-4.2.0.tgz
    39 volumeMounts:
    40 - name: mongodb-versions
    41 mountPath: /mongodb-ops-manager/mongodb-releases/linux
    42 - name: setting-up-rhel-mongodb-tools
    43 image: curlimages/curl:latest
    44 command:
    45 - curl
    46 - -L
    47 - https://fastdl.mongodb.org/tools/db/mongodb-database-tools-rhel<version>-x86_64-100.1.0.tgz
    48 - -o
    49 - /tools/db/mongodb-database-tools-rhel<version>-x86_64-100.1.0.tgz
    50 volumeMounts:
    51 - name: mongodb-tools
    52 mountPath: /tools/db/
    53 restartPolicy: Always
    54 terminationGracePeriodSeconds: 30
    55 volumes:
    56 - name: mongodb-versions
    57 emptyDir: {}
    58 - name: mongodb-tools
    59 emptyDir: {}
    60 - configMap:
    61 name: nginx-conf
    62 name: nginx-conf
    63...
  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 4.0.2 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-rhel<version>-4.2.0.tgz
    - -o
    - /mongodb-ops-manager/mongodb-releases/linux/mongodb-linux-x86_64-rhel<version>-4.2.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-rhel<version>-x86_64-100.1.0.tgz
    - -o
    - /tools/db/mongodb-database-tools-rhel<version>-x86_64-100.1.0.tgz
  3. Para carregar várias versões, acrescente comandos curl ao initContainer apropriado para cada versão que você deseja que o Nginx forneça.

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

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

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

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

    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 campo status.opsManager.url , que declara oURL 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.

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.