- 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:
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:
- Retira un nodo de Cassandra.
- Actualiza la propiedad
cassandra.replicaCount
enoverrides.yaml
. - Aplica la actualización de la configuración.
- Repite estos pasos con cada nodo que quieras quitar.
- Elimina la reclamación o el volumen persistente, en función de la configuración de tu clúster.
Información que debes saber
- Realiza esta tarea en un nodo a la vez antes de continuar con el siguiente.
- Si algún nodo que no sea el que se va 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.
Requisitos previos
Antes de reducir el número de nodos de Cassandra en el anillo, comprueba si el clúster está en buen estado y si todos los nodos están activos y en funcionamiento, como se muestra en el siguiente ejemplo:
kubectl get pods -n yourNamespace -l app=apigee-cassandra NAME READY STATUS RESTARTS AGE apigee-cassandra-0 1/1 Running 0 2h apigee-cassandra-1 1/1 Running 0 2h apigee-cassandra-2 1/1 Running 0 2h apigee-cassandra-3 1/1 Running 0 16m apigee-cassandra-4 1/1 Running 0 14m apigee-cassandra-5 1/1 Running 0 13m
kubectl -n yourNamespace exec -it apigee-cassandra-0 nodetool 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 690.17 KiB 256 48.8% b02089d1-0521-42e1-bbed-900656a58b68 ra-1 UN 10.16.4.6 700.55 KiB 256 51.6% dc6b7faf-6866-4044-9ac9-1269ebd85dab ra-1 to UN 10.16.11.11 144.36 KiB 256 48.3% c7906366-6c98-4ff6-a4fd-17c596c33cf7 ra-1 UN 10.16.1.11 767.03 KiB 256 49.8% ddf221aa-80aa-497d-b73f-67e576ff1a23 ra-1 UN 10.16.5.13 193.64 KiB 256 50.9% 2f01ac42-4b6a-4f9e-a4eb-4734c24def95 ra-1 UN 10.16.8.15 132.42 KiB 256 50.6% a27f93af-f8a0-4c88-839f-2d653596efc2 ra-1
Retirar los nodos de Cassandra
-
Retira los nodos de Cassandra del clúster con el comando nodetool.
kubectl -n yourNamespace exec -it nodeName nodetool decommission
Por ejemplo, este comando retira
apigee-cassandra-5
, el nodo con el valor numérico más alto en el nombre:kubectl -n apigee exec -it apigee-cassandra-5 nodetool decommission
- Espera a que se complete la retirada y comprueba que el clúster tiene un nodo menos. Por ejemplo:
kubectl -n yourNamespace exec -it nodeName nodetool 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 710.37 KiB 256 59.0% b02089d1-0521-42e1-bbed-900656a58b68 ra-1 UN 10.16.4.6 720.97 KiB 256 61.3% dc6b7faf-6866-4044-9ac9-1269ebd85dab ra-1 UN 10.16.1.11 777.11 KiB 256 58.9% ddf221aa-80aa-497d-b73f-67e576ff1a23 ra-1 UN 10.16.5.13 209.23 KiB 256 62.2% 2f01ac42-4b6a-4f9e-a4eb-4734c24def95 ra-1 UN 10.16.8.15 143.23 KiB 256 58.6% a27f93af-f8a0-4c88-839f-2d653596efc2 ra-1
- Actualice o añada la propiedad
cassandra.replicaCount
en su archivooverrides.yaml
. Por ejemplo, si el número de nodos actual es 6, cámbialo a 5:cassandra: replicaCount: 5 # (n-1)
- Aplica el cambio de configuración a tu clúster. Por ejemplo:
./apigeectl apply -v beta2 -c cassandra namespace/apigee unchanged secret/ssl-cassandra unchanged storageclass.storage.k8s.io/apigee-gcepd unchanged service/apigee-cassandra unchanged statefulset.apps/apigee-cassandra configured
- Verifica que todos los nodos de Cassandra restantes se estén ejecutando:
kubectl get pods -n yourNamespace -l app=apigee-cassandra NAME READY STATUS RESTARTS AGE apigee-cassandra-0 1/1 Running 0 3h apigee-cassandra-1 1/1 Running 0 3h apigee-cassandra-2 1/1 Running 0 2h apigee-cassandra-3 1/1 Running 0 25m apigee-cassandra-4 1/1 Running 0 24m
- Repite los pasos del 1 al 5 con cada nodo que quieras retirar.
- Cuando hayas terminado de retirar los nodos, comprueba que el valor de
cassandra.replicaCount
sea igual al número de nodos devueltos por el comandonodetool status
.kubectl -n yourNamespace exec -it apigee-cassandra-0 nodetool 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 710.37 KiB 256 59.0% b02089d1-0521-42e1-bbed-900656a58b68 ra-1 UN 10.16.4.6 720.97 KiB 256 61.3% dc6b7faf-6866-4044-9ac9-1269ebd85dab ra-1 UN 10.16.1.11 777.11 KiB 256 58.9% ddf221aa-80aa-497d-b73f-67e576ff1a23 ra-1 UN 10.16.5.13 209.23 KiB 256 62.2% 2f01ac42-4b6a-4f9e-a4eb-4734c24def95 ra-1 UN 10.16.8.15 143.23 KiB 256 58.6% a27f93af-f8a0-4c88-839f-2d653596efc2 ra-1
- Una vez que se haya reducido el tamaño del clúster de Cassandra, elimina el pvc (PersistentVolumeClaim) para asegurarte de que el siguiente evento de aumento de tamaño no use el mismo volumen persistente y los datos creados anteriormente.
kubectl get pvc -n yourNamespace NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE cassandra-data-apigee-cassandra-0 Bound pvc-f9c2a5b9-818c-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 7h cassandra-data-apigee-cassandra-1 Bound pvc-2956cb78-818d-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 7h cassandra-data-apigee-cassandra-2 Bound pvc-79de5407-8190-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 7h cassandra-data-apigee-cassandra-3 Bound pvc-d29ba265-81a2-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 5h cassandra-data-apigee-cassandra-4 Bound pvc-0675a0ff-81a3-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 5h cassandra-data-apigee-cassandra-5 Bound pvc-354afa95-81a3-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 5h
kubectl -n yourNamespace delete pvc cassandra-data-apigee-cassandra-5 persistentvolumeclaim "cassandra-data-apigee-cassandra-5" deleted
kubectl get pvc -n yourNamespace NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE cassandra-data-apigee-cassandra-0 Bound pvc-f9c2a5b9-818c-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 7h cassandra-data-apigee-cassandra-1 Bound pvc-2956cb78-818d-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 7h cassandra-data-apigee-cassandra-2 Bound pvc-79de5407-8190-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 7h cassandra-data-apigee-cassandra-3 Bound pvc-d29ba265-81a2-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 5h cassandra-data-apigee-cassandra-4 Bound pvc-0675a0ff-81a3-11e9-8862-42010a8e014a 100Gi RWO apigee-gcepd 5h
- Si estás usando la instalación de Anthos, elimina también el volumen persistente del clúster de Kubernetes de Anthos.
kubectl get pv -n youNamespace NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE pvc-0675a0ff-81a3-11e9-8862-42010a8e014a 100Gi RWO Delete Bound apigee/cassandra-data-apigee-cassandra-4 apigee-gcepd 5h pvc-2956cb78-818d-11e9-8862-42010a8e014a 100Gi RWO Delete Bound apigee/cassandra-data-apigee-cassandra-1 apigee-gcepd 7h pvc-354afa95-81a3-11e9-8862-42010a8e014a 100Gi RWO Delete Bound apigee/cassandra-data-apigee-cassandra-5 apigee-gcepd 5h pvc-79de5407-8190-11e9-8862-42010a8e014a 100Gi RWO Delete Bound apigee/cassandra-data-apigee-cassandra-2 apigee-gcepd 7h pvc-d29ba265-81a2-11e9-8862-42010a8e014a 100Gi RWO Delete Bound apigee/cassandra-data-apigee-cassandra-3 apigee-gcepd 5h pvc-f9c2a5b9-818c-11e9-8862-42010a8e014a 100Gi RWO Delete Bound apigee/cassandra-data-apigee-cassandra-0 apigee-gcepd 7h
kubectl -n yourNamespace delete pv pvc-354afa95-81a3-11e9-8862-42010a8e014a