124 lines
3.3 KiB
Markdown
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
|
|
```
|
|
|