Cargas de trabajo de Kubernetes para alta disponibilidad

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 fallas en un universo de varias zonas aislado de Internet de Google Distributed Cloud (GDC). GDC admite aplicaciones en contenedores nativas de Kubernetes que se consumen y admiten ampliamente en Google Kubernetes Engine (GKE).

Esta página está dirigida a los desarrolladores que forman parte del grupo de operadores de aplicaciones y que son responsables de crear cargas de trabajo de aplicaciones para su organización. Para obtener más información, consulta Audiences for GDC air-gapped documentation.

Consideraciones de Kubernetes para apps de HA

Lograr una alta disponibilidad (HA) en Kubernetes va más allá del plano de control. También debes diseñar e implementar cargas de trabajo de contenedores en tu universo aislado de Google Distributed Cloud (GDC) de forma resiliente. Kubernetes ofrece varios mecanismos potentes para minimizar el tiempo de inactividad y proporcionar servicios de alta disponibilidad, incluso cuando se producen problemas de infraestructura o durante el mantenimiento de rutina. Los siguientes temas son estrategias clave que se deben tener en cuenta para la HA:

  • Mantén la disponibilidad con réplicas y el ajuste de escala automático: Debes tener suficientes instancias en ejecución de tu aplicación para proporcionar HA.

    • ReplicaSet: Un recurso ReplicaSet mantiene un conjunto estable de réplicas de Pod idénticas que se ejecutan en cualquier momento. Si un Pod falla o se finaliza, el controlador de ReplicaSet crea automáticamente un Pod nuevo para reemplazarlo. Para obtener más información, consulta la documentación de ReplicaSet de Kubernetes.

    • Horizontal Pod Autoscaler (HPA): Si bien un ReplicaSet mantiene una cantidad fija de réplicas, el HPA ajusta automáticamente esta cantidad en función de las métricas observadas, como el uso de CPU o el uso de memoria. Esto permite que tu aplicación controle los picos de carga. Para obtener más información, consulta la documentación de Kubernetes sobre el ajuste de escala automático horizontal de Pods.

  • Minimiza el tiempo de inactividad con PodDisruptionBudget (PDB): Para obtener más información, consulta Especifica un presupuesto de interrupción para tu aplicación en la documentación de Kubernetes.

  • Distribuye tu riesgo con reglas de antiafinidad: Para obtener más información, consulta la documentación de Kubernetes sobre afinidad y antiafinidad.

  • Verificaciones de estado con sondeos de funcionamiento, preparación y inicio: Para obtener más información, consulta Configura sondeos de funcionamiento, inicio y preparación en la documentación de Kubernetes.

  • Extremos estables y balanceo de cargas con servicios: Para obtener más información, consulta la documentación de Servicios de Kubernetes.

  • Actualizaciones y reversiones correctas con implementaciones: Para obtener más información, consulta la reversión de una implementación en la documentación de Kubernetes.

  • Establece solicitudes y límites para los recursos: Para obtener más información, consulta Administración de recursos para Pods y contenedores en la documentación de Kubernetes.

¿Qué sigue?