До nginx-ingress v0.22.0 была известная проблема с конечными слешами.
Чтобы определить, какая версия входного контроллера работает, выполните exe в модуле и запустите команду версии nginx-ingress-controller.
kubectl exec -it $POD_NAME -- /nginx-ingress-controller --version
-------------------------------------------------------------------------------
NGINX Ingress controller
Release: 0.24.1
Build: git-ce418168f
Repository: https://github.com/kubernetes/ingress-nginx
-------------------------------------------------------------------------------
Переписать целевую аннотацию очень чувствительно для конечных слешей. Если его нет, запрос не будет переписан.
Таким образом, вы должны всегда указывать URL как /reload/x/y/
Другая проблема с дублирующими косыми чертами (исправлена в v 0.22.0 и выше).
Для того, чтобы понять, что там происходит, вы можете выполнить в модуле ingress-controller, найти /etc/nginx/nginx.conf
и найти
set $location_path "/reload(/|${literal_dollar})(.*)";
или
rewrite "(?i)/reload(/|$)(.*)" /$2 break;
блоки
Чтобы исправить это, либо обновите версию ингресс-контроллера до последней, либо вы также можете использовать фрагмент конфигурации аннотация:
nginx.ingress.kubernetes.io/configuration-snippet: |
rewrite (?i)/reload/x/y/ /x/y break;