3 votes

Kubernetes ingress ne fonctionne pas en cas de redirection sur un chemin comme "/myapp", mais ne fonctionne que pour "/".

J'ai un conteneur qui fonctionne sur url comme http://localhost:8000/ps/app/ui/?pid=201 . Le conteneur est déployé sur kubernetes et exposé à un service comme "ps-app-ui:8000". Je veux créer un ingress qui peut être accessible de l'extérieur. Le modèle d'ingress est le suivant :

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ps-ingress
spec:
  rules:
  - http:
      paths:
      - path: /myapp/
        backend:
          serviceName: ps-app-ui
          servicePort: 8000

Le problème est que ça ne fonctionne pas avec cette entrée. J'ai également essayé d'ajouter "ingress.kubernetes.io/rewrite-target : /" mais sans succès. Quelqu'un peut-il m'aider à rendre mon application accessible via " http://INGRESS-IP/myapp/ps/app/ui/?pid=201 "

Je vous en serai très reconnaissant.

0voto

Dylan Points 626

Je pense

- path: /myapp/

correspond à votre application à http://myapp/myapp/

Donc si j'ai une définition :

  - host: app.example.com
    http:
      paths:
      - path: /myapp

Ce serait http://app.example.com/myapp

0voto

Marc Sluiter Points 562

Si vous voulez utiliser http://myapp/ps/app/ui/?pid=201 vous devez le faire :

  • assurez-vous que votre système d'exploitation traduit myapp à une adresse IP où votre contrôleur d'entrée est en train d'écouter
  • ajouter le host myapp à l'entrée
  • vous pouvez laisser le chemin d'accès vide (en supposant que votre application gère l'ensemble de l'opération). /ps/app/ui/?pid=201 chemin)

Il en résulte

rules:
  - host: myapp
    http:
      paths:
      - backend:
          serviceName: ps-app-ui
          servicePort: 8000

Cette entrée transmet tout le trafic vers l'hôte. myapp à votre service

0voto

Vasudev Points 65

La version 0.22.0 ou supérieure d'Ingress a modifié le mode de fonctionnement de rewrite-target. Vous devrez vérifier le chemin d'accès à l'aide d'un filtre Regex et l'ajouter à la cible de réécriture.

nginx.ingress.kubernetes.io/rewrite-target: /$2
...
...
  rules:
  - host: rewrite.bar.com
    http:
      paths:
      - backend:
          serviceName: http-svc
          servicePort: 80
        path: /something(/|$)(.*)

Voir le journal des modifications ici . Comment rédiger un article ici

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X