Files
argocd/docs/TROUBLESHOOTING-EXTERNAL-DEVICES.md
2026-01-22 23:58:51 +01:00

124 lines
3.3 KiB
Markdown

# 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>-backend` retourne "NotFound"
- `kubectl describe service <service>-backend` montre `Endpoints: <none>`
### Cause
Les Endpoints n'ont pas été créés. Cela peut arriver si :
1. ArgoCD n'a pas encore synchronisé les changements du template
2. Le template n'inclut pas les Endpoints
3. Les Endpoints ont été supprimés
### Solution
#### 1. Vérifier le statut ArgoCD
```bash
# 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
```bash
# 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
```bash
# 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 :
```yaml
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 :
```bash
# 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
```bash
# 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
- `curl` depuis un pod Traefik échoue
### Solution
1. **Vérifier l'IP** : L'IP est-elle correcte dans `values.yaml` ?
2. **Vérifier le réseau** : L'IP est-elle accessible depuis les pods Traefik ?
3. **Vérifier le firewall** : Le port est-il ouvert sur l'équipement externe ?
4. **Vérifier le port** : Le port dans `values.yaml` correspond-il au port de l'équipement ?
```bash
# 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
```bash
# 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
```