ConcourseWorkerFailure#
Un ou plusieurs workers concourse sont vus en status stalled.
Vérification avec fly#
fly switch -z <ocb-example> -n main # Ajouter `-c` si le namespace de l'alerte est `concourse`
fly login # Cliquer sur le lien proposé pour se connecter via keycloak
fly workers
name containers platform tags team state version age
caascad-ci-workers-infra-ocb-example-0 0 linux none none stalled 2.3 15d
ConcourseDown.
Vérification des logs de pod concourse-web#
kubectl get pods -n <namespace> -l app=concourse-web
kubectl logs <concourse-web pod> -n <namespace>
Tip
Le namespace peut être concourse ou concourse-infra
Causes possibles#
-
Perte de connectivité entre le pod
concourse-webet les VMs des workers- S'il y a des HTTP status code
500dans les logs de concourse-web :{"timestamp":"2024-01-02T18:45:13.996722857Z","level":"error","source":"tsa","message":"tsa.connection.channel.command.register.bad-response","data":{"command":"forward-worker","remote":"172.16.0.85:42442","session":"91625807.4.1.21448","status-code":500}}
- S'il y a des HTTP status code
-
Problème avec le service
concourse-workersur la VM - Problème système (CPU, mémoire, disque...) sur la VM
Solutions#
Recréation du pod#
Parfois, le problème vient du pod concourse-web malgré des erreurs remontées sur un ou plusieurs workers. Une première étape simple et rapide consiste à supprimer le pod.
Warning
Cette action peut impacter les pipelines en cours d'exécution et rend la page web indisponible quelques minutes.
kswitch <ocb-example>
# NOTE: remplacer `concourse` par `concourse-infra` selon le namespace concerné
kubectl get pods -n concourse -l app=concourse-web
kubectl delete pods -n concourse -l app=concourse-web
# Vérifier que le pod est bien recréé
kubectl get pods -n concourse -l app=concourse-web
NAME READY STATUS RESTARTS AGE
concourse-postgresql-0 2/2 Running 0 34d
concourse-postgresql-1 2/2 Running 0 34d
concourse-web-xxxxxxxxx-xxxxx 1/1 Running 0 5m
Investigation sur une VM#
Connexion#
ssh cloud@bst.<ocb-example>.caascad.com
[cloud@bst ~]$ ssh caascad-ci-workers-<client|infra>-<ocb-example>-<0>.<ocb-example>.caascad.com
[cloud@caascad-ci-workers-client-ocb-example-0 ~]$
S'il est impossible de se connecter :
- Tenter un redémarrage de la VM via l'UI ou les commandes du cloud provider
- Si ça ne suffit pas, reconstruire le worker
Vérification du service#
systemctl status concourse-worker
sudo journalctl -u concourse-worker
En fonction du problème, se référer à la documentation opérationnelle de concourse