Kubernetes loadbalancer IP source
... / Kubernetes loadbalancer I...
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
question

Kubernetes loadbalancer IP source

Par
Youri
Créé le 2019-08-02 06:18:11 (edited on 2024-09-04 13:03:57) dans Managed Kubernetes service-old

Bonjour,

J'utilise actuellement le service kubernetes et je rencontre un problème concernant l'IP source sur les loadbalancer.

J'ai des pod Apaches qui tournent derrière un loadbalancer configuré avec l'option External Traffic Policy: Local mais dans les logs apache c'est l'ip local du cluster qui est affichée.

Un second service loadbalancer ingress a été testé avec une configuration identique mais dans les logs du controleur Nginx c'est egalement une IP "cluster" ( 10.10.... ) qui apparait dans les logs.

Il est donc impossible de restreindre des noms de domaines / dossiers à des IP publiques.
Est-ce un problème de configuration ou une limitation du service LB Kubernetes de OVH ?

Avez-vous déja rencontré ce type de problème ?

Merci pour vos retours


1 réponse ( Latest reply on 2019-10-11 09:19:12 Par
Community Deleted user
)

Bonjour @Youri,

Vous pouvez avoir accès aux IPs sources en utilisant le proxy-protocol sur votre LoadBalancer OVH.
Vous pouvez vous inspirer de ce gist: https://gist.github.com/d33d33/d95fc38e7b94dc4e41533196af228c8e#file-ingress-lb-yml

Thomas

Bonjour,

Merci pour votre retour.
J'ai réussi a configurer le loadbalancer en suivant ce tuto : https://docs.ovh.com/gb/en/kubernetes/getting-source-ip-behind-loadbalancer/

Cordialement

Bonjour,

J'ai la même problèmatique, mais même en suivant le tutorial pas-à-pas je n'arrive pas à obtenir la véritable Ip source.

à la fin du tutorial, le service echo me répond ceci:

// http://6fvbxxxxev4.lb.c4.gra.k8s.ovh.net/

{
"path": "/",
"headers": {
"host": "6fvbxxxxxev4.lb.c4.gra.k8s.ovh.net",
"x-request-id": "7e323901xxxxxxxxxx98640c0a940b81",
"x-real-ip": "10.110.108.17",
"x-forwarded-for": "10.110.108.17",
"x-forwarded-host": "6fvbxxxxev4.lb.c4.gra.k8s.ovh.net",


Quelqu'un a une piste pour savoir comment débugger ça ?

+1 (même problème)

Eurêka ! (En fait non, voir message suivant)
Il doit y avoir une régression ou un problème de compatibilité avec la dernière version de ingress-nginx.
En utilisant la version précédente, ça marche pour moi :

En fait, je crois plutôt qu'une amélioration a été apportée à le version courante de ingress-nginx.
Maintenant le patch n'est plus nécessaire, il suffit de configurer le service de la sorte :

```
data:
use-proxy-protocol: "true"
```

Ce qui donne (en ayant remplacé le contenu du fichier `patch-ingress-configmap.yml` par le code ci-dessus) :

```
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml
kubectl -n ingress-nginx patch configmap nginx-configuration -p "$(cat patch-ingress-configmap.yml)"
kubectl apply -f ingress-nginx.yaml
kubectl apply -f echo.yaml
```

(Je conseille également de renommer le service `ingress-lb` en `ingress-nginx`, sinon ça remplit le log du pod. Je crois que le redémarrage du pod n'est pas non plus nécessaire après avoir patché la configmap.)

Les réponses sont actuellement désactivées pour cette question.