Self-healing ou auto recuperação é uma das features mais importantes do kubernetes, pois ela se encarrega de manter o estado de sua aplicação (leia-se manter ela rodando), recarregar um POD em caso de falha e de manter a quantidade desejada de PODs rodando.
Você pode personalizar essa configuração para que a plataforma verifique periodicamente sua aplicação e então ela poderá decidir se reinicia este POD, se o recria, se já pode enviar requisições para ele ou removê-lo do balanceador de carga.
Para isto você deverá configurar Health-Checks para seu POD, como demonstro abaixo.
Para editar seu DeploymentConfig você deve possuir o Openshift CLI instalado e fazer login em sua conta.
Por exemplo, editando a aplicação "meu-site":
$ oc edit deploymentconfig/meu-site
Existem 2 tipos de checagem que o cluster pode realizar:
Readiness: Este tipo de checagem determina se o serviço está pronto para receber requisições logo após ser iniciado.
Este deve ser adicionado ao seu DeploymentConfig em template.spec.containers.readinessProbe
Por exemplo, a checagem abaixo faz GET no path /healthz na porta 8080, aguardando 15 segundos iniciais e com timeout de 1 segundo.
... readinessProbe: httpGet: path: /healthz port: 8080 initialDelaySeconds: 15 timeoutSeconds: 1 ...
Liveness: Este tipo de checagem determina se o POD está rodando. Se o probe falhar o POD é remvido do balanceador até que volte a retornar sucesso.
Este deve ser adicionado ao seu DeploymentConfig em template.spec.containers.livenessProbe
Por exemplo, a checagem abaixo faz CAT no arquivo /tmp/health , aguardando 15 segundos iniciais e com timeout de 1 segundo.
...
livenessProbe: exec: command: - cat - /tmp/health initialDelaySeconds: 15 timeoutSeconds: 1
...
Você encontra mais informações na documentação do OpenShift.
Comentários
0 comentário
Por favor, entre para comentar.