O recurso personalizado MongoDBCommunity permite implantar e gerenciar conjuntos de réplicas do MongoDB Community Edition no Kubernetes. O operador do Kubernetes usa esse recurso para criar StatefulSets, serviços e outros recursos do Kubernetes necessários para executar implantações do MongoDB Community.
Para saber mais, consulte a documentação do MongoDB Community operador.
Exemplo
O exemplo a seguir mostra uma especificação de recurso para um recurso personalizado do MongoDBCommunity :
1 apiVersion: mongodbcommunity.mongodb.com/v1 2 kind: MongoDBCommunity 3 metadata: 4 name: my-mongodb-community 5 spec: 6 version: "8.0.0" 7 type: ReplicaSet 8 members: 3 9 security: 10 tls: 11 enabled: true 12 certificateKeySecretRef: 13 name: mongodb-tls-cert 14 caConfigMapRef: 15 name: mongodb-ca 16 authentication: 17 ignoreUnknownUsers: true 18 modes: 19 - SCRAM 20 agent: 21 logLevel: DEBUG 22 statefulSet: 23 spec: 24 template: 25 spec: 26 containers: 27 - name: mongod 28 resources: 29 limits: 30 cpu: "2" 31 memory: 2Gi 32 requests: 33 cpu: "1" 34 memory: 1Gi 35 - name: mongodb-agent 36 resources: 37 limits: 38 cpu: "1" 39 memory: 2Gi 40 requests: 41 cpu: "0.5" 42 memory: 1Gi 43 users: 44 - name: mdb-admin 45 db: admin 46 passwordSecretRef: 47 name: mdb-admin-user-password 48 scramCredentialsSecretName: mdb-admin-user 49 roles: 50 - name: root 51 db: admin
Configurações de recursos MongoDBCommunity necessárias
Esta seção descreve as configurações que você deve usar para todos os recursos do MongoDBCommunity .
apiVersionTipo: string
Versão do esquema de recursos do MongoDB Kubernetes. Defina o valor como
mongodbcommunity.mongodb.com/v1.
kindTipo: string
Tipo de recurso MongoDB Kubernetes para criar. Defina isso como
MongoDBCommunity.
metadata.nameTipo: string
Nome legível por humanos para que você possa identificar esse recurso
MongoDBCommunityespecífico.Os nomes de recursos devem ter 44 caracteres ou menos.
spec.versionTipo: string
Versão do MongoDB Community a ser implantada. Por exemplo,
"8.0.0".
spec.typeTipo: string
Tipo de implantação do MongoDB a ser criado. O valor aceito é
ReplicaSet.
spec.membersTipo: inteiro
Número de nós do conjunto de réplicas. Isso determina quantos pods
mongodo operador Kubernetes cria no StatefulSet.
Configurações de recursos MongoDBCommunity opcionais
O recurso personalizado do MongoDBCommunity pode utilizar as seguintes configurações:
Configurações de segurança
spec.securityTipo: objeto
Configuração de segurança para o recurso
MongoDBCommunity. Contém configurações de TLS e autenticação.
spec.security.tlsTipo: objeto
Configurações de TLS para a implantação do MongoDB.
spec.security.tls.enabledTipo: booleano
Sinalizador para habilitar ou desabilitar o TLS para a implantação do MongoDB. Defina como
truepara habilitar conexões criptografadas por TLS.
spec.security.tls.certificateKeySecretRef.nameTipo: string
Nome do secret do Kubernetes que contém o certificado de servidor TLS e a chave privada para a implantação do MongoDB.
spec.security.tls.caConfigMapRef.nameTipo: string
Nome do Kubernetes ConfigMap que contém o certificado da Autoridade de Certificação (CA) usado para verificar conexões TLS.
spec.security.authenticationTipo: objeto
Configuração de autenticação para a implantação do MongoDB.
spec.security.authentication.modesTipo: array de strings
Lista de mecanismos de autenticação a serem habilitados na implantação do MongoDB. Os valores aceitos incluem:
SCRAM
spec.security.authentication.ignoreUnknownUsersTipo: booleano
Se
true, o operador do Kubernetes não relata um erro para usuários que existem na implantação do MongoDB, mas não estão definidos na especificação de recursoMongoDBCommunity.Padrão:
false.
Configurações do agente
spec.agentTipo: objeto
Configurações para o MongoDB Agent.
spec.agent.logLevelTipo: string
Nível de detalhamento do log do MongoDB Agent. Os valores aceitos incluem:
DEBUGINFOWARNERROR
Configurações do StatefulSet
spec.statefulSetTipo: objeto
Especificação do StatefulSet criado pelo Kubernetes operador para seu recurso
MongoDBCommunity. Use isso para substituir as solicitações e limites de recursos do contêiner padrão.
spec.statefulSet.specTipo: objeto
Especificação StatefulSet que o operador do Kubernetes mescla com padrões gerados. Segue a especificação padrão do Kubernetes StatefulSet.
spec.statefulSet.spec.template.spec.containersTipo : array de objetos
Lista de substituições de contêiner. Você pode substituir solicitações de recursos e limites para os seguintes contêineres:
mongod— O contêiner de banco de dados MongoDB.mongodb-agent— O contêiner sidecar do MongoDB Agent.
containers: - name: mongod resources: limits: cpu: "2" memory: 2Gi requests: cpu: "1" memory: 1Gi - name: mongodb-agent resources: limits: cpu: "1" memory: 2Gi requests: cpu: "0.5" memory: 1Gi
Configurações do usuário
spec.usersTipo : array de objetos
Lista de usuários de banco de dados MongoDB a serem criados para esta implantação. Cada objeto de usuário define as credenciais e funções para um usuário de banco de dados.
spec.users[*].nameTipo: string
Nome de usuário para o usuário de banco de dados do MongoDB.
spec.users[*].dbTipo: string
Banco de dados de autenticação para o usuário. O padrão é
admin.
spec.users[*].passwordSecretRef.nameTipo: string
Nome do secret do Kubernetes que contém a senha para este usuário de banco de dados.
spec.users[*].scramCredentialsSecretNameTipo: string
Nome do segredo onde o operador Kubernetes armazena as credenciais SCRAM geradas para este usuário.
spec.users[*].rolesTipo : array de objetos
Lista de funções a serem atribuídas a este usuário de banco de dados.
spec.users[*].roles[*].nameTipo: string
Nome da função a ser atribuída. Por exemplo,
root,readWrite,readAnyDatabaseousearchCoordinator.
spec.users[*].roles[*].dbTipo: string
Banco de dados no qual a função se aplica. Por exemplo,
admin.
Integração com MongoDBSearch
Você pode implantar o MongoDB Search e a pesquisa vetorial junto com um recurso MongoDBCommunity usando o MongoDBSearch CRD. Para habilitar a funcionalidade de pesquisa, crie um usuário search-sync-source com a função searchCoordinator:
users: - name: search-sync-source db: admin passwordSecretRef: name: my-resource-search-sync-source-password scramCredentialsSecretName: my-resource-search-sync-source roles: - name: searchCoordinator db: admin
Observação
Para MongoDB 8.2 e posterior, searchCoordinator é uma função integrada. Para versões anteriores, o operador Kubernetes cria a função personalizada searchCoordinator automaticamente.
Para saber mais, consulte Implante MongoDB Search e pesquisa vetorial.