Configurar um recurso do Ops Manager para usar o modo remoto
Nesta página
- Pré-requisitos e considerações
- Procedimento
- Configure o
kubectl
como padrão para seu namespace. - Crie um ConfigMap para Nginx.
- Implemente o Nginx em seu cluster Kubernetes.
- Crie um serviço Kubernetes para tornar o Nginx acessível a partir de outros pods no seu cluster.
- Copie e atualize os campos destacados 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.
- Monitore o status da sua instância do Ops Manager.
- Implemente um Recurso de Banco de MongoDB database .
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 .
Pré-requisitos e considerações
Procedimento
O procedimento a seguir implementa um servidor HTTP Nginx em seu cluster Kubernetes para hospedar os arquivos de instalação do MongoDB .
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>
Crie um ConfigMap para Nginx.
O ConfigMap neste tutorial configura o Nginx para:
Execute um servidor HTTP chamado
localhost
escutando na porta80
em um nó no cluster do Kubernetes eDirecione 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.
Cole o seguinte exemplo Nginx ConfigMap em um editor de texto:
1 2 apiVersion: v1 3 kind: ConfigMap 4 metadata: 5 name: nginx-conf 6 data: 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 ... Salve este arquivo com uma extensão de arquivo
.yaml
.Crie o Nginx ConfigMap invocando o seguinte comando
kubectl
no arquivo ConfigMap que você criou:kubectl apply -f <nginix-configmap>.yaml
Implemente o Nginx em seu cluster Kubernetes.
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.
Cole o seguinte exemplo de configuração de recurso Nginx em um editor de texto:
1 2 apiVersion: apps/v1 3 kind: Deployment 4 metadata: 5 name: nginx-deployment 6 spec: 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 ... 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 - 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
- Para carregar várias versões, anexe comandos
Salve este arquivo com uma extensão de arquivo
.yaml
.Implemente o Nginx invocando o seguinte comando
kubectl
no arquivo de recurso do Nginx que você criou:kubectl apply -f <nginix>.yaml
Cole o seguinte exemplo de configuração de recurso Nginx em um editor de texto:
1 2 apiVersion: apps/v1 3 kind: Deployment 4 metadata: 5 name: nginx-deployment 6 spec: 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 ... 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 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 Salve este arquivo com uma extensão de arquivo
.yaml
.Implemente o Nginx invocando o seguinte comando
oc
no arquivo de recurso do Nginx que você criou:oc apply -f <nginix>.yaml
Crie um serviço Kubernetes para tornar o Nginx acessível a partir de outros pods no seu cluster.
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:
Cole o seguinte serviço de exemplo em um editor de texto:
1 2 apiVersion: v1 3 kind: Service 4 metadata: 5 name: nginx-svc 6 labels: 7 app: nginx 8 spec: 9 ports: 10 - port: 80 11 protocol: TCP 12 selector: 13 app: nginx 14 ... Salve este arquivo com uma extensão de arquivo
.yaml
.Crie o serviço invocando o seguinte comando
kubectl
no arquivo de serviço que você criou:kubectl apply -f <nginix-service>.yaml
Copie e atualize os campos destacados deste recurso do Ops Manager.
A seção destacada usa as seguintes definições de configuração do Ops Manager:
automation.versions.source: remote
emspec.configuration
para habilitar o modo remoto.automation.versions.download.baseUrl
emspec.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"
emspec.configuration
para ajudar a garantir que as compilações corporativas não tenham problemas.
1 2 apiVersion: mongodb.com/v1 3 kind: MongoDBOpsManager 4 metadata: 5 name: ops-manager-localmode 6 spec: 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 ...
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.
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.
Implemente um Recurso de Banco de MongoDB database .
Se você ainda não tiver feito isso, conclua os seguintes pré-requisitos:
Implante 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.
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.