El operador de controladores de MongoDB para Kubernetes utiliza un ConfigMap de Kubernetes para vincularse a un único proyecto de Ops Manager. Si el proyecto referenciado no existe, el operador de Kubernetes lo crea según la projectName configuración que se proporciona en el ConfigMap.
Para crear un ConfigMap de operador de Kubernetes, puedes editar unas líneas del ConfigMap de ejemplo archivo YAML y aplicar el ConfigMap. Para ver un ejemplo completo, consulta el archivo project.yaml.
También puedes utilizar la Interfaz de Usuario del MongoDB Cloud Manager o la Interfaz de Usuario del Ops Manager para crear o elegir un proyecto, y generar automáticamente el archivo ConfigMap YAML, que luego puedes aplicar a tu entorno de Kubernetes.
Considerations
Solo puede implementar un recurso de MongoDB por proyecto. Este límite se aplica porque Ops Manager solo admite un método de autenticación para el acceso del usuario de base de datos por Proyecto. Para obtener más información, consulte Implementar un recurso de base de datos de MongoDB.
Debes vincular una implementación de MongoDB Controllers for Kubernetes Operator a un proyecto de Ops Manager único. Puedes crear un ConfigMap distinto para cada instancia de MongoDB Controllers for Kubernetes Operator que implementes, o bien reutilizar el mismo ConfigMap para cualquier número de implementaciones
data.projectNameomitiendo, de modo que los nombres de los proyectos coincidan con los nombres de los recursos implementados. Si se proporciona un nombre de proyecto en el ConfigMap, si este aún no existe, se creará.
Importante
Puedes usar el Operador de Kubernetes para implementar recursos de MongoDB con Cloud Manager y con Ops Manager versión 6.0.x o posterior.
Puedes usar el Atlas Operator para implementar recursos de MongoDB en Atlas.
Requisitos previos
Kubernetes versión 1.11 o posterior u Openshift versión 3.11 o posterior.
Controladores de MongoDB para el operador de Kubernetes
Crear un Proyecto Usando un ConfigMap
Configura kubectl para que sea por defecto en tu namespace.
Si aún no lo ha hecho, ejecute el siguiente comando para ejecutar todos los comandos de kubectl en el namespace que creó.
Nota
Si estás implementando un recurso de Ops Manager en una implementación de MongoDB multidispositivo en clústeres de Kubernetes:
Defina
contextcomo el nombre del clúster operador, por ejemplo:kubectl config set context "$MDB_CENTRAL_CLUSTER_FULL_NAME".Establece el
--namespaceen el mismo ámbito que utilizaste para tu implementación de MongoDB de clústeres multi-Kubernetes, como por ejemplo:kubectl config --namespace "mongodb".
kubectl config set-context $(kubectl config current-context) --namespace=<metadata.namespace>
Invoca el siguiente comando para crear un ConfigMap.
cat <<EOF | kubectl apply -f - apiVersion: v1 kind: ConfigMap metadata: name: my-project namespace: mongodb data: projectName: myProjectName # this is an optional parameter; when omitted, the Operator creates a project with the resource name orgId: 5b890e0feacf0b76ff3e7183 # this is a required parameter baseUrl: https://ops.example.com:8443 EOF
Clave | Tipo | Descripción | Ejemplo |
|---|---|---|---|
| string | Nombre del objeto de Kubernetes. Los nombres de recursos deben tener 44 caracteres o menos. Este nombre debe seguir las convenciones de nomenclatura RFC, conteniendo solo caracteres alfanuméricos en minúscula1123 Para obtener más información, consulte la documentación de Kubernetes en nombres. |
|
| string |
| |
| string | Etiqueta para tu Ops Manager proyecto. El operador de Kubernetes crea el proyecto Ops Manager si no existe. Si omite Para utilizar un proyecto existente en una organización de Cloud Manager o Ops Manager, localiza el |
|
| string | Requerido. string hexadecimal de 24 caracteres que identifica de manera única tu Cloud Manager u Ops Manager Organización. Puedes usar el Operador de Kubernetes para implementar recursos de MongoDB con Cloud Manager y con Ops Manager versión 6.0.x o posterior. Puedes usar el Atlas Operator para implementar recursos de MongoDB en Atlas. Especifique una organización existente:
Debes tener el rol Organization Project Creator para crear un nuevo proyecto dentro de una organización existente de Cloud Manager u Ops Manager. Si se proporciona una string vacía como |
|
| string | URL de tu aplicación Ops Manager, incluida el FQDN y el número de puerto. IMPORTANTE: Si implementas Ops Manager con el Kubernetes Operator y Ops Manager va a gestionar recursos de bases de datos MongoDB implementados fuera del clúster de Kubernetes donde está implementado, debes establecer Si usas Cloud Manager, establezca el valor de |
|
Ejecute el siguiente comando de Kubernetes para verificar su ConfigMap.
kubectl describe configmaps <configmap-name>
Este comando devuelve una descripción de ConfigMap en el shell:
Name: <configmap-name> Namespace: <namespace> Labels: <none> Annotations: <none> Data ==== baseUrl: ---- <myOpsManagerURL> Events: <none>
Conéctese a Ops Manager habilitado para HTTPS utilizando una CA personalizada
Es posible que hayas optado por usar tu propio certificado TLS para habilitar HTTPS para tu instancia de Ops Manager. Si utilizaste un certificado personalizado, necesitas agregar la CA que firmó ese certificado personalizado al Operador Kubernetes. Para agregar tu CA personalizada, haz lo siguiente:
Cree un ConfigMap para el certificado de la autoridad certificadora (CA).
El operador de Kubernetes requiere el certificado raíz CA de la CA que emitió el certificado del host de Ops Manager. Ejecuta el siguiente comando para crear un ConfigMap que contenga el CA raíz en el mismo espacio de nombres de tus pods de base de datos:
kubectl -n <metadata.namespace> create configmap <root-ca-configmap-name> \ --from-file=mms-ca.crt
Importante
El Operador de Kubernetes requiere que le pongas nombre al certificado del recurso de Ops Manager mms-ca.crt en el ConfigMap.
Copie la sección resaltada del siguiente ejemplo ConfigMap.
1 2 apiVersion: v1 3 kind: ConfigMap 4 metadata: 5 name: <my-configmap> 6 namespace: <my-namespace> 7 data: 8 projectName: <my-ops-manager-project-name> # this is an optional parameter 9 orgId: <org-id> # this is a required parameter 10 baseUrl: https://<my-ops-manager-URL>
11 sslMMSCAConfigMap: <root-ca-configmap-name> 12 sslRequireValidMMSServerCertificates: ‘true’ 13 ...
Agrega la sección resaltada a tu ConfigMap del proyecto.
Invoque el siguiente comando para editar el ConfigMap de su proyecto en el editor configurado por defecto:
kubectl edit configmaps <my-configmap> -n <metadata.namespace> Pega y coloca la sección resaltada en el ejemplo ConfigMap al final del ConfigMap del proyecto.
Especifique los ajustes de TLS
Cambie las siguientes claves TLS:
Clave | Tipo | Descripción | Ejemplo |
|---|---|---|---|
| string | Nombre del ConfigMap creado en el primer paso que contiene el certificado raíz CA utilizado para firmar el certificado del host de Ops Manager. Esto monta el certificado de la CA en el operador de Kubernetes y en los recursos de la base de datos. |
|
| booleano | Obliga al operador a requerir un certificado TLS válido desde Ops Manager. IMPORTANTE: El valor debe estar entre comillas simples, o el operador generará un error. |
|
Invoca el comando de Kubernetes para verificar tu ConfigMap.
kubectl describe configmaps <my-configmap> -n <metadata.namespace>
Importante
Incluya siempre la opción de kubectl espacio de nombres con. Si no especifica la opción, kubectlutiliza un espacio de nombres vacío -n por defecto, lo que provoca fallos en la implementación. Debe especificar el valor del <metadata.namespace> campo. El operador de Kubernetes, elsecreto y los MongoDB recursos deben ejecutarse en el mismo espacio de nombres único.
Este comando devuelve una descripción de ConfigMap en el shell:
Name: <my-configmap> Namespace: <namespace> Labels: <none> Annotations: <none> Data ==== sslMMSCAConfigMap: ---- <root-ca-configmap-name> sslRequireValidMMSServerCertificates: ---- true Events: <none>
Próximos pasos
Ahora que has creado tu ConfigMap, crea credenciales para el Operador de Kubernetes antes de implementar recursos de MongoDB.