Importante
Esta sección es solo para implementaciones de un solo clúster de Kubernetes. Para implementaciones de MongoDB en múltiples clústeres de Kubernetes, consulte Inicio rápido de múltiples clústeres de Kubernetes.
MongoDB Controllers for Kubernetes operador utiliza la API y herramientas de Kubernetes para gestionar los clústeres de MongoDB. El operador de Kubernetes funciona junto con MongoDB Cloud Manager u Ops Manager. Este tutorial demuestra cómo implementar y conectarse a su primer set de réplicas en Cloud Manager u Ops Manager desde OpenShift con Kubernetes Operator.
Requisitos previos
Este tutorial requiere:
Un clúster en funcionamiento de Cloud Manager u Ops Manager.
Procedimiento
Clona el Repositorio de controladores MongoDB para el Operador de Kubernetes.
git clone https://github.com/mongodb/mongodb-kubernetes.git
Instala el operador de los controladores de MongoDB para Kubernetes
Ejecuutii el siguiente oc comando para instalar las CustomResourceDefinitions para implementaciones de MongoDB:
oc apply -f crds.yaml Agregue su
<openshift-pull-secret>a las definiciones delServiceAccounten los Controladores de MongoDB para el Operador de Kubernetes Archivo YAML.apiVersion: v1 kind: ServiceAccount metadata: name: enterprise-operator namespace: mongodb imagePullSecrets: - name: <openshift-pull-secret> apiVersion: v1 kind: ServiceAccount metadata: name: mongodb-kubernetes-appdb namespace: mongodb imagePullSecrets: - name: <openshift-pull-secret> apiVersion: v1 kind: ServiceAccount metadata: name: mongodb-kubernetes-database-pods namespace: mongodb imagePullSecrets: - name: <openshift-pull-secret> Invoca el siguiente comando oc para instalar el Operador de Kubernetes:
oc apply -f mongodb-kubernetes-openshift.yaml
Crea credenciales y almacénalas como un secreto.
Ejecuta el siguiente comando:
Nota
Proporcione los valores de su clave pública y privada para los siguientes parámetros. Para aprender más, consulte Crear credenciales para el Operador de Kubernetes.
kubectl -n mongodb \ create secret generic ops-manager-admin-key \ --from-literal="publicKey=<publicKey>" \ --from-literal="privateKey=<privateKey>"
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 tu Ops Manager proyecto. El operador de Kubernetes crea el proyecto Ops Manager si no existe. Si omites el 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. 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. Puede utilizar el operador Atlas 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 de Ops Manager, incluyendo 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 usas Cloud Manager, establezca el valor de |
|
Implementar el recurso del conjunto de réplicas de MongoDB.
Copie y guarde el siguiente archivo YAML:
apiVersion: mongodb.com/v1 kind: MongoDB metadata: name: demo-mongodb-cluster-1 namespace: mongodb spec: members: 3 version: 8.0.0 type: ReplicaSet security: authentication: enabled: true modes: ["SCRAM"] cloudManager: configMapRef: name: my-project credentials: organization-secret persistent: true podSpec: podTemplate: spec: containers: - name: mongodb-enterprise-database resources: limits: cpu: 2 memory: 1.5G requests: cpu: 1 memory: 1G persistence: single: storage: 10Gi Ejecuta el siguiente comando:
kubectl apply -f <replica-set-conf>.yaml
Crear un secreto con la contraseña del usuario de tu base de datos
Puedes elegir usar una contraseña en texto claro o una contraseña codificada en Base64. Las contraseñas en texto claro usan stringData.password y las contraseñas codificadas en Base64 usan data.password.
Nota
Proporcione sus valores para los siguientes parámetros. Para obtener más información, consulte las descripciones de parámetros.
Para obtener una contraseña de texto sin formato, cree y guarde el siguiente archivo YAML:
apiVersion: v1 kind: Secret metadata: name: mms-user-1-password # corresponds to user.spec.passwordSecretKeyRef.name type: Opaque stringData: password: <my-plain-text-password> # corresponds to user.spec.passwordSecretKeyRef.key
Para una contraseña codificada en Base64, cree y guarde el siguiente archivo YAML:
apiVersion: v1 kind: Secret metadata: name: mms-user-1-password # corresponds to user.spec.passwordSecretKeyRef.name type: Opaque data: password: <base-64-encoded-password> # corresponds to user.spec.passwordSecretKeyRef.key
Cree un usuario de base de datos.
Copia y guarda el siguiente archivo Especificación de recursos de usuario de MongoDB:
apiVersion: mongodb.com/v1 kind: MongoDBUser metadata: name: mms-scram-user-1 spec: passwordSecretKeyRef: name: mms-user-1-password # Match to metadata.name of the User Secret key: password username: "mms-scram-user-1" db: "admin" # mongodbResourceRef: name: "demo-mongodb-cluster-1" # Match to MongoDB resource using authentication roles: - db: "admin" name: "clusterAdmin" - db: "admin" name: "userAdminAnyDatabase" - db: "admin" name: "readWrite" Ejecuta el siguiente comando:
kubectl apply -f <database-user-conf>.yaml
Conéctate al set de réplicas de MongoDB.
Realice los siguientes pasos en la aplicación Cloud Manager:
Haz clic en Deployment en la navegación izquierda.
Haga clic en para la implementación a la que desea conectarse.
Haga clic en Connect to this instance.
Ejecuta el comando de conexión en una terminal para conectar con la implementación.