Você pode implantar o MongoDB Search e o Vector Search junto com o MongoDB v8.0 ou superior usando os Controladores MongoDB para o Kubernetes Operator.
Exemplo de especificação de recurso
O exemplo a seguir mostra as configurações dentro do objeto spec para o sistema do MongoDB Search e do Vector Search . Para saber mais sobre essas configurações, consulte as Configurações obrigatórias e Configurações opcionais.
Exemplo
1 spec: 2 source: 3 mongodbResourceRef: 4 name: mdb 5 external: 6 hostAndPorts: 7 - mdb-rs-external-0.example.com:27017 8 - mdb-rs-external-1.example.com:27017 9 - mdb-rs-external-2.example.com:27017 10 keyfileSecretRef: 11 name: mdbc-rs-keyfile 12 key: keyfile 13 tls: 14 ca: 15 name: mdbc-rs-ca 16 username: search-sync-source 17 passwordSecretRef: 18 name: mdbc-rs-search-sync-source-password 19 key: password 20 security: 21 tls: 22 certificateKeySecretRef: 23 name: mdbs-tls-secret 24 resourceRequirements: 25 limits: 26 cpu: "3" 27 memory: 5Gi 28 requests: 29 cpu: "2" 30 memory: 3Gi 31 logLevel: INFO
Configurações necessárias
Esta seção descreve as configurações necessárias para implementar o recurso MongoDB Search e Vector Search . Se você definir somente as configurações exigidas na Definição de Recurso Personalizado (CRD), o Operador do MongoDB Controladores para Kubernetes utilizará os padrões para todas as configurações opcionais para configurar o MongoDBSearch.
apiVersionTipo: string
Versão do esquema de recursos do MongoDB Kubernetes. Defina o valor como
mongodb.com/v1.
kindTipo: string
Tipo de recurso MongoDB Kubernetes para criar. Defina isso como
MongoDBSearch.
metadata.namespaceTipo: string
Namespace onde o recurso
MongoDBSearchdeve ser criado. Para aproveitar a configuração automática dos recursosMongoDBSearcheMongoDBouMongoDBCommunity, o recursoMongoDBSearchdeve ser criado no mesmo namespace que o recursoMongoDBouMongoDBCommunity.
metadata.nameTipo: string
Identificador único do recurso
MongoDBSearch. O nome do recurso pode ter no máximo 44 caracteres.
Configurações opcionais
Esta seção descreve as configurações opcionais do recurso MongoDB Search e Vector Search . Se você omitir as configurações opcionais e definir somente as configurações exigidas no CRD, o MongoDB Controladores para Kubernetes Operator utilizará os padrões para todas as configurações opcionais para configurar o MongoDBSearch.
spec.sourceTipo: objeto
Configuração que descreve o conjunto de réplicas de origem MongoDB para
mongot. Isso é necessário se:MongoDBé externoMongoDBtem um nome diferente deMongoDBSearch
O recurso
MongoDBSearchdeve estar sempre conectado ao conjunto de réplicas. Se você implementou o conjunto de réplicas usando o Operador Kubernetes comMongoDBouMongoDBCommunityCRD e sespec.sourceestiver vazio, o Operador Kubernetes usará o seguinte com base emmetadata.namepara procurar o banco de dados no Kubernetes:Encontre recursos
MongoDBouMongoDBCommunitycom o mesmo nome definido parametadata.nameemMongoDBSearch, no mesmo namespace.Encontre o segredo da senha do usuário
mongotno segredoMongoDBSearch.metadata.name>-search-sync-source-password.
spec.source.mongodbResourceRef.nameTipo: string
Nome do recurso
MongoDBouMongoDBCommunitya ser associado a este recurso do MongoDB Search e Vector Search . Você não pode ter mais de um recursoMongoDBSearchreferenciando o mesmo recursoMongoDBouMongoDBCommunity. Se você especificar um nome diferente, deverá ponto explicitamente para oMongoDBouMongoDBCommunityem que deseja ativar o MongoDB Search e o Vector Search.Use esse campo somente se o recurso
MongoDBouMongoDBCommunityestiver distribuído no mesmo cluster do Kubernetes e estiver no mesmo namespace que o recursoMongoDBSearch. A configuração deste campo permite que o operador Kubernetes automaticamente:Defina connection strings adequadas para o banco de dados.
Reconfigure os sistemas do banco de dados MongoDB definindo os parâmetros necessários para habilitar a funcionalidade de pesquisa e configurar os endereços dos pods de pesquisa.
Se o seu banco de dados for implantado fora do Kubernetes ou estiver em um namespace diferente, utilize o
spec.externalpara configurar a conexão com o banco de dados. Este campo é mutuamente exclusivo comspec.external.Se omitido, o Operador Kubernetes procurará
MongoDBouMongoDBCommunityrecurso com o mesmo nome deste recursoMongoDBSearch.
spec.source.externalTipo: objeto
Configurações que descrevem a fonte de dados externa . Este objeto descreve as configurações do recurso MongoDB Search e Vector Search para se conectar a um MongoDB externo. Essas configurações devem ser especificadas somente se você quiser se conectar a um MongoDB externo que não tenha sido implantado usando o Kubernetes Operator. Se especificadas, estas configurações substituem as configurações para
spec.source.mongodbResourceRef.name. Se você usou o Operador Kubernetes para instalar o MongoDB no mesmo cluster, essas configurações são opcionais.
spec.source.external.hostAndPortsTipo: array de strings
Lista de nomes de hosts e portas do conjunto de réplicas externas. Esta é uma lista de sementes de host para o conjunto de réplicas MongoDB . O
mongotse conecta ao banco de dados em um modo de conjunto de réplicas e obtém a lista de todos os outros nós usandodb.hello().Exemplo
hostAndPorts: - mdbc-rs-0.my-external-domain.example.com:27017 - mdbc-rs-1.my-external-domain.example.com:27017 - mdbc-rs-2.my-external-domain.example.com:27017
spec.source.external.keyfileSecretRefTipo: objeto
Referência ao segredo do Kubernetes que contém o arquivo de chave para autenticação interna do cluster.
spec.source.external.keyfileSecretRef.nameTipo: string
Nome do arquivo de chave utilizado para autenticar
mongodparamongot. O nome secreto especificado deve conter o mesmo arquivo de chave que é usado pelos membros do conjunto de réplicas do MongoDB para comunicação interna.
spec.source.external.keyfileSecretRef.keyTipo: string
Conteúdo do arquivo-chave como string.
Dica
Você pode encontrar o arquivo de chave no campo
auth.keyda configuração de automação para sua instância do Cloud Manager ou Ops Manager.
spec.source.external.tlsTipo: objeto
Configurações de TLS que o
mongotdeve usar ao conectar ao banco de dados MongoDB externo.
spec.source.external.tls.ca.nameTipo: string
Nome do segredo que contém a cadeia confiável das autoridades de certificação que emitiram o certificado TLS usado pelos nós
mongod.Exemplo
spec: source: external: tls: ca: name: trusted-ca O certificado (ou certificados, se for uma cadeia de certificados CA confiáveis) deve ser especificado na chave
ca.crtneste segredo.Exemplo
name: Secret apiVersion: v1 metadata: name: trusted-ca data: ca.crt: | -----BEGIN CERTIFICATE----- MIIDBTCCAe2gAwIBAgIIH3EOUAGAsx0wDQYJKoZIhvcNAQELBQAwFTETMBEGA1UE [...] U/4rN8Ias/FONYFRtGfs9uXHmo2MP04BF+9ED2dlbNDUbat+6XCozLJj98nI4VEi qaV3JrVFHTgN -----END CERTIFICATE-----
spec.source.usernameTipo: string
Nome de usuário para autenticar
mongotcommongod. O usuário especificado deve ter a funçãosearchCoordinator. Se omitido, o Operador do Kubernetes assume que o nome de usuário ésearch-sync-source.
spec.source.passwordSecretRef.nameTipo: string
Nome do segredo que contém a senha que
mongotdeve usar para autenticar commongod. Se omitido, o padrão é<MongoDBSearch.metadata.name>-search-sync-source-password.
spec.source.passwordSecretRef.keyTipo: string
Chave sob a qual o valor da senha é armazenado no segredo. Se omitido, o padrão é
password.
spec.securityTipo: objeto
Configurações de segurança para
mongotservidor de escuta.
spec.security.tlsTipo: objeto
Configurações de TLS para
mongot. Se omitido, omongotnão utilizará TLS para conexões recebidas.
spec.security.tls.certificateKeySecretRef.nameTipo: string
Nome de um segredo TLS no mesmo namespace que contém a chave privada (
tls.key) e o certificado (tls.crt). O segredo pode ser do tipokubernetes.io/tls(que é emitido pelo cert-manager) ou pode ser criado manualmente. Isso é necessário para ativar o TLS nomongot.
spec.resourceRequirementsTipo: core/v1/ResourceRequirements
CPU e memória para as quais o container
mongodb-searchpode solicitar e ser limitado. Recomendamos usar esse campo para personalizar as alocações de recursos em vez de substituí-lo porspec.statefulSet.Se omitido, o Kubernetes Operator usa os seguintes valores padrão:
requests: cpu: 2 memory: 2G
spec.resourceRequirements.limitsTipo: objeto
Limite superior no recurso, CPU e memória, que o contêiner do
mongodb-searchpode consumir. Por padrão, não há limites definidos. Se omitido, o pod não será restrito e, portanto, pode usar todos os recursos no nó. Recomendamos definir limites com base em seu volume de trabalho.
spec.resourceRequirements.requestsTipo: objeto
Quantidade de CPU e memória solicitada para o contêiner
mongodb-search. Se omitido, o Kubernetes Operator usa os seguintes valores padrão:requests: cpu: 2 memory: 2G
spec.logLevelTipo: string
Verbosidade dos registros do
mongot. O valor pode ser um dos seguintes:TRACEDEBUGINFOWARNERROR
Se omitido, o padrão é
INFO.
spec.persistence.singleTipo: objeto
Configuração de armazenamento para o volume de persistência do MongoDB Search e Vector Search onde os índices do MongoDB Search e Vector Search são armazenados. Cada instância de pesquisa (pod) tem seu próprio armazenamento independente para manter índices, que não é compartilhado com o banco de dados MongoDB . Somente metadados de índice (definições) são armazenados no próprio banco de dados .
EscalarTipo de DadosDescriçãolabelSelectorstring
Marcação usada para vincular volumes montados a diretórios.
storagestring
Tamanho mínimo do volume persistente que deve ser montado. Esse valor é expresso como um número inteiro seguido por uma unidade de armazenamento na notação JEDEC.
O valor padrão é 16Gi.
Por exemplo, se o conjunto de réplicas exigir 60 gigabytes de espaço de armazenamento, defina esse valor como
60Gi.storageClassstring
Tipo de armazenamento especificado em uma declaração de volume persistente. Você pode criar esse tipo de armazenamento como um objeto StorageClass antes de usá-lo nesta especificação de objeto.
Certifique-se de definir a StorageClass
reclaimPolicycomo Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.MongoDBSearchsuporta apenas o campo de persistênciasingle. Se omitido, o Operador Kubernetes definespec.persistence.single.storagecomo10GB.
spec.versionTipo: string
Versão da imagem do Docker do
mongodb-search. Se omitido, o Operador Kubernetes escolhe automaticamente a versão mais recente doMongoDBSearch. Você pode defini-lo explicitamente para evitar atualizações automáticas quando a versão do Kubernetes Operator for atualizada.
spec.statefulSetDigite: apps/v1/StatefulSet
Especificação para o StatefulSet, criado para implantar os pods
mongot, que substitui as configurações que o Operador Kubernetes aplica. As substituições são sempre aplicadas por último. Suporta os camposspec.statefulSet.specespec.statefulSet.metadata.Observação
Não defina requisitos de recursos ou configurações de persistência usando
spec.statefulSet. Em vez disso, utilize os camposspec.resourceRequirementsespec.persistencerespectivamente.