Este artigo descreve como usar as Kubernetes Probes para monitorar a saúde dos contêineres do Kafka.
Saúde do Contêiner
K8s proporciona um número de funcionalidades que permitem criar soluções robustas, como a habilidade de reiniciar contêineres que não estejam funcionando corretamente. O kubelet utiliza liveness probes para saber quando reiniciar o contêiner. Por exemplo, liveness probes pode verificar que existe um deadlock, onde a aplicação está executando, mas não faz nenhum progresso. Reiniciando um contêiner neste estado pode ajudar na disponibilidade da aplicação apesar de bugs.
Liveness Probes
Permite determinar automaticamente quando um contêiner está saudável ou não. Liveness probes permite customizar este mecanismo.
Na configuração do StatefulSet do Kafka adicione:
livenessProbe:
failureThreshold: 6
initialDelaySeconds: 60
periodSeconds: 60
successThreshold: 1
tcpSocket:
port: 9092
timeoutSeconds: 5
Liveness probes são executadas continuamente, o campo periodSeconds especifica que seja executada a cada 60 segundos. O campo initialDelaySeconds informa ao kubelet para aguardar 5 segundos antes da primeira execução da probe. timeoutSeconds é o total de tempo que a probe vai aguardar por uma resposta da porta 9092 e determinar sucesso ou falha. Se a probe falhar por 6 vezes o pod será reiniciado.
Readiness Probes
São usadas para determinar quando um contêiner está pronto para receber requisições. Portanto, tráfego de usuários não será enviado para este pod em particular até que todas as verificações estejam concluídas com sucesso.
A configuração é similar a Liveness probe:
readinessProbe:
failureThreshold: 6
initialDelaySeconds: 120
periodSeconds: 10
successThreshold: 1
tcpSocket:
port: 9092
timeoutSeconds: 5
Nesta configuração, a Readiness probe irá esperar 2 minutos e então a cada 10 segundos irá tentar conectar a porta 9092. Na primeira conexão com sucesso, o pod estará habilitado a receber requisições.
Resumo
Liveness e Readiness probes podem ser uma maneira poderosa de monitorar e automaticamente recuperar os seus pods Kafka após falhas. Você encontra na documentação do Kubernetes os detalhes de todos os parâmetros de configuração. No começo da implantação monitore com atenção e confirme que o comportamento dos pods é o esperado. Não queremos pods a reiniciar a cada 10 segundos por uma má configuração!
Comments