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.
Docs Menu

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.

Puedes implementar la afinidad de nodos aplicando etiquetas a nodos específicos dentro de tu clúster de Kubernetes y definiendo campos labelSelector con etiquetas correspondientes en tu CustomResourceDefinition de MongoDB. Al aplicar etiquetas y valores labelSelector coincidentes, Kubernetes solo implementa una CustomResourceDefinition de MongoDB determinada en los nodos que especifiques dentro de tu clúster. Implementar reglas de afinidad de nodos puede ser útil al implementar recursos de MongoDB en grupos de nodos heterogéneos, ya que te permite implementar recursos específicos en variedades de nodos específicas.

De forma similar, puedes implementar la afinidad de Pods aplicando etiquetas a los Pods que se ejecutan en tu clúster y alineando esos valores de etiqueta con los valores labelSelector definidos en tu CustomResourceDefinition de MongoDB.Al aplicar etiquetas y valores labelSelector coincidentes, Kubernetes colocaliza los Pods de MongoDB gestionados por recursos personalizados con los Pods que tienen etiquetas coincidentes. Al colocar Pods, puedes mejorar el rendimiento del sistema y reducir la latencia entre Pods que se comunican regularmente. También puedes definir reglas de antiafinidad de Pods que te permiten especificar los Pods que no deben colocarse.

Para implementaciones independientes y de conjuntos de réplicas, puede aplicar estas reglas de afinidad a la sección spec.podSpec de su definición de recurso personalizado de MongoDB. Para implementaciones de clústeres fragmentados, puede aplicar estas reglas de afinidad a las secciones spec.configSrvPodSpec, spec.shardPodSpec y spec.mongosPodSpec de su definición de recurso personalizado de MongoDB.

Debe implementar los recursos de MongoDB, como mongos, fragmentos y servidores de configuración en el caso de una implementación de clúster fragmentado, en el mismo espacio de nombres que el recurso de MongoDB. Sin embargo, dentro de ese espacio de nombres, puede configurar nodeAffinity y podAffinity para los tipos de recursos mongos, fragmentos y servidores de configuración en la definición de recurso personalizado ShardedCluster.

Para configurar la topología de despliegue para su despliegue de MongoDB, debe tener un conjunto de réplicas de MongoDB desplegado a través del operador de Kubernetes de MongoDB junto con etiquetas aplicadas a los recursos de Kubernetes que se alinearán con labelSelectors definido en la definición de recurso personalizado de MongoDB 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:

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: my-sharded-cluster
6spec:
7 shardCount: 2
8 mongodsPerShardCount: 3
9 mongosCount: 2
10 configServerCount: 3
11 version: 8.0.0
12 service: my-service
13
14 opsManager:
15 configMapRef:
16 name: my-project
17 credentials: my-credentials
18 type: ShardedCluster
19
20 persistent: true
21 configSrvPodSpec:
22 podTemplate:
23 spec:
24 affinity:
25 podAffinity:
26 requiredDuringSchedulingIgnoredDuringExecution:
27 - labelSelector:
28 matchExpressions:
29 - key: security
30 operator: In
31 values:
32 - S1
33 topologyKey: failure-domain.beta.kubernetes.io/zone
34 nodeAffinity:
35 requiredDuringSchedulingIgnoredDuringExecution:
36 nodeSelectorTerms:
37 - matchExpressions:
38 - key: kubernetes.io/e2e-az-name
39 operator: In
40 values:
41 - e2e-az1
42 - e2e-az2
43 podAntiAffinity:
44 requiredDuringSchedulingIgnoredDuringExecution:
45 - podAffinityTerm:
46 topologyKey: nodeId
47 mongosPodSpec:
48 podTemplate:
49 spec:
50 affinity:
51 podAffinity:
52 requiredDuringSchedulingIgnoredDuringExecution:
53 - labelSelector:
54 matchExpressions:
55 - key: security
56 operator: In
57 values:
58 - S1
59 topologyKey: failure-domain.beta.kubernetes.io/zone
60 nodeAffinity:
61 requiredDuringSchedulingIgnoredDuringExecution:
62 nodeSelectorTerms:
63 - matchExpressions:
64 - key: kubernetes.io/e2e-az-name
65 operator: In
66 values:
67 - e2e-az1
68 - e2e-az2
69 podAntiAffinity:
70 requiredDuringSchedulingIgnoredDuringExecution:
71 - podAffinityTerm:
72 topologyKey: nodeId
73 shardPodSpec:
74 podTemplate:
75 spec:
76 affinity:
77 podAffinity:
78 requiredDuringSchedulingIgnoredDuringExecution:
79 - labelSelector:
80 matchExpressions:
81 - key: security
82 operator: In
83 values:
84 - S1
85 topologyKey: failure-domain.beta.kubernetes.io/zone
86 nodeAffinity:
87 requiredDuringSchedulingIgnoredDuringExecution:
88 nodeSelectorTerms:
89 - matchExpressions:
90 - key: kubernetes.io/e2e-az-name
91 operator: In
92 values:
93 - e2e-az1
94 - e2e-az2
95 podAntiAffinity:
96 requiredDuringSchedulingIgnoredDuringExecution:
97 - podAffinityTerm:
98 topologyKey: nodeId
99...
2
kubectl apply -f mongodb-crd.yaml
Califique esta página