Importante
Esta sección es solo para implementaciones de un solo clúster de Kubernetes. Para implementaciones de MongoDB con varios clústeres de Kubernetes, consulte Inicio rápido de múltiples clústeres de Kubernetes.
Controladores MongoDB para Kubernetes Operator utiliza la API y las herramientas de Kubernetes para gestionar clústeres de MongoDB. Kubernetes Operator funciona en conjunto con MongoDB Cloud Manager u Ops Manager. Este tutorial muestra cómo implementar y conectarse a su primer conjunto de réplicas en Cloud Manager u Ops Manager desde OpenShift con Kubernetes Operator.
Requisitos previos
Este tutorial requiere:
Un clúster de Cloud Manager o Ops Manager en ejecución.
Procedimiento
Clonar el Controladores MongoDB para el repositorio del operador de Kubernetes.
git clone https://github.com/mongodb/mongodb-kubernetes.git
Cree un espacio de nombres para su implementación de Kubernetes.
De forma predeterminada, el operador de Kubernetes utiliza el mongodb Espacio de nombres. Para simplificar la instalación, considere crear un espacio de nombres denominado mongodb con el siguiente comando de kubectl:
kubectl create namespace mongodb
Instala el operador de los controladores de MongoDB para Kubernetes
Invoque el siguiente comando oc para instalar CustomResourceDefinitions para las implementaciones de MongoDB:
oc apply -f crds.yaml Agregue sus
<openshift-pull-secret>a las definicionesServiceAccounten el operador Controladores MongoDB para 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> Invoque el siguiente comando oc para instalar Kubernetes Operator:
oc apply -f mongodb-kubernetes-openshift.yaml
Crea credenciales y almacénalas como un secreto.
Ejecuta el siguiente comando:
Nota
Proporcione los valores de sus claves pública y privada para los siguientes parámetros. Para obtener más información, 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 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 |
|
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
Crea un secreto con la contraseña de usuario de tu base de datos
Puede optar por usar una contraseña de texto simple o una contraseña codificada en Base64. Las contraseñas de texto simple usan stringData.password y las contraseñas codificadas en Base64usan data.password.
Nota
Indique los valores de los siguientes parámetros. Para obtener más información, consulte las descripciones de los 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.
Copie y guarde el siguiente archivo de 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 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.