3.3 KiB
3.3 KiB
Dépannage - External Devices
Problème : "no available server" ou Endpoints manquants
Symptômes
- Erreur "no available server" dans le navigateur
kubectl get endpoints <service>-backendretourne "NotFound"kubectl describe service <service>-backendmontreEndpoints: <none>
Cause
Les Endpoints n'ont pas été créés. Cela peut arriver si :
- ArgoCD n'a pas encore synchronisé les changements du template
- Le template n'inclut pas les Endpoints
- Les Endpoints ont été supprimés
Solution
1. Vérifier le statut ArgoCD
# Vérifier le statut de l'application
argocd app get external-devices-dev
# Vérifier si une synchronisation est nécessaire
argocd app diff external-devices-dev
2. Forcer une synchronisation
# Synchroniser l'application
argocd app sync external-devices-dev
# Ou via kubectl si ArgoCD est dans le cluster
kubectl patch application external-devices-dev -n argocd-ops \
-p '{"operation":{"initiatedBy":{"username":"admin"},"sync":{"revision":"HEAD"}}}' \
--type merge
3. Vérifier que les Endpoints sont créés
# Vérifier les Endpoints
kubectl get endpoints omv-backend -n traefik-dev
# Vérifier le détail
kubectl get endpoints omv-backend -n traefik-dev -o yaml
Les Endpoints devraient contenir :
subsets:
- addresses:
- ip: 10.78.20.107 # L'IP de votre équipement
ports:
- port: 80
protocol: TCP
4. Vérifier la connectivité
Une fois les Endpoints créés, tester la connexion :
# Depuis un pod Traefik
POD=$(kubectl get pods -n traefik-dev -l app.kubernetes.io/name=traefik -o jsonpath='{.items[0].metadata.name}')
kubectl exec -n traefik-dev -it $POD -- curl -v http://10.78.20.107:80
Vérification complète
# 1. Service existe
kubectl get service omv-backend -n traefik-dev
# 2. Endpoints existent
kubectl get endpoints omv-backend -n traefik-dev
# 3. IngressRoute existe
kubectl get ingressroute omv -n traefik-dev
# 4. Secret TLS existe
kubectl get secret wildcard-dev-tls -n traefik-dev
# 5. Test de connectivité
kubectl exec -n traefik-dev -it $(kubectl get pods -n traefik-dev -l app.kubernetes.io/name=traefik -o jsonpath='{.items[0].metadata.name}') -- curl -v http://10.78.20.107:80
Problème : IP non accessible
Symptômes
- Endpoints créés mais erreur "connection refused" ou timeout
curldepuis un pod Traefik échoue
Solution
- Vérifier l'IP : L'IP est-elle correcte dans
values.yaml? - Vérifier le réseau : L'IP est-elle accessible depuis les pods Traefik ?
- Vérifier le firewall : Le port est-il ouvert sur l'équipement externe ?
- Vérifier le port : Le port dans
values.yamlcorrespond-il au port de l'équipement ?
# Test depuis un pod Traefik
POD=$(kubectl get pods -n traefik-dev -l app.kubernetes.io/name=traefik -o jsonpath='{.items[0].metadata.name}')
kubectl exec -n traefik-dev -it $POD -- curl -v --connect-timeout 5 http://10.78.20.107:80
Problème : Certificat TLS manquant
Symptômes
- Erreur "certificate not found" dans les logs Traefik
- IngressRoute en erreur
Solution
# Vérifier que le secret existe
kubectl get secret wildcard-dev-tls -n traefik-dev
# Si le secret n'existe pas, vérifier qu'il est synchronisé depuis OPS
# Voir docs/tls-sync-wildcard.md