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 da documentação isolada do GDC.
Considerações sobre o Kubernetes para apps de alta disponibilidade
Para alcançar 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:
Mantenha 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 recursoReplicaSetmanté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 controladorReplicaSetvai criar automaticamente um novo pod para substituí-lo. Para mais informações, consulte a documentação do Kubernetes sobre ReplicaSet.Escalonador automático horizontal de pods (HPA): enquanto um
ReplicaSetmanté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 seu aplicativo processe picos de carga. Para mais informações, consulte a documentação do Kubernetes sobre escalonamento automático horizontal de pods.
Minimizar o tempo de inatividade com
PodDisruptionBudget(PDB): para mais informações, consulte Como especificar um orçamento de interrupção para seu aplicativo na documentação do Kubernetes.Reduza o risco com regras de antiafinidade: para mais informações, consulte a documentação do Kubernetes sobre afinidade e antiafinidade.
Verificações de integridade com sondagens de atividade, prontidão e inicialização: para mais informações, consulte a documentação do Kubernetes sobre Configurar sondagens de atividade, prontidão e inicialização.
Endpoints estáveis e balanceamento de carga com serviços: para mais informações, consulte a documentação do Kubernetes sobre Serviços.
Atualizações e rollbacks suaves com implantações: para mais informações, consulte a documentação do Kubernetes Como reverter uma implantação.
Definir solicitações e limites para recursos: para mais informações, consulte a documentação do Kubernetes sobre Gerenciamento de recursos para pods e contêineres.
A seguir
- Comece a aprender sobre o Kubernetes
- Cargas de trabalho de contêiner no GDC
- Criar um cluster para executar cargas de trabalho de contêineres