Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Início rápido para o operador Kubernetes

Importante

Esta seção é somente para sistemas de cluster Kubernetes únicos. Para sistemas do MongoDB em clusters multi-Kubernetes, consulte Visão geral.

The MongoDB Controllers for Kubernetes Operator uses the Kubernetes API and tools to manage MongoDB clusters running within your Kubernetes cluster. Kubernetes Operator works together with Ops Manager. This tutorial demonstrates how to deploy Ops Manager on Kubernetes and then deploy and connect to your first MongoDB replica set with Kubernetes Operator. You can use Kind to quickly set up a cluster. To learn more, see Kind.

Use this tutorial to evaluate Kubernetes Operator. Because Kind runs a single node on your local machine, the deployment that you create here can't survive node loss and isn't sized for production traffic. After you finish, see Next Steps to learn how to move to a production deployment.

Este tutorial requer:

Se você usar Kind com o Docker Desktop, aloque pelo menos 8 GB de memória e 4 CPUs nas configurações de recurso do Docker Desktop. O Ops Manager requer um mínimo de 5 GB de memória para o aplicativo e recursos adicionais para o banco de dados de aplicativo e o operador Kubernetes.

1
helm repo add mongodb https://mongodb.github.io/helm-charts
2

Para instalar o Operador Kubernetes com Helm, consulte as instruções no repositório.

Exemplo

O seguinte comando instala os Controladores MongoDB para Operador Kubernetes no namespace do mongodb com a opção --create-namespace opcional. Por padrão, o Kubernetes Operator utiliza o namespace default.

helm install kubernetes-operator mongodb/mongodb-kubernetes --namespace mongodb --create-namespace
3

Caso ainda não tenha feito isso, execute o seguinte comando para executar todos os comandos kubectl no namespace que você criou:

kubectl config set-context $(kubectl config current-context) --namespace=mongodb
4

Crie um segredo que contém as credenciais iniciais do usuário administrador do MongoDB Ops Manager. O operador Kubernetes usa esse segredo para configurar o primeiro usuário administrador ao implantar o recurso MongoDB Ops Manager.

Execute o seguinte comando, substituindo os valores do espaço reservado pelas suas credenciais preferidas:

kubectl create secret generic ops-manager-admin-secret \
--from-literal=Username="<admin-email>" \
--from-literal=Password="<admin-password>" \
--from-literal=FirstName="<first-name>" \
--from-literal=LastName="<last-name>"

Observação

Armazene essas credenciais com segurança. Você precisará delas para conectar-se à IU do MongoDB Ops Manager após a implantação.

5
  1. Copie e salve o seguinte arquivo YAML como ops-manager.yaml:

    apiVersion: mongodb.com/v1
    kind: MongoDBOpsManager
    metadata:
    name: ops-manager
    namespace: mongodb
    spec:
    replicas: 1
    version: "8.0.0"
    adminCredentials: ops-manager-admin-secret
    externalConnectivity:
    type: NodePort
    configuration:
    mms.ignoreInitialUiSetup: "true"
    automation.versions.source: "mongodb"
    mms.fromEmailAddr: admin@example.com
    mms.replyToEmailAddr: admin@example.com
    mms.adminEmailAddr: admin@example.com
    mms.mail.transport: smtp
    mms.mail.hostname: localhost
    mms.mail.port: "25"
    backup:
    enabled: false
    applicationDatabase:
    topology: SingleCluster
    members: 3
    version: "8.0.0"

    Para saber mais, consulte a Especificação de recurso do MongoDB Ops Manager.

  2. Execute o seguinte comando:

    kubectl apply -f ops-manager.yaml
6

O operador Kubernetes primeiro implanta o conjunto de réplicas do banco de dados de aplicativo e, em seguida, inicia o aplicativo MongoDB Ops Manager. Esse processo pode levar vários minutos.

Execute o seguinte comando para acompanhar o status do recurso:

kubectl get om -o yaml -w

Aguarde até que a saída mostre as seguintes fases:

status:
applicationDatabase:
phase: Running
opsManager:
phase: Running

Quando ambos os componentes atingirem Running, recupere o URL do MongoDB Ops Manager:

kubectl get om ops-manager -o jsonpath='{.status.opsManager.url}'

Anote esta URL. Você precisará dela para o ConfigMap em uma etapa posterior.

7

Você pode usar a IU do MongoDB Ops Manager para gerar o ConfigMap e o Secret, ou pode criá-los manualmente.

Primeiro, encaminhe a porta de serviço do MongoDB Ops Manager para sua máquina local para que você possa acessar a IU em seu navegador:

kubectl port-forward svc/ops-manager-svc-ext 8080:8080

Em seguida, abra http://localhost:8080 em seu navegador e conecte-se com as credenciais que você criou no segredo do administrador.

Para usar a IU do MongoDB Ops Manager:

  1. Clique em Create New API Keys ou Use Existing API Keys.

  2. Preencha o formulário. Para saber mais, consulte Criar Credenciais para o Operador Kubernetes.

  3. Clique em Generate Key and YAML.

Como alternativa, você pode criar o ConfigMap e o Secret manualmente nas seguintes etapas.

8

Se você gerou o ConfigMap na IU do Ops Manager, copie e salve o arquivo config-map.yaml gerado. Caso contrário, crie e salve o seguinte arquivo. Defina data.baseUrl como o URL da sua instância do Ops Manager em status.opsManager.url.

Exemplo:

apiVersion: v1
kind: ConfigMap
metadata:
name: my-project
namespace: mongodb
data:
baseUrl: http://ops-manager-svc.mongodb.svc.cluster.local:8080
projectName: my-project
orgId: <your-org-id>

Substitua <your-org-id> pelo ID da organização do Ops Manager. Você pode encontrar esse valor na URL da IU do Ops Manager: http://<ops-manager-url>/v2#/org/<orgId>/projects.

Para saber mais, consulte as descrições do parâmetro.

9

If you generated the Secret from the Ops Manager UI, copy and save the generated secret.yaml file. Otherwise, create a secret that contains the API keys for your Ops Manager Organization.

Exemplo:

apiVersion: v1
kind: Secret
metadata:
name: organization-secret
namespace: mongodb
stringData:
publicKey: <public_key>
privateKey: <private_key>

Para criar chaves de API programáticas, consulte Criar credenciais para o operador Kubernetes.

10

Execute o seguinte comando:

kubectl apply -f secret.yaml -f config-map.yaml
11
  1. Copie e salve o seguinte arquivo YAML:

    apiVersion: mongodb.com/v1
    kind: MongoDB
    metadata:
    name: demo-mongodb-cluster-1
    namespace: mongodb
    spec:
    members: 3
    version: 8.0.0
    type: ReplicaSet
    security:
    authentication:
    enabled: true
    modes: ["SCRAM"]
    opsManager:
    configMapRef:
    name: my-project
    credentials: organization-secret
    persistent: true
    podSpec:
    podTemplate:
    spec:
    containers:
    - name: mongodb-enterprise-database
    resources:
    limits:
    cpu: 2
    memory: 1.5G
    requests:
    cpu: 1
    memory: 1G
    persistence:
    single:
    storage: 10Gi
  2. Execute o seguinte comando:

    kubectl apply -f <replica-set-conf>.yaml
12

Escolha uma senha para o usuário de banco de dados MongoDB e armazene-a em um segredo. Esta senha pode ser qualquer valor que você escolher. Você faz referência a este segredo ao criar o usuário do banco de dados na próxima etapa.

Você pode armazenar a senha como texto simples (usando stringData) ou como um valor codificado em Base64(usando data).

Para uma senha de texto não criptografado, crie e salve o seguinte arquivo YAML:

apiVersion: v1
kind: Secret
metadata:
name: mms-user-1-password
# corresponds to user.spec.passwordSecretKeyRef.name
type: Opaque
stringData:
password: <my-plain-text-password>
# corresponds to user.spec.passwordSecretKeyRef.key

Para obter uma senha codificada em Base64, crie e salve o seguinte arquivo YAML:

apiVersion: v1
kind: Secret
metadata:
name: mms-user-1-password
# corresponds to user.spec.passwordSecretKeyRef.name
type: Opaque
data:
password: <base-64-encoded-password>
# corresponds to user.spec.passwordSecretKeyRef.key

Substitua o placeholder pela senha escolhida. Para saber mais, consulte Gerenciar usuários de banco de dados usando a autenticação SCRAM.

13
  1. Copie e salve o seguinte arquivo de Especificação de recursos do usuário do MongoDB:

    apiVersion: mongodb.com/v1
    kind: MongoDBUser
    metadata:
    name: mms-scram-user-1
    spec:
    passwordSecretKeyRef:
    name: mms-user-1-password
    # Match to metadata.name of the User Secret
    key: password
    username: "mms-scram-user-1"
    db: "admin" #
    mongodbResourceRef:
    name: "demo-mongodb-cluster-1"
    # Match to MongoDB resource using authentication
    roles:
    - db: "admin"
    name: "clusterAdmin"
    - db: "admin"
    name: "userAdminAnyDatabase"
    - db: "admin"
    name: "readWrite"
  2. Execute o seguinte comando:

    kubectl apply -f <database-user-conf>.yaml
14

Você pode visualizar o usuário recém-criado no Cloud Manager ou Ops Manager:

  1. Na visualização Deployment do projeto, clique na guia Security.

  2. Clique no separador MongoDB Users aninhado.

15

Execute as seguintes etapas no aplicativo MongoDB Ops Manager:

  1. Clique em Deployment na navegação à esquerda.

  2. Clique em para o sistema ao qual você deseja se conectar.

  3. Clique em Connect to this instance.

  4. Execute o comando de conexão em um terminal para se conectar ao sistema.

A implantação que você criou executa em um único nó Kind e usa as configurações de recurso padrão. Para passar desta implantação de avaliação para uma implantação de produção:

  1. Planeje a implantação de produção para escolher uma arquitetura, confirmar a compatibilidade da versão e definir o escopo de implantação do Kubernetes operador.

  2. Instale o operador do Kubernetes em um cluster de produção do Kubernetes que tenha mais de um nó e um storageClass que suporte a expansão de volume.

  3. Aplique as melhores práticas de produção para armazenamento, persistência, zonas de disponibilidade e limites de recursos.

  4. Proteger a implantação com TLS, autenticação e criptografia em descanso.

  5. Implantar em vários clusters Kubernetes se você precisar sobreviver à perda de um cluster Kubernetes inteiro.

Avalie esta página