ingress-nginx
7 commands
7 shown
Дамп итоговой конфигурации nginx
Показывает полный действующий nginx.conf со всеми server-блоками, которые реально сгенерировал контроллер
kubectl exec deploy/ingress-nginx-controller -n ingress-nginx -- nginx -T | less
Метрики статуса контроллера
Текущие активные соединения и счётчики reading/writing/waiting с эндпоинта stub_status
kubectl exec deploy/ingress-nginx-controller -n ingress-nginx -- curl -s localhost:10254/nginx_status
Поиск таймаутов upstream в логах
Ищет таймауты бэкенда и оборванные клиентом запросы; note: 499 — клиент закрыл соединение до ответа upstream
kubectl logs -n ingress-nginx deploy/ingress-nginx-controller --tail=2000 | grep -iE 'upstream timed out|504|499'
Аннотация канареечного сплита трафика
Направляет 20% трафика на канареечный ingress; нужен основной ingress на том же host/path
kubectl annotate ingress <name> -n <ns> nginx.ingress.kubernetes.io/canary=true nginx.ingress.kubernetes.io/canary-weight="20"
Аннотации лимита запросов и размера тела
Ограничивает RPS на IP клиента и поднимает лимит загрузки; burst по умолчанию 5x от rps
kubectl annotate ingress <name> -n <ns> nginx.ingress.kubernetes.io/limit-rps="10" nginx.ingress.kubernetes.io/proxy-body-size="50m"
Rewrite-target с группой захвата
Срезает префикс пути через regex-захват; путь должен содержать (/|$)(.*), чтобы $2 раскрылся
kubectl annotate ingress <name> -n <ns> nginx.ingress.kubernetes.io/rewrite-target='/$2' nginx.ingress.kubernetes.io/use-regex='true'
Список ingressclass и класс по умолчанию
Показывает контроллеры и какой IngressClass является дефолтным; помечен должен быть только один
kubectl get ingressclass -o custom-columns='NAME:.metadata.name,DEFAULT:.metadata.annotations.ingressclass\.kubernetes\.io/is-default-class'
no commands match