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 spec
objeto para o sistema do MongoDB Search e do Vector Search . Para saber mais sobre essas configurações, consulte as Configurações obrigatórias e as 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
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
.
apiVersion
Tipo: string
Versão do esquema de recursos do MongoDB Kubernetes. Defina o valor como
mongodb.com/v1
.
kind
Tipo: string
Tipo de recurso MongoDB Kubernetes para criar. Defina isso como
MongoDBSearch
.
metadata.namespace
Tipo: string
Namespace onde o recurso
MongoDBSearch
deve ser criado. Para aproveitar a configuração automática dos recursosMongoDBSearch
eMongoDB
ouMongoDBCommunity
, o recursoMongoDBSearch
deve ser criado no mesmo namespace que o recursoMongoDB
ouMongoDBCommunity
.
metadata.name
Tipo: 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 Drivers for Kubernetes Operator usará os padrões para todas as configurações opcionais para configurar MongoDBSearch
o.
spec.source
Tipo: objeto
Configuração que descreve o conjunto de réplicas de origem MongoDB para
mongot
. Isso é necessário se:MongoDB
é externoMongoDB
tem um nome diferente deMongoDBSearch
O
MongoDBSearch
recurso deve estar sempre conectado ao conjunto de réplicas. Se você implementou o conjunto de réplicas usando o Operador Kubernetes comMongoDB
ouMongoDBCommunity
CRD e sespec.source
estiver vazio, o Operador Kubernetes usará o seguinte com base em parametadata.name
procurar o banco de dados no Kubernetes:Encontre recursos
MongoDB
ouMongoDBCommunity
com o mesmo nome definido parametadata.name
emMongoDBSearch
, no mesmo namespace.Encontre o segredo da senha do usuário
mongot
no segredosearch-sync-source-user-password
.
spec.source.mongodbResourceRef.name
Tipo: string
Nome do recurso
MongoDB
ouMongoDBCommunity
a ser associado a este recurso do MongoDB Search e Vector Search . Você não pode ter mais de um recursoMongoDBSearch
referenciando o mesmo recursoMongoDB
ouMongoDBCommunity
. Se você especificar um nome diferente, deverá ponto explicitamente para oMongoDB
ouMongoDBCommunity
em que deseja ativar o MongoDB Search e o Vector Search.Use esse campo somente se o recurso
MongoDB
ouMongoDBCommunity
estiver 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.external
para configurar a conexão com o banco de dados. Este campo é mutuamente exclusivo comspec.external
.Se omitido, o Operador Kubernetes procurará
MongoDB
ouMongoDBCommunity
recurso com o mesmo nome deste recursoMongoDBSearch
.
spec.source.external
Tipo: 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.hostAndPorts
Tipo: 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
mongot
se 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.keyfileSecretRef
Tipo: objeto
Referência ao segredo do Kubernetes que contém o arquivo de chave para autenticação interna do cluster.
spec.source.external.keyfileSecretRef.name
Tipo: string
Nome do arquivo de chave utilizado para autenticar
mongod
paramongot
. 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.key
Tipo: string
Conteúdo do arquivo-chave como string.
Dica
Você pode encontrar o arquivo de chave no campo
auth.key
da configuração de automação para sua instância do Cloud Manager ou Ops Manager.
spec.source.external.tls
Tipo: objeto
Configurações de TLS que o
mongot
deve usar ao conectar ao banco de dados MongoDB externo.
spec.source.external.tls.ca.name
Tipo: 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.crt
neste 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.username
Tipo: string
Nome de usuário para autenticar
mongot
commongod
. 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
Tipo: objeto
Referência a um segredo contendo a senha de usuário do MongoDB Search.
spec.source.passwordSecretRef.name
Tipo: string
Nome do segredo que contém a senha que
mongot
deve usar para autenticar commongod
. Se omitido, o padrão é<MongoDBSearch.metadata.name>-search-sync-source-password
.
spec.source.passwordSecretRef.key
Tipo: string
Chave sob a qual o valor da senha é armazenado no segredo. Se omitido, o padrão é
password
.
spec.security
Tipo: objeto
Configurações de segurança para o servidor de escuta
mongot
.
spec.security.tls
Tipo: objeto
Configurações deTLS
mongot
para. Se omitido, omongot
não utilizará TLS para conexões recebidas.
spec.security.tls.certificateKeySecretRef.name
Tipo: string
Nome de um segredo TLS no mesmo namespace que contém a chave privada
tls.key
() e o certificadotls.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 TLSmongot
no.
spec.resourceRequirements
Tipo: core/v1/ResourceRequirements
CPU e memória para as quais o container
mongodb-search
pode 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.limits
Tipo: objeto
Limite superior no recurso, CPU e memória, que o contêiner do
mongodb-search
pode 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.requests
Tipo: 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.persistence.single
Tipo: 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çãolabelSelector
string
Marcação usada para vincular volumes montados a diretórios.
storage
string
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 60 o conjunto de réplicas exigir gigabytes de espaço de armazenamento, defina esse valor
60Gi
como.storageClass
string
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
reclaimPolicy
como Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.MongoDBSearch
suporta apenas o campo de persistênciasingle
. Se omitido, o Operador Kubernetes definespec.persistence.single.storage
como10GB
.
spec.version
Tipo: 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.statefulSet
Digite: apps/v1/StatefulSet
Especificação do StatefulSet, criado para implantar
mongot
os pods, que substitui as configurações que o Operador Kubernetes aplica. As substituições são sempre aplicadas por último. Suporta osspec.statefulSet.spec
spec.statefulSet.metadata
campos e.Observação
Não defina requisitos de recursos ou configurações de persistência usando
spec.statefulSet
. Em vez disso, utilize os camposspec.resourceRequirements
espec.persistence
respectivamente.