Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.

Configure la topología del clúster para los recursos de MongoDB

Puedes configurar la topología de implementación de tus recursos de MongoDB dentro de Kubernetes definiendo NodeAffinity y PodAffinity. NodeAffinity y PodAffinity especifican dónde Kubernetes despliega los recursos personalizados de MongoDB en su clúster de Kubernetes.

Puede implementar la afinidad de nodo aplicando etiquetas de nodo a nodos específicos dentro del clúster de Kubernetes y definir campos labelSelector con etiquetas correspondientes en CustomResourceDefinition de MongoDB. Cuando se aplican etiquetas de nodo y valores labelSelector coincidentes, Kubernetes solo implementa un MongoDB CustomResourceDefinition dado en los nodos que especifiques dentro de tu clúster de Kubernetes. Implementar reglas de afinidad de nodos puede ser útil al implementar recursos de MongoDB en grupos de nodos heterogéneos, ya que permite implementar recursos específicos en variedades específicas de nodos.

De manera similar, puedes implementar la afinidad de Pods aplicando etiquetas a los Pods que se están ejecutando en tu clúster y alineando esos valores de etiqueta con los valores labelSelector definidos en tu MongoDB CustomResourceDefinition. Cuando aplicas etiquetas y valores coincidentes de labelSelector, Kubernetes coloca los Pods administrados por recursos personalizados de MongoDB junto a los Pods con etiquetas correspondientes aplicadas. Al ubicar los Pods en conjunto, puedes mejorar el rendimiento del sistema y reducir la latencia entre Pods que se comunican regularmente. También puede definir reglas de antiafinidad de Pods que le permitan especificar los Pods que no deben estar colocados juntos.

Para implementaciones autónomos y sets de réplicas, puedes aplicar estas reglas de afinidad a la spec.podSpec de tu MongoDB CustomResourceDefinition. Para implementaciones de Clúster Partitionado, puedes aplicar estas reglas de afinidad a las secciones spec.configSrvPodSpec, spec.shardPodSpec y spec.mongosPodSpec de tu CustomResourceDefinition de MongoDB.

Debes implementar los recursos de MongoDB, como mongos, particiones y servidores de configuración en el caso de una implementación de Sharded Cluster, en el mismo namespace que el recurso de MongoDB. Sin embargo, dentro de ese namespace, puedes configurar nodeAffinity y podAffinity para mongos, particiones y tipos de recursos del servidor de configuración en la ShardedCluster CustomResourceDefinition.

Para configurar la topología de la implementación para tu implementación de MongoDB, debes tener un set de réplicas de MongoDB implementado a través de MongoDB Kubernetes operador con etiquetas aplicadas a los recursos de Kubernetes que se alinearán con labelSelectors definido en la MongoDB CustomResourceDefinition o cumplir con los siguientes requisitos previos:

1

Rellena las secciones podTemplate.spec.affinity de tu definición de MongoDB clúster como se muestra en el siguiente ejemplo:

---apiVersion: mongodb.com/v1kind: MongoDBmetadata: name: my-sharded-clusterspec: shardCount: 2 mongodsPerShardCount: 3 mongosCount: 2 configServerCount: 3 version: 8.0.0 service: my-service opsManager: configMapRef: name: my-project credentials: my-credentials type: ShardedCluster persistent: true configSrvPodSpec: podTemplate: spec: affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: security operator: In values: - S1 topologyKey: failure-domain.beta.kubernetes.io/zone nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/e2e-az-name operator: In values: - e2e-az1 - e2e-az2 podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: topologyKey: nodeId mongosPodSpec: podTemplate: spec: affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: security operator: In values: - S1 topologyKey: failure-domain.beta.kubernetes.io/zone nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/e2e-az-name operator: In values: - e2e-az1 - e2e-az2 podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: topologyKey: nodeId shardPodSpec: podTemplate: spec: affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: security operator: In values: - S1 topologyKey: failure-domain.beta.kubernetes.io/zone nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/e2e-az-name operator: In values: - e2e-az1 - e2e-az2 podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: topologyKey: nodeId...
2
kubectl apply -f mongodb-crd.yaml
Califique esta página