Arata ca a ta Rescrie Ținta este greșită. Uită-te la acest exemplu general de la documentație:
apiVersion: networking.k8s.io/v1
fel: Intrare
metadate:
adnotari:
nginx.ingress.kubernetes.io/rewrite-target: /$2
nume: rescrie
spatiu de nume: implicit
specificație:
reguli:
- gazdă: rewrite.bar.com
http:
trasee:
- backend:
serviceName: http-svc
servicePort: 80
cale: /ceva(/|$)(.*)
În această definiție de intrare, orice caractere capturate de (.*)
va fi atribuit substituentului $2
, care este apoi folosit ca parametru în rescriere-ţintă
adnotare.
De exemplu, definiția de intrare de mai sus va avea ca rezultat următoarele rescrieri:
rewrite.bar.com/something
rescrie la rewrite.bar.com/
rewrite.bar.com/something/
rescrie la rewrite.bar.com/
rewrite.bar.com/something/new
rescrie la rewrite.bar.com/new
În situația dvs., dacă încercați să accesați staging.my-domain.com/
, sunteți rescris la aceeași adresă. Totul e bine. Dar poți rescrie doar această adresă. Ar trebui să vă schimbați manifestul astfel:
apiVersion: networking.k8s.io/v1
fel: Intrare
metadate:
adnotari:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internet-facing
external-dns.alpha.kubernetes.io/hostname: staging.my-domain.com
nginx.ingress.kubernetes.io/ssl-redirect: „fals”
nginx.ingress.kubernetes.io/force-ssl-redirect: „fals”
nginx.ingress.kubernetes.io/rewrite-target: /$1
nume: nlx-api
specificație:
reguli:
- gazdă: staging.my-domain.com
http:
trasee:
- cale: /(.*)
pathType: Prefix
backend:
serviciu:
nume: our-api
port:
număr: 80
În această situație orice personaje capturate de (.*)
va fi atribuit substituentului $1
(acesta este primul grup de captură), care este apoi folosit ca parametru în rescriere-ţintă
adnotare.