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

Distribuir conjuntos de réplicas em um cluster multikubernetes

Nesta página

  • Distribuir um recurso do MongoDBMultiCluster

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 um sistema do MongoDB de multi-Kubernetes 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 porTLS entre hosts MongoDB em um conjunto de réplicas e entre aplicativos cliente 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 de e definir o prefixo como mdb, deverá nomear o segredo TLS para as comunicações TLS do cliente 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 sua CA ao seu recurso MongoDBMultiCluster . Especifique o arquivo de certificado da 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_NAME
kubectl 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.

1# This example provides statefulSet overrides per cluster.
2
3apiVersion: mongodb.com/v1
4kind: MongoDBMultiCluster
5metadata:
6 name: multi-replica-set
7spec:
8 version: 6.0.0-ent
9 type: ReplicaSet
10 duplicateServiceObjects: false
11 credentials: my-credentials
12 opsManager:
13 configMapRef:
14 name: my-project
15 clusterSpecList:
16 - clusterName: cluster1.example.com
17 members: 2
18 statefulSet:
19 spec:
20 template:
21 spec:
22 containers:
23 # Example of custom sidecar containers. Remove it before using the file in production.
24 - name: sidecar1
25 image: busybox
26 command: [ "sleep" ]
27 args: [ "infinity" ]
28 # Use the following settings to override the default storage size of the "data" Persistent Volume.
29 volumeClaimTemplates:
30 - metadata:
31 name: data
32 spec:
33 resources:
34 requests:
35 storage: 1Gi
36 - clusterName: cluster2.example.com
37 members: 1
38 statefulSet:
39 spec:
40 template:
41 spec:
42 containers:
43 # Example of custom sidecar containers. Remove it before using the file in production.
44 - name: sidecar2
45 image: busybox
46 command: [ "sleep" ]
47 args: [ "infinity" ]
48 volumeClaimTemplates:
49 - metadata:
50 name: data
51 spec:
52 resources:
53 requests:
54 storage: 1Gi
55 - clusterName: cluster3.example.com
56 members: 1
57 statefulSet:
58 spec:
59 template:
60 spec:
61 containers:
62 # Example of custom sidecar containers. Remove it before using the file in production.
63 - name: sidecar3
64 image: busybox
65 command: [ "sleep" ]
66 args: [ "infinity" ]
67 volumeClaimTemplates:
68 - metadata:
69 name: data
70 spec:
71 resources:
72 requests:
73 storage: 1Gi
74
75...
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.

6.0.0-ent
spec
.opsManager
.configMapRef
string

Nome do ConfigMap com a configuração de conexão MongoDB Ops Manager do . 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 o StatefulSet substituição para cada um dos StatefulSets do cluster em uma implantação do 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 v apps do Kubernetes.1

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 ao objeto especificação. 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 do MongoDBMultiCluster , utilize 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 kubectl comando para renovar um segredo existente que armazena os certificados para o MongoDBMultiCluster recurso :

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 -

Este procedimento não criptografa conexões entre hosts MongoDB em um conjunto de réplicas e entre aplicativos cliente e MongoDB .

1

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_NAME
kubectl config set-context $(kubectl config current-context) \
--namespace=mongodb
2
  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.

1# This example provides statefulSet overrides per cluster.
2
3apiVersion: mongodb.com/v1
4kind: MongoDBMultiCluster
5metadata:
6 name: multi-replica-set
7spec:
8 version: 6.0.0-ent
9 type: ReplicaSet
10 duplicateServiceObjects: false
11 credentials: my-credentials
12 opsManager:
13 configMapRef:
14 name: my-project
15 clusterSpecList:
16 - clusterName: cluster1.example.com
17 members: 2
18 statefulSet:
19 spec:
20 template:
21 spec:
22 containers:
23 # Example of custom sidecar containers. Remove it before using the file in production.
24 - name: sidecar1
25 image: busybox
26 command: [ "sleep" ]
27 args: [ "infinity" ]
28 # Use the following settings to override the default storage size of the "data" Persistent Volume.
29 volumeClaimTemplates:
30 - metadata:
31 name: data
32 spec:
33 resources:
34 requests:
35 storage: 1Gi
36 - clusterName: cluster2.example.com
37 members: 1
38 statefulSet:
39 spec:
40 template:
41 spec:
42 containers:
43 # Example of custom sidecar containers. Remove it before using the file in production.
44 - name: sidecar2
45 image: busybox
46 command: [ "sleep" ]
47 args: [ "infinity" ]
48 volumeClaimTemplates:
49 - metadata:
50 name: data
51 spec:
52 resources:
53 requests:
54 storage: 1Gi
55 - clusterName: cluster3.example.com
56 members: 1
57 statefulSet:
58 spec:
59 template:
60 spec:
61 containers:
62 # Example of custom sidecar containers. Remove it before using the file in production.
63 - name: sidecar3
64 image: busybox
65 command: [ "sleep" ]
66 args: [ "infinity" ]
67 volumeClaimTemplates:
68 - metadata:
69 name: data
70 spec:
71 resources:
72 requests:
73 storage: 1Gi
74
75...
3
Chave
Tipo
Descrição
Exemplo
string

Etiqueta para o recurso MongoDBMultiCluster .

Os nomes de recursos devem ter 44 caracteres ou menos.

Veja 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.

6.0.0-ent
spec
.opsManager
.configMapRef
string

Nome do ConfigMap com a configuração de conexão MongoDB Ops Manager do . 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 o StatefulSet substituição para cada um dos StatefulSets do cluster em uma implantação do 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 v apps do Kubernetes.1

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
4

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

5
6

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

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

Para verificar o status do seu recurso do MongoDBMultiCluster , utilize 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.

Voltar

Início rápido