add endpoint
This commit is contained in:
123
docs/TROUBLESHOOTING-EXTERNAL-DEVICES.md
Normal file
123
docs/TROUBLESHOOTING-EXTERNAL-DEVICES.md
Normal file
@@ -0,0 +1,123 @@
|
||||
# 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
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user