- v1.15 (última)
- v1.14
- v1.13
- Lista de versiones admitidas
- v1.12
- v1.11
- v1.10
- v1.9
- v1.8
- v1.7
- Versión 1.6
- v1.5
- Versión 1.4
- Versión 1.3
- v1.2
- v1.1
Versiones compatibles:
Versiones no compatibles:
En este tema se explica cómo escalar Cassandra horizontal y verticalmente, así como cómo reducir la escala de Cassandra.
Escalar Cassandra horizontalmente
Para escalar Cassandra horizontalmente
- Asegúrate de que tu
apigee-data
grupo de nodos tenga capacidad adicional, según sea necesario, antes de escalar Cassandra. Consulta también cómo configurar grupos de nodos dedicados. - Asigna el valor de la propiedad de configuración
cassandra.replicaCount
en el archivo de anulaciones. El valor dereplicaCount
debe ser un múltiplo de3
. Para determinar el valor dereplicaCount
que quiere, tenga en cuenta lo siguiente:- Estima las demandas de tráfico de tus proxies.
- Realiza pruebas de carga y haz predicciones razonables sobre el uso de la CPU.
- Puedes especificar diferentes valores de
replicaCount
en distintas regiones. - Puedes ampliar el
replicaCount
en el futuro en tu archivo de anulaciones.
Para obtener información sobre esta propiedad, consulta la referencia de la propiedad de configuración. Consulta también Gestionar componentes del plano del entorno de ejecución.
- Aplica los cambios. Por ejemplo:
helm upgrade datastore apigee-datastore/ \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE.yaml
Escalar Cassandra verticalmente
En esta sección se explica cómo escalar verticalmente los pods de Cassandra para adaptarse a los requisitos de CPU y memoria más altos.
Información general
En una implementación de producción híbrida de Apigee, te recomendamos que crees al menos dos grupos de nodos independientes: uno para los servicios con estado (Cassandra) y otro para los servicios sin estado (runtime). Por ejemplo, consulta los requisitos de los clústeres de producción de GKE.
En el caso del grupo de nodos de Cassandra con estado, te recomendamos que empieces con 8 núcleos de CPU y 30 GB de memoria. Una vez aprovisionado el grupo de nodos, estos ajustes no se pueden cambiar. Consulta también cómo configurar Cassandra para el entorno de producción.
Si necesitas aumentar la escala de los pods de Cassandra para adaptarlos a los requisitos de CPU y memoria, sigue los pasos que se describen en este tema.
Escalar verticalmente los pods de Cassandra
Sigue estos pasos para aumentar la CPU y la memoria del grupo de nodos con estado que se usa para Cassandra:
- Sigue las instrucciones de tu plataforma de Kubernetes para añadir un nuevo grupo de nodos al clúster. Las plataformas admitidas se indican en las instrucciones de instalación.
- Comprueba que el nuevo grupo de nodos esté listo:
kubectl get nodes -l NODE_POOL_LABEL_NAME=NODE_POOL_LABEL_VALUE
Comando de ejemplo:
kubectl get nodes -l cloud.google.com/gke-nodepool=apigee-data-new
Ejemplo:
NAME STATUS ROLES AGE VERSION gke-apigee-data-new-441387c2-2h5n Ready <none> 4m28s v1.14.10-gke.17 gke-apigee-data-new-441387c2-6941 Ready <none> 4m28s v1.14.10-gke.17 gke-apigee-data-new-441387c2-nhgc Ready <none> 4m29s v1.14.10-gke.17
- Actualiza el archivo de anulaciones para usar el nuevo grupo de nodos de Cassandra y actualiza los recursos del pod con el aumento del número de CPUs y del tamaño de la memoria que quieras usar. Por ejemplo, en un clúster de GKE, utiliza una configuración similar a la siguiente.
Si usas otra plataforma de Kubernetes, debes ajustar el valor de
apigeeData.key
en consecuencia:nodeSelector: requiredForScheduling: true apigeeData: key: "NODE_POOL_LABEL_NAME" value: "NODE_POOL_LABEL_VALUE" cassandra: resources: requests: cpu: NODE_POOL_CPU_NUMBER memory: NODE_POOL_MEMORY_SIZE
Por ejemplo:
nodeSelector: requiredForScheduling: true apigeeData: key: "cloud.google.com/gke-nodepool" value: "apigee-data-new" cassandra: resources: requests: cpu: 14 memory: 16Gi
- Aplica el archivo de anulaciones al clúster:
helm upgrade datastore apigee-datastore/ \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE.yaml
Cuando completes estos pasos, los pods de Cassandra empezarán a migrar al nuevo grupo de nodos.
Reducir la escala de Cassandra
Apigee Hybrid utiliza un anillo de nodos de Cassandra como StatefulSet. Cassandra proporciona almacenamiento persistente para determinadas entidades de Apigee en el plano del entorno de ejecución. Para obtener más información sobre Cassandra, consulta Acerca del plano de tiempo de ejecución.
Cassandra es un servicio que requiere muchos recursos y no se debe implementar en un pod con ningún otro servicio híbrido. En función de la carga, puede que quieras reducir el número de nodos de Cassandra del anillo en tu clúster.
El proceso general para reducir la escala de un anillo de Cassandra es el siguiente:
- Asegúrate de que el clúster de Cassandra esté en buen estado y tenga suficiente almacenamiento para admitir la reducción de la escala.
- Actualiza la propiedad
cassandra.replicaCount
enoverrides.yaml
. - Aplica la actualización de la configuración.
- Elimina la reclamación de volumen persistente o el volumen, según la configuración de tu clúster.
Información que debes saber
- Si algún nodo que no sea uno de los que se van a retirar no está en buen estado, no continúes. Kubernetes no podrá reducir la escala de los pods del clúster.
- Siempre se reduce o aumenta en un factor de tres nodos.
Reducir la escala de Cassandra
- Valida que el clúster esté en buen estado y que todos los nodos estén activos y en funcionamiento, como se muestra en el siguiente ejemplo:
kubectl get pods -n APIGEE_NAMESPACE -l app=apigee-cassandra
NAME READY STATUS RESTARTS AGE apigee-cassandra-default-0 1/1 Running 0 2h apigee-cassandra-default-1 1/1 Running 0 2h apigee-cassandra-default-2 1/1 Running 0 2h apigee-cassandra-default-3 1/1 Running 0 16m apigee-cassandra-default-4 1/1 Running 0 14m apigee-cassandra-default-5 1/1 Running 0 13m apigee-cassandra-default-6 1/1 Running 0 9m apigee-cassandra-default-7 1/1 Running 0 9m apigee-cassandra-default-8 1/1 Running 0 8m
==================== Estado=Activo/Inactivo |/ Estado=Normal/Saliendo/Uniéndose/Moviéndose -- Dirección Carga Tokens Tiene (efectivo) ID de host Rack UN 10.16.2.6 690,17 KiB 256 48,8% b02089d1-0521-42e1-bbed-900656a58b68 ra-1 UN 10.16.4.6 705,55 KiB 256 51,6% dc6b7faf-6866-4044-9ac9-1269ebd85dab ra-1 to UN 10.16.11.11 674,36 KiB 256 48,3% c7906366-6c98-4ff6-a4fd-17c596c33cf7 ra-1 UN 10.16.1.11 697,03 KiB 256 49,8% ddf221aa-80aa-497d-b73f-67e576ff1a23 ra-1 UN 10.16.5.13 703,64 KiB 256 50,9% 2f01ac42-4b6a-4f9e-a4eb-4734c24def95 ra-1 UN 10.16.8.15 700,42 KiB 256 50,6% a27f93af-f8a0-4c88-839f-2d653596efc2 ra-1 UN 10.16.11.3 697,03 KiB 256 49,8% dad221ff-dad1-de33-2cd3-f1.672367e6f ra-1 UN 10.16.14.16 704,04 KiB 256 50,9% 1feed042-a4b6-24ab-49a1-24d4cef95473 ra-1 UN 10.16.16.1 699,82 KiB 256 50,6% beef93af-fee0-8e9d-8bbf-efc22d653596 ra-1kubectl -n APIGEE_NAMESPACE exec -it apigee-cassandra-default-0 nodetool status
Datacenter: dc-us-east1
- Determina si el clúster de Cassandra tiene suficiente almacenamiento para admitir la reducción. Después de reducir la escala, los nodos de Cassandra no deberían tener más del 75% de su almacenamiento lleno.
Por ejemplo, si tu clúster tiene 6 nodos de Cassandra y todos están llenos aproximadamente al 50 %, si reduces la escala a tres nodos, los tres estarán al 100%, lo que no dejaría espacio para que siguieran funcionando.
Sin embargo, si tienes 9 nodos de Cassandra, todos ellos con una ocupación aproximada del 50 %, y reduces la escala a 6 nodos, cada nodo restante tendrá una ocupación aproximada del 75 %. Puedes reducir la escala.
- Actualice o añada la propiedad
cassandra.replicaCount
en su archivooverrides.yaml
. Por ejemplo, si el número de nodos actual es 9, cámbialo a 6:cassandra: replicaCount: 6 #
- Aplica el cambio de configuración al clúster:
helm upgrade datastore apigee-datastore/ \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE.yaml
- Verifica que todos los nodos de Cassandra restantes se estén ejecutando:
kubectl get pods -n APIGEE_NAMESPACE -l app=apigee-cassandra
NAME READY STATUS RESTARTS AGE apigee-cassandra-default-0 1/1 Running 0 3h apigee-cassandra-default-1 1/1 Running 0 3h apigee-cassandra-default-2 1/1 Running 0 2h apigee-cassandra-default-3 1/1 Running 0 25m apigee-cassandra-default-4 1/1 Running 0 24m apigee-cassandra-default-5 1/1 Running 0 23m
- Verifica que el valor de
cassandra.replicaCount
sea igual al número de nodos devueltos por el comandonodetool status
.Por ejemplo, si reduces la escala de Cassandra a seis nodos:
kubectl exec apigee-cassandra-default-0 -n APIGEE_NAMESPACE -- nodetool -u JMX_USER -pw JMX_PASSWORD status
Datacenter: us-east1 ==================== Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 10.16.2.6 1009.17 KiB 256 73.8% b02089d1-0521-42e1-bbed-900656a58b68 ra-1 UN 10.16.4.6 1.65.55 KiB 256 75.6% dc6b7faf-6866-4044-9ac9-1269ebd85dab ra-1 to UN 10.16.11.11 999.36 KiB 256 72.8% c7906366-6c98-4ff6-a4fd-17c596c33cf7 ra-1 UN 10.16.1.11 1017.03 KiB 256 74.2% ddf221aa-80aa-497d-b73f-67e576ff1a23 ra-1 UN 10.16.5.13 1061.64 KiB 256 75.9% 2f01ac42-4b6a-4f9e-a4eb-4734c24def95 ra-1 UN 10.16.8.15 1049.42 KiB 256 74.9% a27f93af-f8a0-4c88-839f-2d653596efc2 ra-1
- Una vez que se haya reducido la escala del clúster de Cassandra, comprueba que los pvcs (PersistentVolumeClaim) corresponden a los nodos de Cassandra restantes.
Obtén los nombres de los PVCs:
kubectl get pvc -n APIGEE_NAMESPACE
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE cassandra-data-apigee-cassandra-default-0 Bound pvc-f9c2a5b9-818c-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 7h cassandra-data-apigee-cassandra-default-1 Bound pvc-2956cb78-818d-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 7h cassandra-data-apigee-cassandra-default-2 Bound pvc-79de5407-8190-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 7h cassandra-data-apigee-cassandra-default-3 Bound pvc-d29ba265-81a2-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 5h cassandra-data-apigee-cassandra-default-4 Bound pvc-0675a0ff-81a3-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 5h cassandra-data-apigee-cassandra-default-5 Bound pvc-354afa95-81a3-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 5h
En este ejemplo, no deberías ver los PVCs correspondientes a los tres nodos reducidos:
cassandra-data-apigee-cassandra-8
cassandra-data-apigee-cassandra-7
cassandra-data-apigee-cassandra-6