Usa el plugin kubectl mongodb para:
Antes de comenzar, instale el plugin de kubectl MongoDB.
El kubectl mongodb plugin tiene los siguientes subcomandos:
subcomando configurar
El subcomando kubectl mongodb multicluster setup configura la implementación inicial de MongoDB en múltiples clústeres Kubernetes. Realiza las siguientes acciones:
Crea un ConfigMap por defecto llamado
mongodb-kubernetes-operator-member-listque contiene todos los nodos clústeres de la implementación multi-Kubernetes de MongoDB. Este nombre está codificado y no puedes cambiarlo. Ver Problemas conocidos.Crea ServiceAccounts, Roles, ClusterRoles, RoleBindings y ClusterRoleBindings en el clúster de operador y cada clúster nodo.
Aplica los permisos correctos para las cuentas de servicio.
Utiliza la configuración anterior para crear tu implementación MongoDB multi-clúster de Kubernetes.
Opciones de subcomando de configuración
El subcomando setup del plugin kubectl mongodb tiene las siguientes opciones:
Opción | Tipo de dato | Descripción |
|---|---|---|
| string | Requerido. Clúster central en el que se implementará el Operador de Kubernetes, como: |
| string | Obligatorio. Namespace donde se implementará el operador de Kubernetes, como: |
| booleano | opcional. Bandera que indica si se deben borrar todos los recursos creados previamente, excepto los espacios de nombres. El valor por defecto es |
| booleano | opcional. Bandera que indica si se deben crear ClusterRole y ClusterRoleBindings para clústeres nodos. El valor por defecto es |
| booleano | Optional. Flag that indicates whether to create secrets for the service accounts in the Kubernetes API server. Default value is |
| booleano | opcional. Señalización que indica si se deben instalar las cuentas de servicio y roles necesarios para ejecutar cargas de trabajo de MongoDB en los clústeres nodos. El valor por defecto es |
| booleano | opcional. Señal que indica si las cuentas de servicio que crea el plugin |
| string | Obligatorio. Lista separada por comas que contiene clústeres nodos, como: |
| string | Optional. Path to a PEM-encoded CA bundle that the Kubernetes Operator uses to reach a member cluster's Kubernetes API server, in the format |
| string | Obligatorio. Espacio de nombres al que se implementarán los recursos del clúster nodo, como: |
| string | opcional. Nombre de la cuenta de servicio que el Operador de Kubernetes debe usar para comunicarse con los clústeres nodos. El valor por defecto es |
Para ver un ejemplo completo del uso del subcomando kubectl mongodb plugin setup, consulta el inicio rápido de múltiples clústeres de Kubernetes.
Recuperar subcomando
El subcomando kubectl mongodb multicluster puede recuperar automáticamente una topología de clúster fallida en algunos casos. En otros casos, debe recuperarse manualmente de una falla. Para obtener más información, consulta Recuperación ante Desastres.
opciones del subcomando recover
El subcomando recover del plugin kubectl mongodb tiene las siguientes opciones:
Opción | Tipo de dato | Descripción |
|---|---|---|
| string | Requerido. Clúster central en el que se implementará el Operador de Kubernetes, como: |
| string | Obligatorio. Namespace donde se implementará el operador de Kubernetes, como: |
| booleano | opcional. Bandera que indica si se deben borrar todos los recursos creados previamente, excepto los espacios de nombres. El valor por defecto es |
| booleano | opcional. Bandera que indica si se deben crear ClusterRole y ClusterRoleBindings para clústeres nodos. El valor por defecto es |
| string | Optional. Path to a PEM-encoded CA bundle that the Kubernetes Operator uses to reach a member cluster's Kubernetes API server, in the format |
Para un ejemplo completo del uso del subcomando kubectl mongodb plugin recover, consulta el procedimiento manual de recuperación ante desastres.
Paquetes de CA personalizados para clústeres miembros
By default, the kubectl mongodb plugin reads the CA for each member cluster from that cluster's service account token secret and writes it to the generated mongodb-enterprise-operator-multi-cluster-kubeconfig secret. In some cases, you might want to supply a custom CA bundle, for example: when the network path from the Kubernetes Operator to a member cluster's Kubernetes API server terminates TLS elsewhere, such as at a proxy or load balancer that presents its own certificate. Use the member-cluster-ca option to supply a custom CA bundle.
El siguiente comando proporciona un paquete CA para dos de los tres clústeres miembros:
kubectl mongodb multicluster setup \ --central-cluster="operator-cluster" \ --member-clusters="cluster-1,cluster-2,cluster-3" \ --member-cluster-namespace=mongodb \ --central-cluster-namespace=mongodb \ --member-cluster-ca cluster-1=/path/to/cluster-1-ca.pem \ --member-cluster-ca cluster-2=/path/to/cluster-2-ca.pem
In the preceding example, cluster-3 keeps the CA from its service account token secret.
Requisitos del paquete CA
The kubectl mongodb plugin copies the file contents into the KubeConfig secret without modification, so pass certificates only. Each file must meet the following requirements:
Contiene al menos un certificado codificado en formato PEM.
Contains no private key. A bundle that a TLS terminator exports might place the server key next to its certificate. The plugin rejects such a bundle with the error
found a private key (<block type> block), pass certificates only.
The plugin also returns an error if you pass a malformed <member-cluster-name>=<path-to-pem-file> pair, name a member cluster that member-clusters doesn't list, or name the same member cluster more than once.
Carreras repetidas
Both the setup and recover subcommands regenerate the entire KubeConfig secret. If you omit a member cluster from member-cluster-ca on a later run, that cluster reverts to the CA from its service account token secret. To preserve a custom CA, every time you run either subcommand make sure to re-pass the member-cluster-ca option for every member cluster that requires one.
Cuando un subcomando reemplaza una CA que no coincide con el secreto del token de la cuenta de servicio del clúster miembro, el complemento imprime una advertencia similar a la siguiente:
Warning: replacing the CA for member cluster cluster-1, which does not match its ServiceAccount token secret. Pass --member-cluster-ca cluster-1=<path-to-pem-file> to keep a custom CA.
La advertencia es meramente informativa. El subcomando se completa igualmente y escribe el nuevo secreto de KubeConfig.