J'ai un contrôleur d'entrée et une ressource d'entrée fonctionnant avec tous/devops mappés à devopsservice dans le backend. Quand j'essaye de frapper " http: // hostname/devops " les choses fonctionnent et j'obtiens une page (bien que sans CSS et styles) avec un ensemble d'hyperliens, par exemple l'un d'eux est "logs".
Lorsque je clique sur l'hyperlien "logs", il me redirige vers http: // hostname/logs alors que j'en ai besoin http: // hostname/devops/logs =.
Une idée de ce que je peux faire?
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
namespace: ingress-nginx
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/add-base-url : "true"
spec:
rules:
- Host: master1.dev.local
http:
paths:
- backend:
serviceName: devops1
servicePort: 10311
path: /devops
Si vous accédez à http://hostname/devops/logs
directement depuis votre navigateur, vous obtiendrez certainement ce que vous voulez. Mais puisque vous cliquez sur le lien hypertexte dans la page d'accueil, vous ne pouvez obtenir que http://hostname/logs
, ce qui sera certainement un échec.
Donc, vous avez besoin de /logs
backend configuré dans votre yaml d'entrée pour le traiter et configurer nginx.ingress.kubernetes.io/configuration-snippet
s'assurer /logs
ne pas être réécrit, comme ceci:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
namespace: ingress-nginx
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/add-base-url : "true"
nginx.ingress.kubernetes.io/configuration-snippet: |
rewrite ^/logs /logs break;
spec:
rules:
- Host: master1.dev.local
http:
paths:
- backend:
serviceName: devops1
servicePort: 10311
path: /logs
- backend:
serviceName: devops1
servicePort: 10311
path: /devops
On dirait que votre entrée ne sert à rien /devops/*
. Essayez d'ajouter un autre chemin /devops/*
avec le même backend. Fondamentalement, cela:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
namespace: ingress-nginx
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/add-base-url : "true"
spec:
rules:
- Host: master1.dev.local
http:
paths:
- backend:
serviceName: devops1
servicePort: 10311
path: /devops/*
- backend:
serviceName: devops1
servicePort: 10311
path: /devops
Au moment de la rédaction de ce document, il y avait encore travail en cours dans ce domaine.