Implemente em redes restritas
Este tutorial demonstra como implantar o MongoDB Enterprise Operator, uma instância MongoDB Ops Manager e um conjunto de réplicas do MongoDB usando o Kubernetes Operator em um ambiente OpenShift de rede restrita.
Procedimento
Faça um espelhamento do catálogo do operador e desabilite o catálogo padrão.
Os catálogos do Red Hat Operator contêm metadados que o OLM query para instalar Operadores e suas dependências em um cluster. Você deve criar uma cópia do catálogo do Operador e, em seguida, desabilitar o catálogo padrão como administrador do cluster.
O relatedImages
no pacote do operador lista as seguintes imagens:
Imagens diretamente usadas pelo operador, que são a versão atual do
mongodb-enterprise-init-database-ubi
,mongodb-enterprise-init-ops-manager-ubi
,mongodb-enterprise-init-appdb-ubi
,mongodb-enterprise-init-database-ubi
.Todas as imagens atualmente suportadas do MongoDB Ops Manager, AppDB e
mongodb-agent-ubi
que podem ser configuradas em um sistema do MongoDB Ops Manager .
Para imagens init
, use somente a versão presente na versão mais recente do Kubernetes Operator.
O tamanho de todas as imagens relacionadas referenciadas pelo pacote do operador é superior a 26 GB.
Seu comando de espelhamento não escolherá versões não suportadas das imagens do AppDB. Se você quiser usar qualquer outra versão não suportada, deverá fornecer manualmente essas imagens ao registro espelhado. Para outras versões para uma determinada versão do operador, consulte imagem para a Implementação.
Para a lista completa de imagens definidas nas RELATED_IMAGE_*
variáveis de ambiente do , consulte o arquivo CSV .
Para espelhar,consulte espelhando imagens para uma instalação desconectada.
Quando você
oc adm catalog mirror
executa o comando para espelhar o catálogo, ele gera oimageContentSourcePolicy.yaml
arquivo , que você deve aplicar para remapear a fonte original para imagens espelhadas. Por exemplo:oc apply -f ./<output dir>/imageContentSourcePolicy.yaml Para saber mais, consulte Catálogos do operador de espelhamento para uso com clusters desconectados. Para obter uma lista de versões do MongoDB compatíveis com cada versão MongoDB Ops Manager , consulte Versão compatível do MongoDB .
Para desabilitar o catálogo padrão, adicione
disableAllDefaultSources: true
ao objetoOperatorHub
.
Para saber mais,consulte Usando o Operator Lifecycle Manager em redes restritas.
Implemente o MongoDB Ops Manager no Modo Local.
Para implantar o MongoDB Ops Manager no Modo Local, você deve fazer o seguinte:
Copie o seguinte MongoDB Ops Manager Kubernetes objeto e salve-o como um
.yaml
arquivo .Use a configuração
automation.versions.source: local
do MongoDB Ops Manager emspec.configuration
para habilitar o modo local.Definir um volume persistente para o Ops Manager StatefulSet armazenar o arquivo de instalação do MongoDB. A execução do MongoDB Agent nos contêineres de recursos de banco de dados MongoDB que você cria com o Kubernetes Operator baixa os arquivos de instalação do Ops Manager em vez da Internet.
1 apiVersion: mongodb.com/v1 2 kind: MongoDBOpsManager 3 metadata: 4 name: ops-manager-localmode 5 spec: 6 replicas: 2 7 version: "6.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 saber mais sobre as configurações, consulte Implantar um recurso do Ops Manager.
Configure
oc
como padrão para seu namespace.oc config set-context $(oc config current-context) --namespace=<metadata.namespace> Copie as seguintes configurações de recursos do MongoDB Ops Manager , cole no recurso existente do MongoDB Ops Manager e salve o arquivo de configuração MongoDB 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 o arquivo de instalação do MongoDB para o Volume persistente do MongoDB Ops Manager .
Para saber como copiar o arquivo de instalação do MongoDB , consulte a etapa 10 no procedimento Configurar um recurso MongoDB Ops Manager para usar o modo local .
Crie credenciais e armazene-as como um segredo.
Execute o seguinte comando:
Observação
Forneça seus valores de Chave Pública e Privada para os seguintes parâmetros. Para saber mais, consulte Criar Credenciais para o Operador Kubernetes.
oc \ create secret generic ops-manager-admin-key \ --from-literal="publicKey=<publicKey>" \ --from-literal="privateKey=<privateKey>" Crie um ConfigMap semelhante ao seguinte:
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 saber mais sobre as configurações no ConfigMap, consulte a etapa 7 no Início Rápido do OpenShift.
Para saber mais sobre como implantar o Ops Manager no Modo Local, consulte Configurar um recurso do Ops Manager para usar o Modo Local.
Implemente um Recurso de Banco de MongoDB database .
Você pode implantar um conjunto de réplicas ou implantar um cluster fragmentado. Para saber mais, consulte Implementar um recurso de MongoDB database .