У меня есть Ingress-файл, который содержит только одну аннотацию :
---
apiVersion: "extensions/v1beta1"
kind: "Ingress"
metadata:
name: "logging-microservice-ingress"
namespace: "000000001"
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
-
host: "ms-shared-nad.techmahindra.com"
http:
paths:
-
backend:
serviceName: "logging-microservice-000000001"
servicePort: 3000
path: "/logging-microservice"
Когда я вызываю https://example.com/logging-microservice/logs
backend , сервис генерирует,
GET /logs --> 200
Когда я добавил еще две аннотации вроде
nginx.ingress.kubernetes.io/limit-connections: 1
nginx.ingress.kubernetes.io/limit-rps: 1
бэкэнд дает
GET /logging-microservice/logs --> 404
У меня нет доступа, чтобы увидеть фактическую конфигурацию nginx, сгенерированную там.Но, интересно, как применение ограничения скорости может изменить базу перезаписи.
Я пробовал ограничение скорости в open source nginx server
, и оно работает, как и ожидалось.Что может быть изменением для удаления пути из URL-адреса, который передается в бэкэнд API верхнего уровня?
Обновление:
Я получил доступ к кластеру и записал происходящие изменения:
location ~* "^/logging-microservice" {
rewrite "(?i)/logging-microservice" / break;
}
location ~* "^/" {
}
меняется на
location /logging-microservice {
}
location / {
}
при добавлении аннотаций, ограничивающих скорость.