O recurso MongoDBMultiCluster define sua implantação do MongoDB de clusters multi-Kubernetes e fornece aos Controladores MongoDB para o Operador Kubernetes as informações necessárias para criar ou atualizar seus clusters, sistema do Ops Manager, statefulSets, serviços e outros recursos do Kubernetes.
Exemplo
O exemplo a seguir mostra uma especificação de recurso para uma implantação do MongoDB em cluster multi-Kubernetes:
1 # This example provides statefulSet overrides per cluster. 2 3 apiVersion: mongodb.com/v1 4 kind: MongoDBMultiCluster 5 metadata: 6 name: multi-replica-set 7 spec: 8 version: 8.0.0 9 type: ReplicaSet 10 duplicateServiceObjects: false 11 credentials: my-credentials 12 opsManager: 13 configMapRef: 14 name: my-project 15 clusterSpecList: 16 - clusterName: cluster1.example.com 17 members: 2 18 statefulSet: 19 spec: 20 template: 21 spec: 22 containers: 23 # Example of custom sidecar containers. Remove it before using the file in production. 24 - name: sidecar1 25 image: busybox 26 command: [ "sleep" ] 27 args: [ "infinity" ] 28 # Use the following settings to override the default storage size of the "data" Persistent Volume. 29 volumeClaimTemplates: 30 - metadata: 31 name: data 32 spec: 33 resources: 34 requests: 35 storage: 1Gi 36 - clusterName: cluster2.example.com 37 members: 1 38 statefulSet: 39 spec: 40 template: 41 spec: 42 containers: 43 # Example of custom sidecar containers. Remove it before using the file in production. 44 - name: sidecar2 45 image: busybox 46 command: [ "sleep" ] 47 args: [ "infinity" ] 48 volumeClaimTemplates: 49 - metadata: 50 name: data 51 spec: 52 resources: 53 requests: 54 storage: 1Gi 55 - clusterName: cluster3.example.com 56 members: 1 57 statefulSet: 58 spec: 59 template: 60 spec: 61 containers: 62 # Example of custom sidecar containers. Remove it before using the file in production. 63 - name: sidecar3 64 image: busybox 65 command: [ "sleep" ] 66 args: [ "infinity" ] 67 volumeClaimTemplates: 68 - metadata: 69 name: data 70 spec: 71 resources: 72 requests: 73 storage: 1Gi 74 75 ...
Configurações de recursos MongoDBMultiCluster necessárias
Esta seção descreve as configurações que você deve utilizar para seu recurso MongoDBMultiCluster .
apiVersionTipo: string
Versão do esquema de recursos do MongoDB Kubernetes.
kindTipo: string
Tipo de recurso MongoDB Kubernetes para criar. Defina isso como
MongoDBMultiCluster.
metadata.nameTipo: string
Nome do recurso Kubernetes MongoDB que você está criando.
Os nomes de recursos devem ter 44 caracteres ou menos.
spec.credentialsTipo: string
Nome do secret que você criou como credenciais de autenticação da API do Ops Manager para o Kubernetes Operator se comunicar com o Ops Manager.
The Ops Manager Kubernetes Secret object holding the Credentials must exist on the same Namespace as the resource you want to create.
Importante
O operador gerencia alterações no segredo
O Operador Kubernetes rastreia quaisquer alterações no Segredo e reconcilia o estado do recurso
MongoDB.
spec.typeTipo: string
Tipo de recurso MongoDB Kubernetes para criar. O único valor aceito para uma implantação do MongoDB em cluster multi-Kubernetes é ReplicaSet.
spec.versionTipo: string
Versão do MongoDB instalada para este recurso do
MongoDBMultiCluster.Importante
Certifique-se de escolher uma versão compatível do MongoDB Server.
Versões compatíveis diferem dependendo da imagem base que o recurso do banco de dados MongoDB utiliza.
Configurações de recursos MongoDBMultiCluster opcionais
MongoDBMultiCluster Recursos
pode usar as seguintes configurações:
spec.additionalMongodConfigTipo: collection
Opções de configuração adicionais para iniciar processos no MongoDB.
O Kubernetes Operator aceita todas as opções de configuração que a versão do MongoDB que você distribui pelo MongoDB Agent aceita, exceto que o Kubernetes Operator substitui os valores que você fornece para qualquer uma das seguintes opções:
net.portnet.tls.certificateKeyFilenet.tls.clusterFilereplication.replSetNamesecurity.clusterAuthModesharding.clusterRolestorage.dbPathsystemLog.destinationsystemLog.path
Para saber mais sobre as opções de configuração que o operador Kubernetes possui, consulte Configurações exclusivas do operador Kubernetes do MongoDB.
To learn which configuration options you can use, see Advanced Options for MongoDB Deployments in the Ops Manager documentation.
spec.agentTipo: collection
Configurações do MongoDB Agent para o recurso do MongoDB database.
spec.agent.startupOptionsTipo: collection
Configurações do MongoDB Agent com as quais você deseja iniciar o recurso de reconhecimento de data center MongoDB.
Você deve fornecer as configurações do MongoDB Agent como pares de valor-chave. Os valores devem ser strings. Para obter uma lista das configurações do MongoDB Agent compatíveis, consulte:
Configurações do MongoDB Agent para projetos do Cloud Manager.
Configurações do MongoDB Agent para a versão do Ops Manager que você distribuiu com o Kubernetes Operator.
spec.backupTipo: collection
The collection container for spec.backup.mode, which enables continuous backups for MongoDB resources in Kubernetes Operator.
spec.backup.assignmentLabelsTipo: array
Uma lista de etiquetas de atribuição para os processos do Serviço de Backup Daemon . Use rótulos de atribuição para identificar se processos específicos de daemon de backup estão associados a projetos específicos. Se você definir rótulos de atribuição usando o operador Kubernetes , os valores definidos no arquivo de configuração do Kubernetes para rótulos de atribuição substituirão os valores definidos na UI do MongoDB Ops Manager . Os rótulos de atribuição que você não define usando o Kubernetes Operator continuam a usar os valores definidos na interface do usuário do MongoDB Ops Manager .
spec.backup.autoTerminateOnDeletionTipo: booleano
Flag that indicates whether the Kubernetes Operator stops and terminates the backup when you delete a
MongoDBMultiClusterresource. The default value isfalse. Setting this flag totrueis useful when you want to delete theMongoDBMultiClusterresource while the spec.backup.mode setting is set toenabled.
spec.backup.encryptionTipo: objeto
Objeto que contém as definições de configuração de criptografia de backup.
spec.backup.encryption.kmipTipo: objeto
Objeto que contém as definições de configuração de criptografia de backup KMIP. Para saber mais, consulte Configurar o KMIP Backup Encryption para o Ops Manager.
spec.backup.encryption.kmip.clientTipo: objeto
Objeto que contém as definições de configuração de criptografia de backup KMIP.
spec.backup.modeTipo: string
Habilita backups contínuos para um recurso do
MongoDBMultiCluster. Os valores possíveis sãoenabled,disabledeterminated.Observação
The spec.backup.mode setting relies on Backup that is enabled in Ops Manager and requires that the
spec.backup.enabledvalue in the Ops Manager resource specification is set totrue.After you enable continuous backups for your MongoDB resource with spec.backup.mode, you can check the backup status.
spec.backup.snapshotScheduleTipo: collection
Container de collection para configurações de agendamento de snapshots para backups contínuos de recursos do MongoDB no Kubernetes Operator.
spec.backup.snapshotSchedule.dailySnapshotRetentionDaysTipo: número
Número de dias para manter snapshots diários. Você pode definir um valor entre
1e365. Definir o valor em0desabilita esta regra.
spec.backup.snapshotSchedule.fullIncrementalDayOfWeekTipo: string
Dia da semana em que o Ops Manager tira um snapshot completo. Essa configuração garante um backup completo recente. O Ops Manager define o valor-padrão como
SUNDAY.
spec.backup.snapshotSchedule.monthlySnapshotRetentionMonthsTipo: número
Número de meses para manter snapshots mensais. Você pode definir um valor entre
1e36. Definir o valor em0desabilita esta regra.
spec.backup.snapshotSchedule.pointInTimeWindowHoursTipo: número
Número de horas no passado para as quais você pode criar um snapshot de ponto no tempo.
spec.backup.snapshotSchedule.referenceHourOfDayTipo: número
Hora do dia UTC para agendar snapshots usando um relógio de 24 horas. Você pode definir um valor entre
0e23.
spec.backup.snapshotSchedule.referenceMinuteOfHourTipo: número
Minuto da hora UTC para agendar snapshots. Você pode definir um valor entre
0e59, inclusive.
spec.backup.snapshotSchedule.snapshotIntervalHoursTipo: número
Número de horas entre snapshots. Você pode definir um valor de
6,8,12ou24.
spec.backup.snapshotSchedule.snapshotRetentionDaysTipo: número
Número de dias para manter snapshots recentes. Você pode definir um valor entre
2e5.
spec.backup.snapshotSchedule.weeklySnapshotRetentionWeeksTipo: número
Número de semanas para manter snapshots semanais. Você pode definir um valor entre
1e52. Definir o valor em0desabilita esta regra.
spec.cloudManager.configMapRef.nameTipo: string
Alias for spec.opsManager.configMapRef.name.
spec.clusterSpecListTipo: collection
Lista de especificações para cada cluster do Kubernetes em um recurso do
MongoDBMultiCluster.
spec.clusterSpecList.clusterNameTipo: string
Nome do cluster onde o Operador do MongoDB Controladores para Kubernetes agenda o StatefulSet. Quando o Operador do Kubernetes implanta este recurso
MongoDBMultiCluster, ele cria uma conta de serviço. Este nome é o que a conta de serviço no cluster central usa para se comunicar com os clusters de carga de trabalho.
spec.clusterSpecList.externalAccess.externalDomainTipo: string
Um domínio externo usado para expor externamente seu sistema de conjunto de réplicas.
Por padrão, cada membro do conjunto de réplica utiliza o FQDN (
*.svc.cluster.local) do Kubernetes Pode como o nome de host padrão. No entanto, se você adicionar um domínio externo a esta configuração, o conjunto de réplicas usará um nome de host que é um subdomínio do domínio especificado. Este nome de host usa o seguinte formato:<replica-set-name>-<cluster-idx>-<pod-idx>.<externalDomain>Por exemplo:
multi-replica-set-0-1.cluster-0.example.comAfter you deploy the replica set with this setting, the Kubernetes Operator uses the hostname with the external domain to override the
processes[n].hostnamefield in the Ops Manager automation configuration. Then, the MongoDB Agent uses this hostname to connect tomongod.Para especificar outros nomes de host para conectar ao conjunto de réplica, você pode utilizar a configuração do
spec.connectivity.replicaSetHorizons. No entanto, as seguintes conexões ainda usam o nome de host com o domínio externo:The MongoDB Agent to connect to
mongod.
WARNING: Specifying this field changes how Ops Manager registers
mongodprocesses. You can't change the value of this field or anyprocesses[n].hostnamefields in the Ops Manager automation configuration for a running replica set deployment.Importante
Use essa configuração somente ao implantar um conjunto de réplicas de sistema do MongoDB de cluster multi-Kubernetes sem uma interface de serviço. Consulte Implantar conjuntos de réplicas em um cluster multi-Kubernetes sem uma interface de serviço.
spec.clusterSpecList.externalAccess.externalServiceTipo: collection
Configuration for externally exposing a specific cluster in your multi-Kubernetes cluster MongoDB deployment. These settings override the global spec.externalAccess.externalService settings.
Ao definir a configuração spec.externalAccess, o Kubernetes Operator automaticamente cria um serviço de balanceador de carga externa com valores padrão. Você pode substituir determinados valores ou adicionar novos valores dependendo de suas necessidades. Por exemplo, se você deseja criar serviços NodePort e não precisa de um balanceador de carga , será necessário configurar substituições em sua especificação do Kubernetes:
externalAccess: externalService: annotations: # cloud-specific annotations for the service spec: type: NodePort # default is LoadBalancer # you can specify other spec overrides if necessary Para obter mais informações sobre a especificação do Kubernetes, consulte ServiceSpec na documentação do Kubernetes.
spec.clusterSpecList.externalAccess.externalService.annotationsTipo: collection
Pares de valores-chave que permitem adicionar definições de configuração específicas do provedor de nuvem a um cluster específico em seu sistema do MongoDB de vários clusters Kubernetes. Esta configuração substitui a configuração global, spec.externalAccess.externalService.annotations. Para saber mais, consulte as anotações e a documentação do seu provedor de nuvem Kubernetes.
Você pode usar anotações para especificar valores de espaço reservado para serviços externos usados por sistemas do Kubernetes Operator. O operador Kubernetes substitui automaticamente estes valores pelos valores corretos, conforme descrito na tabela a seguir. O uso de espaços reservados permite fornecer anotações específicas em cada serviço para um Pod específico.
ValorDescrição{resourceName}Igual a
metadata.name.{namespace}Igual a
metadata.namespace.{podIndex}Índice do Pod atribuído pelo StatefulSet e direcionado pelo serviço externo atual.
{podName}Igual a
{resourceName}-{clusterIndex}-{podIndex}.{clusterName}The current cluster name set in spec.clusterSpecList.clusterName.
{clusterIndex}The index initially assigned by the Kubernetes Operator for the current cluster name set in spec.clusterSpecList.clusterName.
This value might not reflect the order of the member clusters defined in spec.clusterSpecList. Although you can change the order of member clusters in spec.clusterSpecList, the Kubernetes Operator still uses the index that it initially assigned for the current cluster name.
{statefulSetName}O StatefulSet. Igual a
{resourceName}-{clusterIndex}.{externalServiceName}Nome gerado do serviço externo, com base nos valores de espaço reservado que você especificou. Igual a
{resourceName}-{clusterIndex}-{podIndex}-svc-external.{mongodProcessDomain}The domain name of the server that is hosting the mongod process. Equal to spec.externalAccess.externalDomain if specified. Otherwise, equal to the domain used for the
mongodprocess FQDN.Por exemplo, para o nome de host do processo
mdb-rs-1.example.com,example.comé o nome do domínio.{mongodProcessFQDN}The
mongodprocess hostname set in the automation configuration.The process hostname depends on your deployment configuration. If you've configured your multi-Kubernetes cluster MongoDB deployment to use external domains, such as for a deployment without service mesh, the process hostname uses the following format:
{resourceName}-{clusterIndex}-{podIndex}.{mongodProcessDomain}Por exemplo:
mdb-rs-0-1.example.comSe o seu sistema não utilizar domínios externos, o nome do host do processo utilizará o seguinte formato:
{resourceName}-{clusterIndex}-{podIndex}-svc.{namespace}.svc.cluster.localPor exemplo:
mdb-rs-1-svc.ns.svc.cluster.localObservação
Você deve usar apenas valores de espaço reservado conhecidos, conforme especificado na tabela, e garantir que seus espaços reservados não usem valores vazios ou nulos. Caso contrário, o Kubernetes Operator retorna um erro. Por exemplo, você pode encontrar a seguinte mensagem de erro:
error replacing placeholders in map with key=external-dns.alpha.kubernetes.io/hostname, value={resourceName}-{podIndex}-{unknownPlaceholder}.{clusterName}-{clusterIndex}.example.com: missing values for the following placeholders: {clusterName}, {clusterIndex}, {unknownPlaceholder}`` Exemplo
O exemplo a seguir especifica os espaços reservados
{resourceName},{podIndex}e{namespace}:apiVersion: mongodb.com/v1 kind: MongoDB metadata: name: mdb-rs namespace: ns spec: replicas: 3 externalAccess: externalService: annotations: external-dns.alpha.kubernetes.io/hostname: {resourceName}-{podIndex}-{namespace}.example.com O Operador do Kubernetes preenche automaticamente as anotações para os serviços externos com base no valor apropriado para cada espaço reservado. Por exemplo:
mdb-rs-0-svc-external: annotations: external-dns.alpha.kubernetes.io/hostname: mdb-rs-0-ns.example.com mdb-rs-1-svc-external: annotations: external-dns.alpha.kubernetes.io/hostname: mdb-rs-1-ns.example.com mdb-rs-2-svc-external: annotations: external-dns.alpha.kubernetes.io/hostname: mdb-rs-2-ns.example.com
spec.clusterSpecList.externalAccess.externalService.specTipo: collection
Configuração do ServiceSpec. Para saber mais, consulte spec.clusterSpecList.externalAccess.externalService.
spec.clusterSpecList.memberConfigTipo: collection
Especificação para cada conjunto de réplicas MongoDB e seus membros em sua implantação do MongoDB de multikubernetes cluster.
The order of the elements in the object for each replica set must reflect the order of members in the replica set. Por exemplo, o primeiro elemento afeta o Pod no índice
0, o segundo elemento afeta o índice1, e assim por diante.Exemplo
Considere o seguinte exemplo de especificação para um sistema MongoDB de cluster multi-Kubernetes com três conjuntos de réplicas:
apiVersion: mongodb.com/v1 kind: MongoDBMultiCluster metadata: name: multi-replica-set spec: version: 8.0.0 type: ReplicaSet duplicateServiceObjects: false credentials: my-credentials opsManager: configMapRef: name: my-project clusterSpecList: - clusterName: cluster1.example.com members: 2 memberConfig: - votes: 1 priority: "0.5" tags: tag1: "value1" environment: "prod" - votes: 1 priority: "1.5" tags: tag2: "value2" environment: "prod" - clusterName: cluster2.example.com members: 1 memberConfig: - votes: 1 priority: "0.5" tags: tag1: "value1" environment: "prod" - clusterName: cluster3.example.com members: 1 memberConfig: - votes: 1 priority: "0.5" tags: tag1: "value1" environment: "prod"
spec.clusterSpecList.memberConfig.priorityTipo: string
Number that indicates the relative likelihood of a MongoDB replica set member to become the primary.
Para aumentar a probabilidade relativa de que um nó do conjunto de réplicas se torne o primary, especifique um valor de
prioritymais alto.Para diminuir a probabilidade relativa de que um nó do conjunto de réplicas se torne o primary, especifique um valor de
prioritymais baixo.
Por exemplo, um nó com uma
memberConfig.priorityde1.5tem mais probabilidade do que um nó com umamemberConfig.priorityde0.5de se tornar o primary.A member with a
memberConfig.priorityof0is ineligible to become the primary. To learn more, see Member Priority.
spec.clusterSpecList.memberConfig.tagsTipo: mapa
Mapa de tags de conjuntos de réplicas para direcionar operações de leitura e escrita para nós específicos do seu conjunto de réplicas MongoDB.
spec.clusterSpecList.memberConfig.votesTipo: número
Determina se um nó do conjunto de réplicas do MongoDB pode votar em uma eleição. Defina como
1para permitir que o nó vote. Defina como0para excluir o nó de uma eleição.
spec.clusterSpecList.membersTipo: número
Número de membros no conjunto de réplicas MongoDB.
spec.clusterSpecList.serviceTipo: string
Padrão: <resource_name>+"-service"
Nome do serviço Kubernetes que você deseja criar ou usar para um StatefulSet. Se um serviço com este nome já existir, o MongoDB Drivers for Kubernetes Operator não o excluirá nem recriará. Esta configuração permite que você crie seus próprios serviços personalizados e permite que o operador Kubernetes os reutilize.
spec.clusterSpecList.statefulSet.specTipo: collection
Fornece a configuração para a substituição do StatefulSet para cada um dos StatefulSets do cluster em um sistema MongoDB de cluster multi-Kubernetes. Para definir a configuração global que se aplica a todos os clusters em sua implantação do MongoDB de multi-Kubernetes cluster, consulte spec.statefulSet.spec.
Esta configuração se aplica somente a tipos de recurso de conjunto de réplicas em sistemas do MongoDB de clusters multikubernetes.
spec.connectivity.replicaSetHorizonsTipo: collection
Permite que você forneça configurações de DNS diferentes para os aplicativos clientes e os agentes do MongoDB. O Operador Kubernetes utiliza o DNS de horizonte dividido para membros do conjunto de réplica. Este recurso permite comunicação dentro do cluster Kubernetes e de fora do Kubernetes.
Você pode adicionar diversos mapeamentos externos por host.
Observação
Certifique-se de que cada valor nesta array é único.
Certifique-se de que o número de entradas nesta array corresponda ao valor fornecido em spec.clusterSpecList.members.
Provide a value for the spec.security.certsSecretPrefix setting to enable TLS. This method to use split horizons requires the Server Name Indication extension of the TLS protocol.
Neste exemplo, os clientes se comunicam com o conjunto de réplicas usando o horizonte de
example-website.15 security: 16 tls: 17 enabled: true 18 connectivity: 19 replicaSetHorizons: 20 - "example-website": "web1.example.com:30907" 21 - "example-website": "web2.example.com:32350" 22 - "example-website": "web3.example.com:31185" 23 ...
spec.duplicateServiceObjectsTipo: booleano
Padrão: true
Especifica se o Operador Kubernetes duplica um objeto de rede de serviço do Pod em cada cluster para permitir a resolução de DNS . Defina como
falsese você configurar um proxy DNS para sua tela de serviço. Por exemplo,consulte Proxy de DNS na documentação do Istion.
spec.externalAccessTipo: collection
Especificação para expor sua implantação do MongoDB de cluster multi-Kubernetes para conexões externas. Para saber como se conectar ao MongoDB deployment de seu cluster multi-Kubernetes de fora do cluster Kubernetes, consulte Como conectar a recursos de vários clusters de fora do Kubernetes.
Essas configurações se aplicam a serviços em todos os clusters. Para substituir essas configurações globais em um cluster específico, use spec.clusterSpecList.externalAccess.externalService.
Se você adicionar
spec.externalAccess, o Kubernetes Operator criará um serviço externo para cada Pod em um conjunto de réplicas. Os serviços externos fornecem um ponto de entrada externo para cada Pod do banco de dados MongoDB em um cluster. Cada serviço externo tem seletores que relacionam o serviço externo a um Pod específico.Se você adicionar esta configuração sem um valor, o Kubernetes Operator criará um serviço externo com os seguintes valores padrão:
CampoValorDescriçãoName<pod-name>-svc-externalNome do serviço externo. Não é possível alterar este valor.
TypeLoadBalancerCria um serviço LoadBalancer externo.
Port<Port Number>A port for
mongod.publishNotReadyAddresstrueEspecifica que registros DNS são criados mesmo que o Pod não esteja pronto. Não defina como
falsepara nenhum pod de banco de dados .Observação
If you set spec.clusterSpecList.externalAccess.externalDomain, the external service adds another port (
Port Number + 1) for backups.
spec.externalAccess.externalServiceTipo: collection
Especificação para substituir os valores padrão em
spec.externalAccess.Ao definir a configuração spec.externalAccess, o Kubernetes Operator automaticamente cria um serviço de balanceador de carga externa com valores padrão. Você pode substituir determinados valores ou adicionar novos valores dependendo de suas necessidades. Por exemplo, se você deseja criar serviços NodePort e não precisa de um balanceador de carga , será necessário configurar substituições em sua especificação do Kubernetes:
externalAccess: externalService: annotations: # cloud-specific annotations for the service spec: type: NodePort # default is LoadBalancer # you can specify other spec overrides if necessary Para obter mais informações sobre a especificação do Kubernetes, consulte ServiceSpec na documentação do Kubernetes.
spec.externalAccess.externalService.annotationsTipo: collection
Pares de valores-chave que permitem adicionar definições de configuração específicas do provedor de nuvem a todos os clusters em seu sistema do MongoDB de vários clusters Kubernetes. Para substituições específicas do cluster, consulte spec.clusterSpecList.externalAccess.externalService.annotations. Para saber mais, consulte as anotações e a documentação do provedor de nuvem que você usa para os sistemas do Kubernetes.
Você pode usar anotações para especificar valores de espaço reservado para serviços externos usados por sistemas do Kubernetes Operator. O operador Kubernetes substitui automaticamente estes valores pelos valores corretos, conforme descrito na tabela a seguir. O uso de espaços reservados permite fornecer anotações específicas em cada serviço para um Pod específico.
ValorDescrição{resourceName}Igual a
metadata.name.{namespace}Igual a
metadata.namespace.{podIndex}Índice do Pod atribuído pelo StatefulSet e direcionado pelo serviço externo atual.
{podName}Igual a
{resourceName}-{clusterIndex}-{podIndex}.{clusterName}The current cluster name set in spec.clusterSpecList.clusterName.
{clusterIndex}The index initially assigned by the Kubernetes Operator for the current cluster name set in spec.clusterSpecList.clusterName.
This value might not reflect the order of the member clusters defined in spec.clusterSpecList. Although you can change the order of member clusters in spec.clusterSpecList, the Kubernetes Operator still uses the index that it initially assigned for the current cluster name.
{statefulSetName}O StatefulSet. Igual a
{resourceName}-{clusterIndex}.{externalServiceName}Nome gerado do serviço externo, com base nos valores de espaço reservado que você especificou. Igual a
{resourceName}-{clusterIndex}-{podIndex}-svc-external.{mongodProcessDomain}The domain name of the server that is hosting the mongod process. Equal to spec.externalAccess.externalDomain if specified. Otherwise, equal to the domain used for the
mongodprocess FQDN.Por exemplo, para o nome de host do processo
mdb-rs-1.example.com,example.comé o nome do domínio.{mongodProcessFQDN}The
mongodprocess hostname set in the automation configuration.The process hostname depends on your deployment configuration. If you've configured your multi-Kubernetes cluster MongoDB deployment to use external domains, such as for a deployment without service mesh, the process hostname uses the following format:
{resourceName}-{clusterIndex}-{podIndex}.{mongodProcessDomain}Por exemplo:
mdb-rs-0-1.example.comSe o seu sistema não utilizar domínios externos, o nome do host do processo utilizará o seguinte formato:
{resourceName}-{clusterIndex}-{podIndex}-svc.{namespace}.svc.cluster.localPor exemplo:
mdb-rs-1-svc.ns.svc.cluster.localObservação
Você deve usar apenas valores de espaço reservado conhecidos, conforme especificado na tabela, e garantir que seus espaços reservados não usem valores vazios ou nulos. Caso contrário, o Kubernetes Operator retorna um erro. Por exemplo, você pode encontrar a seguinte mensagem de erro:
error replacing placeholders in map with key=external-dns.alpha.kubernetes.io/hostname, value={resourceName}-{podIndex}-{unknownPlaceholder}.{clusterName}-{clusterIndex}.example.com: missing values for the following placeholders: {clusterName}, {clusterIndex}, {unknownPlaceholder}`` Exemplo
O exemplo a seguir especifica os espaços reservados
{resourceName},{podIndex}e{namespace}:apiVersion: mongodb.com/v1 kind: MongoDB metadata: name: mdb-rs namespace: ns spec: replicas: 3 externalAccess: externalService: annotations: external-dns.alpha.kubernetes.io/hostname: {resourceName}-{podIndex}-{namespace}.example.com O Operador do Kubernetes preenche automaticamente as anotações para os serviços externos com base no valor apropriado para cada espaço reservado. Por exemplo:
mdb-rs-0-svc-external: annotations: external-dns.alpha.kubernetes.io/hostname: mdb-rs-0-ns.example.com mdb-rs-1-svc-external: annotations: external-dns.alpha.kubernetes.io/hostname: mdb-rs-1-ns.example.com mdb-rs-2-svc-external: annotations: external-dns.alpha.kubernetes.io/hostname: mdb-rs-2-ns.example.com
spec.externalAccess.externalService.specTipo: collection
Configuração do ServiceSpec. Para saber mais, consulte spec.externalAccess.externalService.
spec.featureCompatibilityVersionTipo: número
Limits changes to data that occur with an upgrade to a new major version. This allows you to downgrade to the previous major version. To learn more about feature compatibility, see
setFeatureCompatibilityVersionin the MongoDB Manual.
spec.logLevelTipo: string
Configura o nível de registro do agente de automação dentro do Pod. Os valores aceitos incluem:
DEBUGINFOWARNERRORFATAL
spec.opsManager.configMapRef.nameTipo: string
Nome do ConfigMap com a configuração de conexão do Cloud Manager ou Ops Manager. A configuração spec.cloudManager.configMapRef.name é um alias para essa configuração e pode ser usada em seu lugar.
Esse valor deve existir no mesmo namespace que o recurso que você deseja criar.
Importante
O operador gerencia alterações no ConfigMap
O Kubernetes Operator acompanha todas as alterações no ConfigMap e reconcilia o estado do recurso do
MongoDB.
spec.persistentTipo: booleano
Padrão: true
AVISO: conceda aos seus contêineres permissão para gravar no Volume Persistente. O Operador Kubernetes define
fsGroup = 2000,runAsUser = 2000erunAsNonRoot = trueemsecurityContext. O Kubernetes Operator definefsgroupigual arunAsUserpara tornar o volume gravável para um usuário que executa o processo principal no container. Para saber mais, consulte Configurar um contexto de segurança para um pod ou contêiner e a discussão relacionada na documentação do Kubernetes. Se a reimplementação do recurso não corrigir os problemas com o Volume Persistente, entre em contato com o Suporte do MongoDB.Se você não utilizar Volumes Persistentes, os gráficos Disk Usage e Disk IOPS não poderão ser exibidos na guia Processes na página Deployment ou na página Metrics ao revisar os dados para este sistema.
spec.security.authenticationTipo: collection
Especificações de autenticação para a implementação do MongoDB de clusters multikubernetes.
spec.security.authentication.agentsTipo: collection
Configuração de autenticação do MongoDB Agent para o projeto do Cloud Manager ou Ops Manager.
spec.security.authentication.agents.automationLdapGroupDNTipo: string
O Nome Distinto (DN) do grupo LDAP ao qual o usuário do MongoDB Agent pertence.
Esta configuração é necessária se:
spec.security.authentication.ldap.authzQueryTemplate está presente, e
spec.security.authentication.agents.mode is
LDAPorX509.
spec.security.authentication.agents.automationPasswordSecretRefTipo: collection
Detalhes do segredo que contém a senha para o spec.security.authentication.agents.automationUserName usuário.
This setting is required if spec.security.authentication.agents.mode is
LDAP.
spec.security.authentication.agents.automationPasswordSecretRef.keyTipo: string
Digite o spec.security.authentication.agents.automationPasswordSecretRef.name segredo que contém a senha do usuário em spec.security.authentication.agents.automationUserName.
This setting is required if spec.security.authentication.agents.mode is
LDAP.
spec.security.authentication.agents.automationPasswordSecretRef.nameTipo: string
Nome do segredo que contém a senha do usuário spec.security.authentication.agents.automationUserName . Você deve criar este segredo no mesmo namespace para o qual distribuirá o operador Kubernetes:
kubectl create secret generic ldap-agent-user \ --from-literal="password=<password>" -n <metadata.namespace> Esse segredo deve conter uma chave cujo valor corresponda à senha do especificador.security.authentication.agents.automationUserName usuário em seu sistema de LDAP.
This setting is required if spec.security.authentication.agents.mode is
LDAP.
spec.security.authentication.agents.automationPasswordSecretRef.optionalTipo: booleano
Especifica se estas opções são obrigatórias ou opcionais:
spec.security.authentication.agents.automationUserNameTipo: string
Name of the user that the MongoDB Agents use to interact with your multi-Kubernetes cluster MongoDB deployment. The username is mapped to an LDAP Distinguished Name (DN) according to spec.security.authentication.ldap.userToDNMapping. The resulting DN must already exist in your LDAP deployment.
This setting is required if spec.security.authentication.agents.mode is
LDAP.
spec.security.authentication.agents.clientCertificateSecretRef.nameTipo: string
Padrão: agente-certs
Especifica o secreto que contém o certificado TLS do agente MongoDB.
Este segredo deve conter a chave
mms-automation-agent-pem. O valor dessa chave deve ser um certificado TLS que possa ser validado pelo servidor.Você deve criar este segredo no mesmo namespace para o qual distribuirá o operador Kubernetes:
kubectl create secret generic agent-certs \ --from-file=mms-automation-agent-pem=<automation-cert.pem> \ --namespace=<metadata.namespace>
spec.security.authentication.enabledTipo: booleano
Padrão: false
Especifica se a autenticação está habilitada no projeto do Cloud Manager ou MongoDB Ops Manager . Se configurado para , você deverá configurar um mecanismo de autenticação em
true.Importante
O Kubernetes Operator managed a autenticação para esse recurso MongoDB se você incluir essa configuração, mesmo que ela esteja definida como
false. Você não pode configurar a autenticação para esse recurso usando a interface de usuário ou as API do Cloud Manager ou do Ops Manager enquanto essa configuração existir na especificação do recurso.Omita esta configuração se quiser managed a autenticação usando a interface de usuário ou as API do Cloud Manager ou do Ops Manager.
spec.security.authentication.agents.modeTipo: string
The authentication mechanism that the MongoDB Agents for your multi-Kubernetes cluster MongoDB deployment use. Valid values are
SCRAM,SCRAM-SHA-1,MONGODB-CR,X509, andLDAP. The value you specify must also be present in spec.security.authentication.modes. We recommendSCRAM-SHA-256 (SCRAM)overSCRAM-SHA-1. If you specifySCRAM-SHA-1, you must also specifyMONGODB-CR.This setting is required if you specified more than one value for spec.security.authentication.modes.
spec.security.authentication.ignoreUnknownUsersTipo: booleano
Padrão: false
Determina se você pode modificar usuários de banco de dados que não foram configurados por meio do Kubernetes Operator nem da interface de usuário do Cloud Manager ou do Ops Manager.
To manage database users directly through the
mongodormongos, set totrue.
spec.security.authentication.internalClusterTipo: string
Specifies whether X.509 internal cluster authentication is enabled.
Para habilitar a autenticação de cluster interno X.509, defina como
"X509". Isso requer a especificação das seguintes configurações:spec.security.authentication.modes
: ["X509"]
O operador Kubernetes aceita os seguintes valores:
["X509"]: a autenticação interna do cluster X.509 está habilitada.""ou omitida: a autenticação interna do cluster não está habilitada.
Importante
Depois de habilitar a autenticação interna do cluster, não será possível desabilitá-la.
spec.security.authentication.ldapTipo: collection
Necessário para a autenticação LDAP.
Configures LDAP authentication for the Cloud Manager or Ops Manager project. To enable LDAP authentication, set spec.security.authentication.modes to
["LDAP"].
spec.security.authentication.ldap.authzQueryTemplateTipo: string
Necessário para a autorização LDAP.
Um modelo de URL de query com formatação LDAP RFC4515 e RFC4516 executado pelo MongoDB para obter os grupos LDAP aos quais o usuário pertence. A query é relativa ao host ou hosts especificados no
spec.security.authentication.ldap.servers. Você pode utilizar os seguintes tokens no modelo:{USER}- Substitutes the authenticated username, or the
transformedusername, into the LDAP query.
{PROVIDED_USER}- Substitui o nome de usuário fornecido, antes da autenticação ou transformação LDAP, na query LDAP. (Available starting in MongoDB version 4.2).
Para obter mais detalhes, consulte Modelos de query LDAP no Manual do MongoDB.
spec.security.authentication.ldap.bindQueryPasswordSecretRefTipo: collection
Necessário para a autenticação LDAP.
Especifica o secreto que contém a senha com a qual MongoDB se liga ao conectar ao servidor LDAP.
spec.security.authentication.ldap.bindQueryPasswordSecretRef.nameTipo: string
Necessário para a autenticação LDAP.
Nome do segredo que contém a senha com a qual o MongoDB se vincula ao se conectar ao servidor LDAP.
O segredo deve conter apenas um campo
password, que armazena a senha.
spec.security.authentication.ldap.bindQueryUserTipo: string
Necessário para a autenticação LDAP.
LDAP Nome Distinto ao qual MongoDB se liga ao conectar ao servidor LDAP.
spec.security.authentication.ldap.caConfigMapRefTipo: collection
Necessário para a autenticação LDAP com TLS.
ConfigMap que contém um CA que valida o certificado TLS do servidor LDAP.
spec.security.authentication.ldap.caConfigMapRef.keyTipo: string
Necessário para a autenticação LDAP com TLS.
Nome do campo que armazena o CA que valida o certificado LDAP do servidor TLS.
spec.security.authentication.ldap.caConfigMapRef.nameTipo: string
Necessário para a autenticação LDAP com TLS.
Nome do ConfigMap que contém um CA que valida o certificado TLS do servidor LDAP.
spec.security.authentication.ldap.caConfigMapRef.optionalTipo: booleano
Especifica se estas opções são obrigatórias ou opcionais:
spec.security.authentication.ldap.serversTipo: array de strings
Necessário para a autenticação LDAP.
Lista de nomes de hosts e portas dos servidores LDAP. Especifique os nomes de host com suas respectivas portas no seguinte formato:
spec: security: authentication: ldap: servers: - "<hostname1>:<port1>" - "<hostname2>:<port2>"
spec.security.authentication.ldap.timeoutMSTipo: inteiro
Especifica quantos milissegundos uma solicitação de autenticação deve esperar antes de atingir o tempo limite.
spec.security.authentication.ldap.transportSecurityTipo: string
Necessário para a autenticação LDAP.
Especifica se o servidor LDAP aceita TLS.
Se o servidor LDAP aceitar TLS, configure o valor para
tls. Se o servidor LDAP não aceitar TLS, deixe este valor em branco ou defina o valor paranone.Observação
Se você especificar uma string diferente de
noneoutls, o Kubernetes Operator continuará definindo a configuração comotls.
spec.security.authentication.ldap.userCacheInvalidationIntervalTipo: inteiro
Especifica quantos segundos o MongoDB espera para limpar o cache do usuário LDAP. O padrão é 30 segundos.
spec.security.authentication.ldap.userToDNMappingTipo: string
Maps the username provided to
mongodormongosfor authentication to an LDAP Distinguished Name (DN).For more details, see
security.ldap.userToDNMappingin the MongoDB Manual.
spec.security.authentication.modesTipo: array
Especifica o mecanismo de autenticação usado pelo sistema do MongoDB de clusters multikubernetes. Os valores válidos são
SCRAM,SCRAM-SHA-1,MONGODB-CR,X509eLDAP. RecomendamosSCRAM-SHA-256 (SCRAM)em vezSCRAM-SHA-1. Se você especificarSCRAM-SHA-1, também deverá especificarMONGODB-CR.Observação
To enable X.509 internal cluster authentication for the Cloud Manager or Ops Manager project, set this value to
["X509"]and specify the following settings:forneça um valor para o spec.security.certsSecretPrefix configuração.
Se você fornecer mais de um valor para
spec.security.authentication.modes, também deverá especificar um valor para spec.security.authentication.agents.mode.
spec.security.authentication.requireClientTLSAuthenticationTipo: booleano
Padrão: false
Especifica se o host MongoDB exige que os clientes se conectem usando um certificado TLS. O padrão é
truese você habilitar a autenticação TLS.Para habilitar a autenticação TLS , forneça um valor para o spec.security.certsSecretPrefix configuração.
spec.security.certsSecretPrefixTipo: string
Texto para prefixo para os segredos do Kubernetes que você criou que contêm as chaves e certificados TLS do seu conjunto de réplicas.
É necessário prefixar os segredos com
<prefix>-<metadata.name>.Por exemplo, se você chamar sua implantação
my-deploymente definir o prefixo comomdb, deverá nomear o segredo TLS para as comunicações TLS do cliente comomdb-my-deployment-cert. Além disso, você deve nomear o segredo TLS para autenticação interna do cluster (se ativado) comomdb-my-deployment-clusterfile.Para saber mais sobre nomear os segredos que contêm seus certificados TLS , consulte o tópico em Início Rápido do Multi-Kubernetes-Cluster que se aplica à sua implantação.
spec.security.rolesTipo: array
Array que define funções definidas pelo usuário que oferecem controle de acesso refinado sobre seu sistema do MongoDB de vários clusters Kubernetes.
To enable user-defined roles, the spec.security.authentication.enabled must be
true.Exemplo
Neste exemplo, um role definido pelo usuário denominado
customRolepermite aos usuários atribuídos a este role a:Inserir documentos na collection
catsno banco de dadospetseEncontre e insira documentos na collection
dogsno banco de dadospets.
1 security: 2 authentication: 3 enabled: true 4 modes: 5 - "SCRAM" 6 roles: 7 - role: "customRole" 8 db: admin 9 privileges: 10 - actions: 11 - insert 12 resource: 13 collection: cats 14 db: pets 15 - actions: 16 - insert 17 - find 18 resource: 19 collection: dogs 20 db: pets 21 ...
spec.security.roles.authenticationRestrictionsTipo: array
Array que define o endereço IP de e para o qual os usuários atribuídos a esta spec.security.roles.role podem se conectar.
spec.security.roles.authenticationRestrictions.clientSourceTipo: array
Array de endereços IP ou blocos CIDR a partir dos quais os usuários atribuídos a este spec.security.roles.role podem se conectar.
Os servidores MongoDB rejeitam solicitações de conexão de usuários com esse role se as solicitações vierem de um cliente que não esteja presente nessa array.
spec.security.roles.authenticationRestrictions.serverAddressTipo: array
Array of IP addresses or CIDR blocks to which users assigned this spec.security.roles.role can connect.
Os servidores MongoDB rejeitam solicitações de conexão de usuários com esse role se o cliente solicitar a conexão a um servidor que não esteja presente nessa array.
spec.security.roles.dbTipo: string
O reconhecimento de data center no qual armazenar o role definido pelo usuário.
Exemplo
admin
spec.security.roles.privilegesTipo: array
Array que descreve os privilégios dos usuários que concederam esse role.
spec.security.roles.privileges.actionsTipo: array
List of actions that users granted this role can perform. For a list of accepted values, see Privilege Actions in the MongoDB Manual for the MongoDB versions you deploy with the Kubernetes Operator.
spec.security.roles.privileges.resourceTipo: collection
Resources for which the privilege spec.security.roles.privileges.actions apply.
Essa collection deve incluir:
As configurações spec.security.roles.privilege.resource.db e spec.security.roles.privilege.resource.collection , ou
The spec.security.roles.privileges.resource.cluster setting with a value of
true.
spec.security.roles.privileges.resource.clusterTipo: booleano
Padrão: false
Flag that indicates that the privilege spec.security.roles.privileges.actions apply to all databases and collections in the MongoDB deployment.
Se definido como verdadeiro, não forneça valores para spec.security.roles.privilege.resource.db e spec.security.roles.privilege.resource.collection.
spec.security.roles.privileges.resource.collectionTipo: string
Collection in the spec.security.roles.privileges.resource.db for which the privilege spec.security.roles.privileges.actions apply.
Se você fornecer um valor para esta configuração, você também deverá fornecer um valor para spec.security.roles.privilegios.resource.db.
spec.security.roles.privileges.resource.dbTipo: string
Banco de dados ao qual o privilégio spec.security.roles.privilegios.actions se aplicam.
Se você fornecer um valor para esta configuração, você também deverá fornecer um valor para spec.security.roles.privilege.resource.collection.
spec.security.roles.roleTipo: string
Nome do role definido pelo usuário.
spec.security.tls.additionalCertificateDomainsTipo: collection
Lista de todos os domínios que devem ser adicionados aos certificados TLS para cada pod neste sistema. Quando você define esse parâmetro, cada CSR que o operador Kubernetes transforma em um certificado TLS inclui uma SAN no formato
<pod name>.<additional cert domain>.Replica set resources don't need this parameter. Use spec.connectivity.replicaSetHorizons instead.
Observação
Se você adicionar este parâmetro a um recurso habilitado para TLS, o Kubernetes exibirá um erro quando o recurso alcançar o estado do
Pending. Este erro é exibido:Please manually remove the |csr| in order to proceed.Para corrigir este problema:Remova todos os CSR existentes para que o Kubernetes possa gerar novos CSRs. Para saber como excluir um recurso, consulte a exclusão de recursos na documentação do Kubernetes.
Aprove os CSRs após o Kubernetes gerá-los.
spec.security.tls.caTipo: string
Forneça o nome do ConfigMap que armazena a CA.
Importante
Se você utilizar um CA personalizado para registrar seus certificados TLS para o recurso do
MongoDBMultiCluster, você deverá especificar este parâmetro.O Operador Kubernetes exige que você nomeie o certificado para o recurso do
MongoDBMultiClusterca-pemno ConfigMap.
spec.security.tls.enabledTipo: booleano
Importante
spec.security.tls.enabledestá obsoleto e será removido em uma versão futura do Kubernetes Operator. Para habilitar o TLS, forneça um valor para o spec.security.certsSecretPrefix configuração.Criptografa comunicações usando certificados TLS entre:
O MongoDB hospeda em um conjunto de réplicas ou configuração de cluster fragmentado
Clients (
mongoshell, drivers, MongoDB Compass, and others) and the MongoDB deployment
spec.statefulSet.specTipo: collection
Especificação global para o StatefulSet que o Operador de Controladores Kubernetes do MongoDB cria para sua implantação do MongoDB de clusters multi Kubernetes.
Para revisar quais campos você pode adicionar aos aplicativos
spec.statefulSet.spec, consulte StatefulSetSpec v1 na documentação do Kubernetes.