Agora vamos testar o banco de dados, quanto tempo ele demora para se recuperar de uma queda?
Dentro da pasta "chaos" crie o arquivo "experiment-db.json" com o código abaixo
{
"title": "O banco de dados voltará ao ar com os dados corretos?",
"description": "Esperamos que o banco de dados volte ao ar com dados atualizados",
"tags": ["kubernetes", "bank"],
"steady-state-hypothesis": {
"title": "Verificando se a aplicação retorna a consulta",
"probes": [
{
"name": "application-returning-query",
"type": "probe",
"tolerance": 200,
"provider": {
"type": "http",
"url": "http://[host e porta]/api/contas/123456",
"timeout": [ 10, 10 ]
}
}
]
},
"method": [
{
"type": "action",
"name": "deleting-pod-database",
"provider": {
"type": "python",
"module": "chaosk8s.pod.actions",
"func": "terminate_pods",
"arguments": {
"label_selector": "app=mysqldb-stfs",
"qty": 1,
"grace_period": 0
}
},
"pauses": {
"after": 20
}
},
{
"ref": "application-returning-query"
}
]
}
Altere o host e porta da linha 14, conforme seu ambiente local e execute o comando abaixo
kubectl get pods --watch
Mantenha a janela do terminal aberta com o comando acima, abra outro terminal, vá até a pasta "chaos" do projeto e execute
chaos run experiment-db.json
Repare na outra janela do terminal que enquanto o Chaos roda, o contêiner de banco de dados é finalizados e na sequência o Chaos testa o endereço da aplicação.