Este tutorial demuestra cómo implementar el operador de Kubernetes, una instancia de Ops Manager y un conjunto de réplicas de MongoDB utilizando el operador de Kubernetes en un entorno OpenShift de red restringida.
Procedimiento
Duplica el catálogo del operador y deshabilita el catálogo predeterminado.
Los catálogos de Red Hat Operator contienen metadatos que ConsultasOLM para instalar operadores y sus dependencias en un clúster. Debe crear una copia del catálogo de operadores y, a continuación, deshabilitar el catálogo predeterminado como administrador del clúster.
El 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 init, use solo la versión que esté presente en la última versión de Kubernetes Operator.
El tamaño de todas las imágenes relacionadas a las que hace referencia el paquete del operador es superior a 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 reflejar, consulte Duplicar imágenes 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 predeterminado, agregue
disableAllDefaultSources: trueal objetoOperatorHub.
Para obtener más información,consulte Uso de Operator Lifecycle Manager en redes restringidas.
Implementar 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.Utilice la configuración de Ops Manager
automation.versions.source: localen para habilitarspec.configurationel 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> Copie la siguiente configuración de recursos de Ops Manager, péguela en su recurso de Ops Manager existente y guarde su 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 archivo de instalación de MongoDB al 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
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.
oc \ create secret generic ops-manager-admin-key \ --from-literal="publicKey=<publicKey>" \ --from-literal="privateKey=<privateKey>" Cree 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.
Implementar 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.