Cargas de trabalho do Kubernetes para alta disponibilidade

Esta página recomenda estratégias de carga de trabalho de contêiner do Kubernetes que tornam seu aplicativo mais tolerante a falhas em um universo multizona isolado do Google Distributed Cloud (GDC). O GDC é compatível com aplicativos de contêiner nativos do Kubernetes, que são amplamente consumidos e compatíveis com o Google Kubernetes Engine (GKE).

Esta página é destinada a desenvolvedores do grupo de operadores de aplicativos, que são responsáveis por criar cargas de trabalho de aplicativos para a organização. Para mais informações, consulte Públicos-alvo para documentação isolada do GDC.

Considerações sobre o Kubernetes para apps de alta disponibilidade

Para alcançar a alta disponibilidade (HA) no Kubernetes, é preciso ir além do plano de controle. Você também precisa projetar e implantar cargas de trabalho de contêineres no universo isolado da Google Distributed Cloud (GDC) de maneira resiliente. O Kubernetes oferece vários mecanismos poderosos para minimizar o tempo de inatividade e fornecer serviços altamente disponíveis mesmo ao enfrentar problemas de infraestrutura ou durante a manutenção de rotina. Os seguintes tópicos são estratégias importantes para considerar em relação à HA:

  • Manter a disponibilidade com réplicas e escalonamento automático: você precisa ter instâncias em execução suficientes do aplicativo para oferecer alta disponibilidade.

    • ReplicaSet: um recurso ReplicaSet mantém um conjunto estável de réplicas de pods idênticas em execução a qualquer momento. Se um pod falhar ou for encerrado, o controlador ReplicaSet vai criar automaticamente um novo pod para substituí-lo. Consulte a documentação do Kubernetes sobre ReplicaSet para mais informações.

    • Escalonador automático horizontal de pods (HPA): enquanto um ReplicaSet mantém um número fixo de réplicas, o HPA ajusta automaticamente esse número com base em métricas observadas, como utilização da CPU ou uso da memória. Isso permite que o aplicativo processe picos de carga. Consulte a documentação do Kubernetes sobre escalonamento automático horizontal de pods para mais informações.

  • Minimizar o tempo de inatividade com PodDisruptionBudget (PDB): consulte Como especificar um orçamento de interrupção para seu aplicativo na documentação do Kubernetes para mais informações.

  • Reduza o risco com regras de antiafinidade: consulte a documentação do Kubernetes sobre afinidade e antiafinidade para mais informações.

  • Verificações de integridade com sondagens de atividade, prontidão e inicialização: consulte a documentação do Kubernetes Configurar sondagens de atividade, prontidão e inicialização para mais informações.

  • Endpoints estáveis e balanceamento de carga com serviços: consulte a documentação do Kubernetes sobre Serviços para mais informações.

  • Atualizações e rollbacks sem interrupção com implantações: consulte a documentação do Kubernetes Como reverter uma implantação para mais informações.

  • Definir solicitações e limites para recursos: consulte a documentação do Kubernetes sobre gerenciamento de recursos para pods e contêineres para mais informações.

A seguir