Certifique-se de que as cargas de trabalho estão preparadas para interrupções

As aplicações executadas em clusters do Google Kubernetes Engine (GKE) têm de estar preparadas para interrupções, como atualizações de nós e outros eventos de manutenção. As aplicações com estado, que muitas vezes precisam de tempo para parar corretamente a E/S e desmontar o armazenamento, são especialmente vulneráveis a interrupções. Pode usar funcionalidades do Kubernetes, como orçamentos de interrupção de pods (PDBs) e sondas de prontidão, para ajudar a manter as aplicações disponíveis durante as atualizações.

O GKE monitoriza os seus clusters e usa o serviço Recommender para fornecer orientações sobre como pode otimizar a sua utilização da plataforma. O GKE deteta oportunidades para preparar as suas cargas de trabalho para interrupções e fornece orientações sobre como atualizar os seus PDBs ou testes de prontidão para maximizar a resiliência das suas cargas de trabalho a interrupções. Por exemplo, se um StatefulSet não estiver protegido por um PDB, o cluster pode remover todos os pods de uma vez durante uma atualização de nós. Para evitar esta situação, o GKE fornece orientações para criar um PDB, de modo que a maioria dos pods possa continuar a ser executada durante uma atualização.

Para ver as condições específicas em que o GKE fornece orientações relacionadas com interrupções, consulte o artigo Quando o GKE identifica cargas de trabalho com vulnerabilidade a interrupções.

Para saber como gerir as estatísticas e as recomendações dos Recommenders, consulte o artigo Otimize a sua utilização do GKE com estatísticas e recomendações.

Identifique cargas de trabalho com vulnerabilidade a interrupções

O GKE gera estatísticas que identificam as cargas de trabalho vulneráveis a interrupções do seu cluster. Para obter estas estatísticas, siga as instruções para ver estatísticas e recomendações através da CLI do Google Cloud ou da API Recommender. Use os subtipos indicados na secção seguinte para filtrar estatísticas específicas. Estas estatísticas não estão disponíveis na Trusted Cloud consola.

Quando o GKE identifica cargas de trabalho com vulnerabilidade a interrupções

Consulte a tabela seguinte para ver cenários em que o GKE fornece uma estatística e uma recomendação, bem como o subtipo relevante:

Subtipo de estatísticas Descrição Ação
PDB_UNPROTECTED_STATEFULSET Alerta quando existe um StatefulSet em que nenhuma etiqueta PDB existente corresponde às etiquetas do seletor de pods do StatefulSet. Isto significa que todos os pods no StatefulSet podem ser desativados durante um evento, como uma atualização de nó. Adicione um PDB cujas etiquetas correspondam às do campo do seletor de pods do StatefulSet. Especifique nesse PDB a quantidade de interrupção que o StatefulSet pode tolerar. A recomendação associada a esta estatística sugere que etiquetas um PDB deve definir para abranger o StatefulSet mencionado.
PDB_UNPERMISSIVE Alerta quando não é possível cumprir um PDB correspondente a um pod para quaisquer atividades de manutenção, como uma atualização de nó. Um PDB tem de permitir a interrupção de, pelo menos, um pod, pelo que o GKE viola este PDB para a manutenção necessária após uma hora. Ajuste a definição minAvailable do PDB para que seja inferior à contagem total de pods ou a definição maxUnavailable para que seja superior a zero.
PDB_STATEFULSET_WITHOUT_PROBES Alerta quando um StatefulSet é configurado com um PDB, mas sem sondas de disponibilidade, pelo que o PDB não é tão eficaz na avaliação da disponibilidade da aplicação. Os PDBs respeitam as sondas de prontidão quando analisam que pods podem ser considerados saudáveis. Por conseguinte, se um Pod abrangido por um PDB não tiver uma sondagem de prontidão configurada, o PDB tem visibilidade limitada sobre se o Pod está em bom estado ou apenas em funcionamento. Adicione sondas de prontidão aos pods em StatefulSets para o PDB mencionado na estatística. Também recomendamos que adicione testes de vitalidade.
DEPLOYMENT_MISSING_PDB Alerta quando existe uma implementação com um seletor de pods que não corresponde a um PDB existente e a implementação tem mais do que uma réplica ou o dimensionamento automático horizontal de pods ativado. Isto significa que todos os pods na implementação podem ser desativados durante um evento, como uma atualização de nó. Adicione um PDB cujas etiquetas correspondam às etiquetas no campo do seletor de pods da implementação. Especifique nesse PDB a quantidade de interrupção que a implementação pode tolerar. A recomendação associada a estas estatísticas sugere que etiquetas um PDB deve definir para abranger a implementação mencionada.

Implemente as orientações para melhorar a capacidade de resposta a interrupções

Se recebeu estatísticas e recomendações para cargas de trabalho no seu cluster e quiser melhorar a respetiva capacidade de resposta a interrupções, implemente as instruções descritas na recomendação e na ação para esse subtipo de estatísticas, conforme visto na secção anterior.

As recomendações são avaliadas uma vez por dia, pelo que podem demorar até 24 horas a serem resolvidas após a implementação das alterações.

Se não quiser implementar a recomendação, pode ignorá-la.

O que se segue?