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

Configurar um recurso do Ops Manager para usar o modo local

Nesta página

Importante

Configurar o MongoDB Ops Manager para usar o Modo Local no Kubernetes não é recomendado. Considere configurar o MongoDB 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 local com o Kubernetes Operator se os nós em seu cluster do Kubernetes não tiverem acesso à Internet. Os Daemons de Backup e os recursos gerenciados do MongoDB baixam os arquivos de instalação somente de um Volume persistente que você cria para o MongoDB Ops Manager StatefulSet.

Este procedimento abrange o carregamento de arquivos de instalação para o Ops Manager.

Se o MongoDB Ops Manager não tiver acesso à Internet, consulte Configurar a sistema para ter acesso limitado à Internet.

Para compatibilidade, consulte Compatibilidade do MongoDB Enterprise Kubernetes Operator. Para visualizar todas as versões disponíveis para cada imagem, consulte Imagens de container.

  • Implemente um recurso MongoDB Ops Manager . O procedimento a seguir mostra como atualizar seu MongoDB Ops Manager Kubernetes objeto para habilitar o Modo Local.

  • Para evitar o tempo de inatividade ao habilitar o Modo Local, certifique-se de definir spec.replicas para um valor maior que 1 na definição de recursos do Ops Manager.

    Se você atualizou sua definição de recurso do Ops Manager para tornar o Ops Manager altamente disponível, aplique suas alterações antes de iniciar este tutorial:

    kubectl apply -f <opsmgr-resource>.yaml -n <metadata.namespace>
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

Neste tutorial, você atualiza o StatefulSet que managed os Pods do Ops Manager no seu cluster do Kubernetes.

Você deve primeiro excluir o StatefulSet do Ops Manager para que o Kubernetes possa aplicar as atualizações que o modo local exige.

  1. Encontre o nome do seu StatefulSet do Ops Manager:

    kubectl get statefulsets

    A entrada na resposta que corresponde ao metadata.name do seu

    Seu StatefulSet do Ops Manager é a entrada na resposta que corresponde ao metadata.name em sua definição de recurso do Ops Manager.

    kubectl get statefulsets -n mongodb
    NAME READY AGE
    ops-manager-localmode 2/2 2m31s
    ops-manager-localmode-db 3/3 4m46s
  2. Exclua o StatefulSet do Ops Manager:

    Aviso

    Certifique-se de incluir o sinalizador --cascade=false ao excluir seu StatefulSet do Ops Manager. Se você não incluir esse sinalizador, o Kubernetes também excluirá seus Pods do Ops Manager.

    kubectl delete statefulset --cascade=false <ops-manager-statefulset>
3

Copie as linhas 9-31 deste exemplo para:

  • Use a configuração automation.versions.source: local do MongoDB Ops Manager em spec.configuration para habilitar o modo local.

  • Definir um volume persistente para o MongoDB Ops Manager StatefulSet para armazenar o MongoDB arquivo de instalação do . Os contêineres MongoDB Agent em execução nos recursos de banco de dados de dados MongoDB que você cria com o Kubernetes Operator baixam os arquivos de instalação do MongoDB Ops Manager em vez da Internet.

1apiVersion: mongodb.com/v1
2kind: MongoDBOpsManager
3metadata:
4 name: ops-manager-localmode
5spec:
6 replicas: 2
7 version: "6.0.0"
8 adminCredentials: ops-manager-admin-secret
9 configuration:
10 # this enables local mode in Ops Manager
11 automation.versions.source: local
12 statefulSet:
13 spec:
14 # the Persistent Volume Claim will be created for each Ops Manager Pod
15 volumeClaimTemplates:
16 - metadata:
17 name: mongodb-versions
18 spec:
19 accessModes: [ "ReadWriteOnce" ]
20 resources:
21 requests:
22 storage: "20Gi"
23 template:
24 spec:
25 containers:
26 - name: mongodb-ops-manager
27 volumeMounts:
28 - name: mongodb-versions
29 # this is the directory in each Pod where all MongoDB
30 # archives must be put
31 mountPath: /mongodb-ops-manager/mongodb-releases
32 backup:
33 enabled: false
34 applicationDatabase:
35 members: 3
4

Abra seu editor de texto preferido e cole o objeto especificação no local apropriado em seu arquivo de recurso.

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

    kubectl apply -f <opsmgr-resource>.yaml
  2. O Kubernetes cria um novo StatefulSet do Ops Manager quando você aplica as alterações à sua definição de recursos do Ops Manager. Antes de prosseguir para a próxima etapa, execute o seguinte comando para garantir que o StatefulSet do Ops Manager exista:

    kubectl get statefulsets

    O novo StatefulSet do Ops Manager deve mostrar 0 membros prontos:

    kubectl get statefulsets -n mongodb
    NAME READY AGE ops-manager-localmode 0/2 2m31s
    ops-manager-localmode-db 3/3 4m46s
7
  1. Liste os Pods do Ops Manager no seu cluster do Kubernetes:

    kubectl get pods
  2. Excluir um Pod do Ops Manager:

    kubectl delete pod <om-pod-0>
  3. O Kubernetes recria o Pod do Ops Manager que você excluiu. Continue obtendo o status do novo Pod até que ele esteja pronto:

    kubectl get pods

    Quando o novo Pod está inicializando, a saída é semelhante ao exemplo a seguir:

    NAME READY STATUS RESTARTS AGE
    mongodb-enterprise-operator-5648d4c86-k5brh 1/1 Running 0 5m24s
    ops-manager-localmode-0 0/1 Running 0 0m55s
    ops-manager-localmode-1 1/1 Running 0 5m45s
    ops-manager-localmode-db-0 1/1 Running 0 5m19s
    ops-manager-localmode-db-1 1/1 Running 0 4m54s
    ops-manager-localmode-db-2 1/1 Running 0 4m12s

    Quando o novo Pod estiver pronto, o resultado será semelhante ao exemplo a seguir:

    NAME READY STATUS RESTARTS AGE
    mongodb-enterprise-operator-5648d4c86-k5brh 1/1 Running 0 5m24s
    ops-manager-localmode-0 1/1 Running 0 3m55s
    ops-manager-localmode-1 1/1 Running 0 5m45s
    ops-manager-localmode-db-0 1/1 Running 0 5m19s
    ops-manager-localmode-db-1 1/1 Running 0 4m54s
    ops-manager-localmode-db-2 1/1 Running 0 4m12s
  4. Repita as etapas b e c até excluir todos os seus Pods do Ops Manager e confirmar que todos os novos Pods estão prontos.

8

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.

9

Os instaladores que você baixa dependem do ambiente para o qual você distribuiu o operador:

Observação

O exemplo a seguir inclui um link que permite baixar a versão especificada do MongoDB Community Edition. Para baixar qualquer outra versão do MongoDB Community Edition, visite o Centro de Download do MongoDB Community Edition. Para baixar o MongoDB Enterprise, acesse a Central de Download doMongoDB Enterprise .

Baixe o tarball de instalação do RHEL para a versão do MongoDB Server que você deseja que o Kubernetes implemente. Por exemplo, para baixar a versão 6.0.1 :

curl -OL https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-6.0.1.tgz
10

Copie o arquivo MongoDB para cada versão MongoDB que você pretende implantar no Volume Persistente do Ops Manager.

Os comandos que você usa dependem do ambiente para o qual você distribuiu o Kubernetes Operator:

Observação

Se você implantou mais de um Ops Manager replica, copie somente os pacotes de instalação do MongoDB tarball para Replica 1 e além.

Para copiar o arquivo de instalação do MongoDB para o Ops Manager PersistentVolume:

Copie o tarball de instalação do MongoDB Server para o Ops Manager PersistentVolume. Por exemplo, para copiar a versão 6.0.1 :

Replica 0:
kubectl cp mongodb-linux-x86_64-rhel80-6.0.1.tgz \
"ops-manager-localmode-0:/mongodb-ops-manager/mongodb-releases/mongodb-linux-x86_64-rhel80-6.0.1.tgz"
Replica 1:
kubectl cp mongodb-linux-x86_64-rhel80-6.0.1.tgz \
"ops-manager-localmode-1:/mongodb-ops-manager/mongodb-releases/mongodb-linux-x86_64-rhel80-6.0.1.tgz"

Para copiar o arquivo de instalação do MongoDB para o MongoDB Ops Manager PersistentVolume, copie a instalação do MongoDB Server tarball para o MongoDB Ops Manager PersistentVolume. Por exemplo, para copiar a versão 6.0.1 :

Replica 0:
oc rsync "ops-manager-localmode-0:/mongodb-ops-manager/mongodb-releases/mongodb-linux-x86_64-rhel80-6.0.1.tgz" \
mongodb-linux-x86_64-rhel80-6.0.1.tgz
Replica 1:
oc rsync "ops-manager-localmode-1:/mongodb-ops-manager/mongodb-releases/mongodb-linux-x86_64-rhel80-6.0.1.tgz" \
mongodb-linux-x86_64-rhel80-6.0.1.tgz
11
  1. Se você ainda não tiver feito isso, conclua os seguintes pré-requisitos:

  2. Implemente 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.

O MongoDB Agent é executado em contêineres de recursos de banco de dados de dados MongoDB que você cria com o Kubernetes Operator. Baixe os arquivos de instalação do MongoDB Ops Manager em vez de baixá-los da Internet.