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.

Distribuir conjuntos de réplicas em um cluster multikubernetes

Use este procedimento para criar um novo conjunto de réplicas em um cluster Kubernetes de membros em uma implantação do MongoDB de cluster Kubernetes múltiplo.

Esse procedimento permite definir configurações diferentes para o recurso do conjunto de réplicas, como substituições para a configuração statefulSet. Como alternativa ao uso desse procedimento, você pode usar o Início Rápido de Multi-Kubernetes-Cluster, que cria uma implantação do MongoDB de cluster multi-Kubernetes com configurações padrão.

Antes de começar:

Você pode usar os seguintes procedimentos nesta aba TLS-Encrypted Connections :

  • Implemente um recurso MongoDBMultiCluster

  • Renovar certificados TLS para um recurso MongoDBMultiCluster

Esses procedimentos estabelecem conexões criptografadas por TLSentre hosts do MongoDB em um conjunto de réplicas e entre aplicativos clientes e deployments do MongoDB.

Antes de começar, você deve ter certificados válidos para criptografia TLS .

1

Execute o comando kubectl para criar um novo segredo que armazena o certificado de recurso MongoDBMultiCluster :

kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \ --namespace=<metadata.namespace> \ create secret tls <prefix>-<metadata.name>-cert \ --cert=<resource-tls-cert> \ --key=<resource-tls-key>

Observação

É necessário prefixar os segredos com <prefix>-<metadata.name>.

Por exemplo, se você chamar sua implantação my-deployment e definir o prefixo como mdb, deverá nomear o segredo TLS para as comunicações TLS do cliente como mdb-my-deployment-cert. Além disso, você deve nomear o segredo TLS para autenticação interna do cluster (se ativado) como mdb-my-deployment-clusterfile.

2

Execute o comando kubectl para vincular a CA ao seu recurso MongoDBMultiCluster. Especifique o arquivo de certificado CA que você deve sempre nomear ca-pem para o recurso MongoDBMultiCluster:

kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \ --namespace=<metadata.namespace> \ create configmap custom-ca -from-file=ca-pem=<your-custom-ca-file>
3

Se ainda não tiver feito isso, execute os seguintes comandos para executar todos os comandos kubectl no cluster central no namespace padrão.

kubectl config use-context $MDB_CENTRAL_CLUSTER_FULL_NAMEkubectl config set-context $(kubectl config current-context) \ --namespace=mongodb
4
  1. Copie o arquivo YAML do conjunto de réplicas de amostra e cole-o em um novo arquivo de texto.

  2. Altere as configurações do arquivo para corresponder à configuração do conjunto de réplicas desejada.

# This example provides statefulSet overrides per cluster. apiVersion: mongodb.com/v1kind: MongoDBMultiClustermetadata: name: multi-replica-setspec: version: 8.0.0 type: ReplicaSet duplicateServiceObjects: false credentials: my-credentials opsManager: configMapRef: name: my-project clusterSpecList: - clusterName: cluster1.example.com members: 2 statefulSet: spec: template: spec: containers: # Example of custom sidecar containers. Remove it before using the file in production. - name: sidecar1 image: busybox command: [ "sleep" ] args: [ "infinity" ] # Use the following settings to override the default storage size of the "data" Persistent Volume. volumeClaimTemplates: - metadata: name: data spec: resources: requests: storage: 1Gi - clusterName: cluster2.example.com members: 1 statefulSet: spec: template: spec: containers: # Example of custom sidecar containers. Remove it before using the file in production. - name: sidecar2 image: busybox command: [ "sleep" ] args: [ "infinity" ] volumeClaimTemplates: - metadata: name: data spec: resources: requests: storage: 1Gi - clusterName: cluster3.example.com members: 1 statefulSet: spec: template: spec: containers: # Example of custom sidecar containers. Remove it before using the file in production. - name: sidecar3 image: busybox command: [ "sleep" ] args: [ "infinity" ] volumeClaimTemplates: - metadata: name: data spec: resources: requests: storage: 1Gi ...
5
Chave
Tipo
Descrição
Exemplo

string

Etiqueta para o recurso MongoDBMultiCluster .

Os nomes de recursos devem ter 44 caracteres ou menos.

Consulte também metadata.name e nomes na documentação do Kubernetes.

multi-replica-set

string

Versão do MongoDB que este recurso MongoDBMultiCluster deve executar.

O formato deve ser X.Y.Z para a edição Community e X.Y.Z-ent para a edição Enterprise.

IMPORTANTE: Certifique-se de escolher uma versão compatível do MongoDB Server. Versões compatíveis diferem dependendo da imagem base que o recurso do banco de banco de dados MongoDB utiliza.

Para saber mais sobre a versão MongoDB, consulte Versões do MongoDB no Manual MongoDB.

8.0.0

spec
.opsManager
.configMapRef
.name

string

Nome do ConfigMap com a configuração de conexão do Ops Manager. A configuração spec.cloudManager.configMapRef.name é um nome alternativo para essa configuração e pode ser usada como substituto.

Esse valor deve existir no mesmo namespace que o recurso que você deseja criar.

IMPORTANTE: o operador Kubernetes rastreia quaisquer alterações no ConfigMap e reconcilia o estado do recurso MongoDB.

<my-project>

spec
.clusterSpecList
.clusterName

string

Nome do cluster no recurso MongoDBMultiCluster .

cluster1.example.com

spec
.clusterSpecList
.members

inteiro

O número de nós neste cluster.

2

spec
.clusterSpecList
.statefulSet
.spec

collection

Opcional.

Fornece a configuração para a substituição do StatefulSet para cada um dos StatefulSets do cluster em um sistema MongoDB de cluster multi-Kubernetes. Se especificado em um nível de cluster individual em clusterSpecList, substitui a configuração global do StatefulSet para todo o sistema MongoDB do cluster multi-Kubernetes. Consulte Especificação de recursos multi-Kubernetes-Cluster e documentação do StatefulSet v1 apps Kubernetes.

Veja o exemplo.

spec
.clusterSpecList
.statefulSet
.spec
.volumeClaimTemplates
.spec

collection

Opcional. Se especificado, fornece uma substituição por cluster para o tamanho de armazenamento padrão do volumeClaimtemplates, para o volume persistente que armazena os dados.

Veja o exemplo.

string

Nome do secret que você criou como credenciais de autenticação da API do Ops Manager para o Kubernetes Operator se comunicar com o Ops Manager.

No Ops Manager, o secret do Kubernetes que contém as credenciais precisa existir no mesmo namespace que o recurso que você deseja criar.

IMPORTANTE: o operador do Kubernetes rastreia quaisquer alterações no Secret e reconcilia o estado do recurso MongoDB .

<mycredentials>

string

Tipo de recurso MongoDB a ser criado. O único valor suportado para este campo é ReplicaSet. Consulte Limitações.

ReplicaSet

6

Você também pode adicionar quaisquer configurações opcionais à especificação do objeto. Consulte Especificação de recursos multi-Kubernetes-Cluster.

7
8

Em qualquer diretório, invoque o seguinte comando do Kubernetes para criar seu conjunto de réplicas:

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

Para verificar o status do seu recurso MongoDBMultiCluster, use o seguinte comando no cluster central:

kubectl get mdbmc <resource-name> -o yaml -w

Com o sinalizador -w (inspeção) definido, quando a configuração muda, o resultado é atualizado imediatamente até que a fase de status atinja o estado Running . Para saber mais sobre os status de distribuição de recursos, consulte Solucionar problemas do operador Kubernetes.

Renove periodicamente seus certificados TLS usando o procedimento a seguir.

1

Execute este comando kubectl para renovar um segredo existente que armazena os certificados para o recurso MongoDBMultiCluster:

kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \--namespace=<metadata.namespace> \create secret tls <prefix>-<metadata.name>-cert \--cert=<resource-tls-cert> \--key=<resource-tls-key> \--dry-run=client \-o yaml |kubectl apply -f -