El operador de Kubernetes de MongoDB Enterprise 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... projectName que proporcione en ConfigMap.
Para crear un ConfigMap de operador de Kubernetes, puede editar algunas líneas del ConfigMap de ejemplo ArchivoYAML y aplicar el ConfigMap. Para ver un ejemplo completo, consulte el archivo project.yaml.
Como alternativa, puede utilizar la interfaz de usuario de MongoDB Cloud Manager o la interfaz de usuario de Ops Manager para crear o elegir un proyecto y generar automáticamente el archivo YAML ConfigMap, que luego puede aplicar a su entorno de Kubernetes.
Considerations
Solo se 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 de usuarios a la base de datos por proyecto. Para obtener más información, consulte Implementar un recurso de base de datos de MongoDB.
Debe vincular una implementación de MongoDB Enterprise Kubernetes Operator con un proyecto único de Ops Manager. Puede crear un ConfigMap distinto para cada instancia de MongoDB Enterprise Kubernetes Operator que implemente o reutilizar el mismo ConfigMap para cualquier número de implementaciones omitiendo el
data.projectNamede su ConfigMap, 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 mapa de configuración, se creará si ese proyecto aún no existe.
Importante
Puede utilizar el operador de Kubernetes para implementar recursos de MongoDB con Cloud Manager y con Ops Manager versión 6.0.x o posterior.
Puede utilizar el operador Atlas para implementar recursos de MongoDB en Atlas.
Requisitos previos
Versión de Kubernetes 1.11 o posterior o versión de Openshift 3.11 o posterior.
Operador MongoDB Enterprise Kubernetes versión 0.11 o posterior instalado.
Crear un proyecto usando un ConfigMap
Configure para kubectl que el valor predeterminado sea su espacio de nombres.
Si aún no lo ha hecho, ejecute el siguiente comando para ejecutar todos los kubectl comandos en el espacio de nombres que creó.
Nota
Si está implementando un recurso de Ops Manager en una implementación de MongoDB de un clúster de Kubernetes múltiple:
Establezca
contexten el nombre del clúster del operador, como por ejemplo:kubectl config set context "$MDB_CENTRAL_CLUSTER_FULL_NAME".Establezca
--namespaceen el mismo ámbito que utilizó para su implementación de MongoDB en un clúster de Kubernetes múltiple, como porkubectl config --namespace "mongodb"ejemplo:.
kubectl config set-context $(kubectl config current-context) --namespace=<metadata.namespace>
Invoque 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 RFC1123 convenciones de nomenclatura, conteniendo solo caracteres alfanuméricos en minúsculas o Para obtener más información, consulte la documentación de Kubernetes sobre nombres. |
|
| string |
| |
| string | Etiqueta para su proyecto de Ops Manager. El operador de Kubernetes crea el proyecto de Ops Manager si no existe. Si Para usar un proyecto existente en una organización de Cloud Manager u Ops Manager, ubique |
|
| string | Obligatorio.Cadena 24 hexadecimal de caracteres que identifica de forma única su organización Cloud Manager u Ops Manager. Puede utilizar el operador de Kubernetes para implementar recursos de MongoDB con Cloud Manager y con Ops Manager versión 6.0.x o posterior. Puede utilizar el operador Atlas para implementar recursos de MongoDB en Atlas. Especifique una organización existente:
Debe tener el rol de Creador de proyectos de organización para crear un nuevo proyecto dentro de una organización existente de Cloud Manager u Ops Manager. Si proporciona una cadena vacía como |
|
| string | URL de su aplicación Ops Manager, incluido el FQDN y el número de puerto. IMPORTANTE: Si implementa Ops Manager con el operador de Kubernetes y Ops Manager administra los recursos de la base de datos MongoDB implementados fuera del clúster de Kubernetes donde se implementa, debe establecer Si está utilizando Cloud Manager, establezca el valor |
|
Invoque 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>
Conectarse a Ops Manager habilitado para HTTPS mediante una CA personalizada
Es posible que haya optado por usar su propio certificado TLS para habilitar HTTPS en su instancia de Ops Manager. Si usó un certificado personalizado, debe agregar la CA que lo firmó al operador de Kubernetes. Para agregar su CA personalizada, complete 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 nombre el certificado del recurso Ops Manager mms-ca.crt en 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 ...
Agregue la sección resaltada al ConfigMap de su proyecto.
Invoque el siguiente comando para editar el ConfigMap de su proyecto en el editor configurado predeterminado:
kubectl edit configmaps <my-configmap> -n <metadata.namespace> Pegue la sección resaltada en el ConfigMap de ejemplo al final del proyecto ConfigMap.
Especificar la configuración 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 de CA raíz utilizado para firmar el certificado del host de Ops Manager. Esto monta el certificado de CA en los recursos de operador y base de datos de Kubernetes. |
|
| booleano | Obliga al operador a solicitar un certificado TLS válido de Ops Manager. IMPORTANTE: El valor debe estar entre comillas simples o el operador generará un error. |
|
Invoque el comando Kubernetes para verificar su ConfigMap.
kubectl describe configmaps <my-configmap> -n <metadata.namespace>
Importante
Incluya siempre la opción de kubectl espacio de nombres con. Si no se especifica la opción, kubectlusa un espacio de nombres vacío -n de forma predeterminada, lo que provoca errores de implementación. Debe especificar el valor del <metadata.namespace> campo. Los recursos de operador, secreto y de Kubernetes MongoDB 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 ha creado su ConfigMap, cree credenciales para el operador de Kubernetes antes de comenzar a implementar recursos de MongoDB.