Este tutorial demuestra cómo implementar el Operador de Kubernetes, una instancia de Ops Manager y un set de réplicas de MongoDB utilizando el Operador de Kubernetes en un entorno OpenShift de red restringida.
Procedimiento
Replica el catálogo de operadores y desactiva el catálogo por defecto.
Los catálogos de operadores de Red Hat contienen metadatos que OLM queries para instalar Operadores y sus dependencias en un clúster. Debes crear una copia del catálogo de Operadores y luego deshabilitar el catálogo por defecto como un administrador de clúster.
La relatedImages En el paquete del operador se enumeran las siguientes imágenes:
Imágenes utilizadas directamente por el operador, que son la versión actual de
mongodb-kubernetes-init-database,mongodb-kubernetes-init-ops-manager,mongodb-kubernetes-init-appdb,mongodb-kubernetes-init-database.Todas las imágenes actualmente compatibles de Ops Manager, AppDB y
mongodb-agentque se pueden configurar en una implementación de Ops Manager.
Para las imágenes de init, usa solo la versión que se encuentre en la versión más reciente del operador de Kubernetes.
El tamaño de todas las imágenes relacionadas referenciadas por el paquete de operador supera los 26 GB.
El comando de duplicación no seleccionará versiones no compatibles de las imágenes de AppDB. Si desea utilizar cualquier otra versión no compatible, debe proporcionar manualmente estas imágenes al registro de duplicación. Para conocer otras versiones de un operador determinado, consulte imagen para implementación.
Para obtener la lista completa de imágenes definidas en las RELATED_IMAGE_* variables de entorno, consulte el archivo CSV.
Para clonar, consulte Imágenes de clonado para una instalación desconectada.
Al ejecutar el
oc adm catalog mirrorcomando para reflejar el catálogo, se genera elimageContentSourcePolicy.yamlarchivo, que debe aplicar para reasignar la fuente original a las imágenes reflejadas. Por ejemplo:oc apply -f ./<output dir>/imageContentSourcePolicy.yaml Para obtener una lista de las versiones de MongoDB compatibles con cada versión de Ops Manager, consulte Versión de MongoDB compatible.
Para deshabilitar el catálogo por defecto, agregue
disableAllDefaultSources: trueal objetoOperatorHub.
Para obtener más información,consulte Uso de Operator Lifecycle Manager en redes restringidas.
Implemente Ops Manager en modo local.
Para implementar Ops Manager en modo local, debe hacer lo siguiente:
Copie el siguiente objeto de ejemplo de Ops Manager Kubernetes y guárdelo como un
.yamlarchivo.Utiliza la configuración de Ops Manager
automation.versions.source: localenspec.configurationpara habilitar el modo local.Defina un volumen persistente para el StatefulSet de Ops Manager para almacenar el archivo de instalación de MongoDB. Los agentes de MongoDB que se ejecutan en contenedores de recursos de base de datos de MongoDB creados con el operador de Kubernetes descargan los archivos de instalación de Ops Manager en lugar de hacerlo desde Internet.
1 apiVersion: mongodb.com/v1 2 kind: MongoDBOpsManager 3 metadata: 4 name: ops-manager-localmode 5 spec: 6 replicas: 2 7 version: "8.0.0" 8 adminCredentials: ops-manager-admin-secret 9 configuration: 10 # this enables local mode in Ops Manager 11 automation.versions.source: local 12 statefulSet: 13 spec: 14 # the Persistent Volume Claim will be created for each Ops Manager Pod 15 volumeClaimTemplates: 16 - metadata: 17 name: mongodb-versions 18 spec: 19 accessModes: [ "ReadWriteOnce" ] 20 resources: 21 requests: 22 storage: "20Gi" 23 template: 24 spec: 25 containers: 26 - name: mongodb-ops-manager 27 volumeMounts: 28 - name: mongodb-versions 29 # this is the directory in each Pod where all MongoDB 30 # archives must be put 31 mountPath: /mongodb-ops-manager/mongodb-releases 32 backup: 33 enabled: false 34 applicationDatabase: 35 members: 3 36 persistent: true Para obtener más información sobre la configuración, consulta Implementar un recurso de Ops Manager.
Configure
ocpara que el valor predeterminado sea su espacio de nombres.oc config set-context $(oc config current-context) --namespace=<metadata.namespace> Copia los siguientes ajustes del recurso de Ops Manager, pégalos en tu recurso existente de Ops Manager y guarda tu archivo de configuración de Ops Manager.
1 configuration: 2 # this enables local mode in Ops Manager 3 automation.versions.source: local 4 statefulSet: 5 spec: 6 # the Persistent Volume Claim will be created for each Ops Manager Pod 7 volumeClaimTemplates: 8 - metadata: 9 name: mongodb-versions 10 spec: 11 accessModes: [ "ReadWriteOnce" ] 12 resources: 13 requests: 14 storage: "20Gi" 15 template: 16 spec: 17 containers: 18 - name: mongodb-ops-manager 19 volumeMounts: 20 - name: mongodb-versions 21 # this is the directory in each Pod where all MongoDB 22 # archives must be put 23 mountPath: /mongodb-ops-manager/mongodb-releases Copie el fichero de instalación de MongoDB en el volumen persistente de Ops Manager.
Para aprender a copiar el fichero de instalación de MongoDB, consulta el paso 10 en el procedimiento Configurar un recurso de Ops Manager para usar el modo local.
Crea credenciales y almacénalas como un secreto.
Ejecuta el siguiente comando:
Nota
Aporta los valores de tus claves públicas y llaves privadas para los siguientes parámetros. Para aprender más, consulte Crear credenciales para el Operador de Kubernetes.
oc \ create secret generic ops-manager-admin-key \ --from-literal="publicKey=<publicKey>" \ --from-literal="privateKey=<privateKey>" Crea un ConfigMap similar al siguiente:
cat <<EOF | oc apply -f - apiVersion: v1 kind: ConfigMap metadata: name: my-project namespace: mongodb data: projectName: myProjectName # this is an optional parameter orgId: 5b890e0feacf0b76ff3e7183 # this is a required parameter baseUrl: https://ops.example.com:8443 EOF Para obtener más información sobre las configuraciones en ConfigMap, consulte 7 el paso en el Inicio rápido de OpenShift.
Para obtener más información sobre cómo implementar Ops Manager en modo local, consulte Configurar un recurso de Ops Manager para usar el modo local.
Implementa un recurso de base de datos MongoDB.
Puede implementar un conjunto de réplicas o un clúster fragmentado. Para obtener más información, consulte Implementar un recurso de base de datos MongoDB.