En esta página se recomiendan estrategias de cargas de trabajo de contenedores de Kubernetes que hacen que tu aplicación sea más tolerante a fallos en un universo multizona con air gap de Google Distributed Cloud (GDC). GDC admite aplicaciones de contenedores nativas de Kubernetes que se usan y admiten ampliamente en Google Kubernetes Engine (GKE).
Esta página está dirigida a los desarrolladores del grupo de operadores de aplicaciones, que son responsables de crear cargas de trabajo de aplicaciones para su organización. Para obtener más información, consulta Audiencias de la documentación aislada de GDC.
Consideraciones de Kubernetes para aplicaciones de alta disponibilidad
Para conseguir una alta disponibilidad en Kubernetes, no basta con el plano de control. También debes diseñar y desplegar cargas de trabajo de contenedores de forma resiliente en tu universo con air gap de Google Distributed Cloud (GDC). Kubernetes ofrece varios mecanismos eficaces para minimizar el tiempo de inactividad y proporcionar servicios de alta disponibilidad, incluso cuando se producen problemas de infraestructura o durante el mantenimiento rutinario. Los siguientes temas son estrategias clave que se deben tener en cuenta para la alta disponibilidad:
Mantener la disponibilidad con réplicas y autoescalado: debes tener suficientes instancias de tu aplicación en ejecución para proporcionar alta disponibilidad.
ReplicaSet
: un recursoReplicaSet
mantiene un conjunto estable de réplicas de pods idénticas en ejecución en cualquier momento. Si un pod falla o se termina, el controladorReplicaSet
crea automáticamente un nuevo pod para sustituirlo. Consulta más información en la documentación de Kubernetes sobre ReplicaSet.Autoescalador horizontal de pods (HPA): mientras que un
ReplicaSet
mantiene un número fijo de réplicas, el HPA ajusta automáticamente este número en función de las métricas observadas, como el uso de CPU o el uso de memoria. De esta forma, tu aplicación puede gestionar los picos de carga. Para obtener más información, consulta la documentación de Kubernetes sobre el autoescalado de pods horizontal.
Minimizar el tiempo de inactividad con
PodDisruptionBudget
(PDB): consulta la sección Specifying a Disruption Budget for your Application (Especificar un presupuesto de interrupción para tu aplicación) de la documentación de Kubernetes para obtener más información.Diversifica los riesgos con reglas de antiafinidad: consulta la documentación de Kubernetes sobre afinidad y antiafinidad para obtener más información.
Comprobaciones de estado con sondas de vivacidad, preparación e inicio: consulta la documentación de Kubernetes sobre configuración de sondas de vivacidad, preparación e inicio para obtener más información.
Endpoints estables y balanceo de carga con servicios: consulta la documentación de Kubernetes sobre servicios para obtener más información.
Actualizaciones y restauraciones graduales con implementaciones: consulta la documentación de Kubernetes sobre restauración de una implementación para obtener más información.
Definir solicitudes y límites de recursos: consulta la documentación de Kubernetes sobre gestión de recursos para pods y contenedores para obtener más información.
Siguientes pasos
- Empezar a aprender sobre Kubernetes
- Cargas de trabajo de contenedores en GDC
- Crear un clúster para ejecutar cargas de trabajo de contenedores