Configurar um recurso do Ops Manager para usar o modo local
Nesta página
- Pré-requisitos
- Procedimento
- Configure o
kubectl
como padrão para seu namespace. - Exclua o StatefulSet que gerencia seus Pods do Ops Manager.
- Copie os campos deste recurso do Ops Manager.
- Cole a seção de exemplo copiada em seu recurso existente do Ops Manager.
- Salve seu arquivo de configuração do Ops Manager.
- Aplique as alterações à sua implantação do Ops Manager.
- De forma contínua, exclua seus Pods antigos do Ops Manager.
- Monitore o status da sua instância do Ops Manager.
- Baixe o arquivo de instalação MongoDB para sua máquina local.
- Copie o arquivo MongoDB para o Volume Persistente do Ops Manager.
- Implemente um Recurso de Banco de MongoDB database .
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.
Pré-requisitos
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 que1
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>
Procedimento
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>
Exclua o StatefulSet que gerencia seus Pods do Ops Manager.
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.
Encontre o nome do seu StatefulSet do Ops Manager:
kubectl get statefulsets A entrada na resposta que corresponde ao
metadata.name
do seuSeu 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 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>
Copie os campos deste recurso do Ops Manager.
Copie as linhas 9-31 deste exemplo para:
Use a configuração
automation.versions.source: local
do MongoDB Ops Manager emspec.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.
1 apiVersion: mongodb.com/v1 2 kind: MongoDBOpsManager 3 metadata: 4 name: ops-manager-localmode 5 spec: 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
Cole a seção de exemplo copiada em seu recurso existente do Ops Manager.
Abra seu editor de texto preferido e cole o objeto especificação no local apropriado em seu arquivo de recurso.
Aplique as alterações à sua implantação do Ops Manager.
Invoque o seguinte comando
kubectl
no nome do arquivo da definição de recurso do Ops Manager:kubectl apply -f <opsmgr-resource>.yaml 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
De forma contínua, exclua seus Pods antigos do Ops Manager.
Liste os Pods do Ops Manager no seu cluster do Kubernetes:
kubectl get pods Excluir um Pod do Ops Manager:
kubectl delete pod <om-pod-0> 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 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.
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
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:
1 status: 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.
Baixe o arquivo de instalação MongoDB para sua máquina local.
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
Copie o arquivo MongoDB para o Volume Persistente do Ops Manager.
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
:
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"
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
:
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
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
Implemente um Recurso de Banco de MongoDB database .
Se você ainda não tiver feito isso, conclua os seguintes pré-requisitos:
Implemente um MongoDB database no mesmo namespace para o qual você distribuiu o Ops Manager. Certifique-se de que você:
Combine o
spec.opsManager.configMapRef.name
do recurso aometadata.name
do seu ConfigMap.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.