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 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 recurso ReplicaSet 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 controlador ReplicaSet crea automáticamente un nuevo pod para sustituirlo. Para obtener más información, consulta 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. Esto permite que tu aplicación gestione los picos de carga. Para obtener más información, consulta la documentación de Kubernetes sobre el autoescalado horizontal de pods.

  • Minimizar el tiempo de inactividad con PodDisruptionBudget (PDB): para obtener más información, consulta el artículo Specifying a Disruption Budget for your Application (Especificar un presupuesto de interrupción para tu aplicación) de la documentación de Kubernetes.

  • Diversifica los riesgos con reglas de antiafinidad: para obtener más información, consulta la documentación de Kubernetes sobre afinidad y antiafinidad.

  • Comprobaciones del estado con sondas de vivacidad, preparación e inicio: para obtener más información, consulta la documentación de Kubernetes sobre cómo configurar sondas de vivacidad, preparación e inicio.

  • Puntos de conexión estables y balanceo de carga con servicios: para obtener más información, consulta la documentación de Kubernetes sobre servicios.

  • Actualizaciones y restauraciones suaves con implementaciones: para obtener más información, consulta el artículo Restaurar una implementación de la documentación de Kubernetes.

  • Define solicitudes y límites de recursos: para obtener más información, consulta la documentación de Kubernetes sobre la gestión de recursos de pods y contenedores.

Siguientes pasos