Docs Menu
Docs Home
/
Enterprise Kubernetes Operator
/

Inicio rápido de OpenShift

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 la Guía de inicio rápido para varios clústeres de Kubernetes.

MongoDB Enterprise 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.

Este tutorial requiere:

  • Un clúster de Cloud Manager o Ops Manager en ejecución.

1
git clone https://github.com/mongodb/mongodb-enterprise-kubernetes.git
2

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
3

Si aún no lo ha hecho, ejecute el siguiente comando para ejecutar todos los comandos kubectl en el espacio de nombres que creó:

kubectl config set-context $(kubectl config current-context) --namespace=mongodb
4
  1. Invoque el siguiente comando oc para instalar CustomResourceDefinitions para las implementaciones de MongoDB:

    oc apply -f crds.yaml
  2. Agregue su <openshift-pull-secret> a las definiciones ServiceAccount en el operador Kubernetes de MongoDB Enterprise Archivo YAML.

    ---
    # Source: mongodb-enterprise-operator/templates/serviceaccount.yaml
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
    name: enterprise-operator
    namespace: mongodb
    imagePullSecrets:
    - name: <openshift-pull-secret>
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
    name: mongodb-enterprise-appdb
    namespace: mongodb
    imagePullSecrets:
    - name: <openshift-pull-secret>
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
    name: mongodb-enterprise-database-pods
    namespace: mongodb
    imagePullSecrets:
    - name: <openshift-pull-secret>
  3. Invoque el siguiente comando oc para instalar Kubernetes Operator:

    oc apply -f mongodb-enterprise-openshift.yaml
5

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>"
6
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

metadata.name

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 - , y comenzando y terminando con un carácter alfanumérico.

Para obtener más información, consulte la documentación de Kubernetes sobre nombres.

my-project

metadata.namespace

string

Espacio de nombres de Kubernetes donde el operador de Kubernetes crea este MongoDB recurso y otros objetos.

mongodb

data.projectName

string

Etiqueta para su proyecto de Ops Manager.

El operador de Kubernetes crea el proyecto de Ops Manager si no existe. Si projectName omite, el operador de Kubernetes crea un proyecto con el mismo nombre que su recurso de Kubernetes.

Para usar un proyecto existente en una organización de Cloud Manager u Ops Manager, ubique projectName haciendo clic en el icono All Clusters Enlace en la esquina superior izquierda de la página de Cloud Manager u Ops Manager, y busque por nombre en el Search cuadro o desplácese para encontrarlo en la lista. Cada tarjeta de esta lista representa la combinación de una organización y un proyecto de Cloud Manager u Ops Manager.

myProjectName

data.orgId

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:

  1. Encuentra el ID de la organización.

    Haga clic en Settings en la barra de navegación izquierda.

  2. Copie y pegue el orgId en la URL.

    Seleccione su organización, vea la URL actual en su navegador y copie el valor que se muestra en el marcador de posición <orgId> de la siguiente manera:

    https://ops.example.com:8443/ v2#/org/<orgId>/projects

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 orgId, Kubernetes Operator crea una organización con el mismo nombre que su proyecto.

5b890e0feacf0b76ff3e7183

data.baseUrl

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 data.baseUrl con el mismo valor que el spec.configuration.mms.centralUrl parámetro en la especificación de recursos de Ops Manager. Para obtener más información, consulte Administración de implementaciones externas de MongoDB.

Si está utilizando Cloud Manager, establezca el valor data.baseUrl en https://cloud.mongodb.com.

https://ops.example.com:8443

7
  1. 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: 4.4.5-ent
    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
  2. Ejecuta el siguiente comando:

    kubectl apply -f <replica-set-conf>.yaml
8

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
9
  1. 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"
  2. Ejecuta el siguiente comando:

    kubectl apply -f <database-user-conf>.yaml
10

Puede ver el usuario recién creado en Cloud Manager o Ops Manager:

  1. Desde la vista Deployment del Proyecto, haga clic en la pestaña Security.

  2. Haga clic en la pestaña anidada MongoDB Users.

11

Realice los siguientes pasos en la aplicación Cloud Manager:

  1. Haz clic en Deployment en la navegación izquierda.

  2. Haga clic en la implementación a la que desea conectarse.

  3. Haga clic en Connect to this instance.

  4. Ejecuta el comando de conexión en una terminal para conectar con la implementación.

Volver

Tutoriales de OpenShift