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:
Saiba mais sobre sistemas de clusters multi-Kubernetes.
Revise a lista de serviços e ferramentas de vários clusters Kubernetes.
Instale o Operador Kubernetes em um sistema MongoDB de cluster multi-Kubernetes. Consulte Início Rápido do Multi-Kubernetes-Cluster.
Conclua os pré- requisitos.
Distribua um MongoDBMultiCluster recurso
Você pode usar os seguintes procedimentos nesta aba TLS-Encrypted Connections :
Implemente um recurso
MongoDBMultiClusterRenovar 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 .
Distribua um MongoDBMultiCluster recurso
Crie o segredo para o certificado TLS do seu MongoDBMultiCluster recurso.
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>.
For example, if you call your deployment my-deployment and you set the prefix to mdb, you must name the TLS secret for the client TLS communications mdb-my-deployment-cert. Also, you must name the TLS secret for internal cluster authentication (if enabled) mdb-my-deployment-clusterfile.
Crie o ConfigMap para vincular sua CA com seu MongoDBMultiCluster recurso.
Run the kubectl command to link your CA to your MongoDBMultiCluster resource. Specify the CA certificate file that you must always name ca-pem for the MongoDBMultiCluster resource:
kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \ --namespace=<metadata.namespace> \ create configmap custom-ca -from-file=ca-pem=<your-custom-ca-file>
Configure o kubectl para utilizar o namespace do cluster do operador.
Se você ainda não tiver feito isso, execute os seguintes comandos para executar todos os comandos kubectl no cluster de operadores no namespace padrão.
kubectl config use-context $MDB_CENTRAL_CLUSTER_FULL_NAME kubectl config set-context $(kubectl config current-context) \ --namespace=mongodb
Copie e cole o recurso de amostra.
Copie o arquivo YAML do conjunto de réplicas de amostra e cole-o em um novo arquivo de texto.
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 3 apiVersion: mongodb.com/v1 4 kind: MongoDBMultiCluster 5 metadata: 6 name: multi-replica-set 7 spec: 8 version: 8.0.0 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 ...
Altere as configurações para seus valores preferidos.
Chave | Tipo | Descrição | Exemplo |
|---|---|---|---|
string | Etiqueta para o recurso Os nomes de recursos devem ter 44 caracteres ou menos. Veja também |
| |
string | Versão do MongoDB que este recurso O formato deve ser 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. |
| |
| string | Name of the ConfigMap with the Ops Manager connection configuration. The 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 |
|
| string | Nome do cluster no recurso |
|
| inteiro | O número de nós neste cluster. |
|
| 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 | Veja o exemplo. |
| 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. O objeto Ops Manager Kubernetes Secret contendo as credenciais deve existir no mesmo namespace do recurso que você deseja criar. IMPORTANTE: o operador do Kubernetes rastreia quaisquer alterações no Secret e reconcilia o estado do recurso |
| |
string | Tipo de recurso |
|
Adicione quaisquer configurações aceitas adicionais para uma MongoDBMultiCluster implantação de recurso do.
Você também pode adicionar quaisquer configurações opcionais à especificação do objeto. Consulte Especificação de recursos multi-Kubernetes-Cluster.
Save this replica set config file with a .yaml extension.
Inicie o seu conjunto de réplicas implantação.
Em qualquer diretório, invoque o seguinte comando do Kubernetes para criar seu conjunto de réplicas:
kubectl apply -f <replica-set-conf>.yaml
Monitore o status de sua implantação do MongoDB em cluster multi-Kubernetes.
Para verificar o status do seu recurso MongoDBMultiCluster, utilize o seguinte comando no cluster do operador:
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.
Renovar certificados TLS para um MongoDBMultiCluster recurso
Renove periodicamente seus certificados TLS usando o procedimento a seguir.
Renew the secret for a MongoDBMultiCluster resource.
Run this kubectl command to renew an existing secret that stores the certificates for the MongoDBMultiCluster resource:
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 .
Distribua um MongoDBMultiCluster recurso
Configure o kubectl para utilizar o namespace do cluster do operador.
Se você ainda não tiver feito isso, execute os seguintes comandos para executar todos os comandos kubectl no cluster de operadores no namespace padrão.
kubectl config use-context $MDB_CENTRAL_CLUSTER_FULL_NAME kubectl config set-context $(kubectl config current-context) \ --namespace=mongodb
Copie e cole o recurso de amostra.
Copie o arquivo YAML do conjunto de réplicas de amostra e cole-o em um novo arquivo de texto.
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 3 apiVersion: mongodb.com/v1 4 kind: MongoDBMultiCluster 5 metadata: 6 name: multi-replica-set 7 spec: 8 version: 8.0.0 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 ...
Altere as configurações para seus valores preferidos.
Chave | Tipo | Descrição | Exemplo |
|---|---|---|---|
string | Etiqueta para o recurso Os nomes de recursos devem ter 44 caracteres ou menos. Veja também |
| |
string | Versão do MongoDB que este recurso O formato deve ser 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. |
| |
| string | Name of the ConfigMap with the Ops Manager connection configuration. The 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 |
|
| string | Nome do cluster no recurso |
|
| inteiro | O número de nós neste cluster. |
|
| collection | Opcional. Provides the configuration for the StatefulSet override for each of the cluster's StatefulSets in a multi-Kubernetes cluster MongoDB deployment. If specified at an individual cluster level under | Veja o exemplo. |
| 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. O objeto Ops Manager Kubernetes Secret contendo as credenciais deve existir no mesmo namespace do recurso que você deseja criar. IMPORTANTE: o operador do Kubernetes rastreia quaisquer alterações no Secret e reconcilia o estado do recurso |
| |
string | Tipo de recurso |
|
Adicione quaisquer configurações aceitas adicionais para uma MongoDBMultiCluster implantação de recurso do.
Você também pode adicionar quaisquer configurações opcionais à especificação do objeto. Consulte Especificação de recursos multi-Kubernetes-Cluster.
Save this replica set config file with a .yaml extension.
Inicie o seu conjunto de réplicas implantação.
Em qualquer diretório, invoque o seguinte comando do Kubernetes para criar seu conjunto de réplicas:
kubectl apply -f <replica-set-conf>.yaml
Monitore o status de sua implantação do MongoDB em cluster multi-Kubernetes.
Para verificar o status do seu recurso MongoDBMultiCluster, utilize o seguinte comando no cluster do operador:
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.