• Русский
  • Совместимость аннотаций ingress-nginx

    Содержание

    Основные понятия

    ingress-nginx — это широко используемый Ingress Controller в Kubernetes, который определяет множество аннотаций для реализации различных функций, выходящих за рамки официального определения ingress.

    Поддерживаемые аннотации ingress-nginx

    НазваниетипПоддержка (v — поддерживается, x — не поддерживается, o — частично поддерживается или может быть реализовано через конфигурацию)
    nginx.ingress.kubernetes.io/app-rootstringx
    nginx.ingress.kubernetes.io/affinitycookieo ingress не поддерживает. alb rule может настроить cookie hash
    nginx.ingress.kubernetes.io/use-regexbool
    nginx.ingress.kubernetes.io/affinity-mode"balanced" или "persistent"o ingress не поддерживает. alb rule может настроить session persistence
    nginx.ingress.kubernetes.io/affinity-canary-behavior"sticky" или "legacy"o ingress не поддерживает. alb rule может настроить session persistence
    nginx.ingress.kubernetes.io/auth-realmstringv auth
    nginx.ingress.kubernetes.io/auth-secretstringv auth
    nginx.ingress.kubernetes.io/auth-secret-typestringv auth
    nginx.ingress.kubernetes.io/auth-type"basic" или "digest"v auth
    nginx.ingress.kubernetes.io/auth-tls-secretstringx
    nginx.ingress.kubernetes.io/auth-tls-verify-depthnumberx
    nginx.ingress.kubernetes.io/auth-tls-verify-clientstringx
    nginx.ingress.kubernetes.io/auth-tls-error-pagestringx
    nginx.ingress.kubernetes.io/auth-tls-pass-certificate-to-upstream"true" или "false"x
    nginx.ingress.kubernetes.io/auth-tls-match-cnstringx
    nginx.ingress.kubernetes.io/auth-urlstringv
    nginx.ingress.kubernetes.io/auth-cache-keystringx
    nginx.ingress.kubernetes.io/auth-cache-durationstringx
    nginx.ingress.kubernetes.io/auth-keepalivenumberx
    nginx.ingress.kubernetes.io/auth-keepalive-share-vars"true" или "false"x
    nginx.ingress.kubernetes.io/auth-keepalive-requestsnumberx
    nginx.ingress.kubernetes.io/auth-keepalive-timeoutnumberx
    nginx.ingress.kubernetes.io/auth-proxy-set-headersstringv
    nginx.ingress.kubernetes.io/auth-snippetstringx
    nginx.ingress.kubernetes.io/enable-global-auth"true" или "false"o auth
    nginx.ingress.kubernetes.io/backend-protocolstringv
    nginx.ingress.kubernetes.io/canary"true" или "false"x
    nginx.ingress.kubernetes.io/canary-by-headerstringx
    nginx.ingress.kubernetes.io/canary-by-header-valuestringx
    nginx.ingress.kubernetes.io/canary-by-header-patternstringx
    nginx.ingress.kubernetes.io/canary-by-cookiestringx
    nginx.ingress.kubernetes.io/canary-weightnumberx
    nginx.ingress.kubernetes.io/canary-weight-totalnumberx
    nginx.ingress.kubernetes.io/client-body-buffer-sizestringx
    nginx.ingress.kubernetes.io/configuration-snippetstringx
    nginx.ingress.kubernetes.io/custom-http-errors[]intx
    nginx.ingress.kubernetes.io/custom-headersstringo
    nginx.ingress.kubernetes.io/default-backendstringo можно использовать default-backend ingress
    nginx.ingress.kubernetes.io/enable-cors"true" или "false"v
    nginx.ingress.kubernetes.io/cors-allow-originstringv
    nginx.ingress.kubernetes.io/cors-allow-methodsstringv
    nginx.ingress.kubernetes.io/cors-allow-headersstringv
    nginx.ingress.kubernetes.io/cors-expose-headersstringx
    nginx.ingress.kubernetes.io/cors-allow-credentials"true" или "false"x
    nginx.ingress.kubernetes.io/cors-max-agenumberx
    nginx.ingress.kubernetes.io/force-ssl-redirect"true" или "false"v redirect
    nginx.ingress.kubernetes.io/from-to-www-redirect"true" или "false"x
    nginx.ingress.kubernetes.io/http2-push-preload"true" или "false"x
    nginx.ingress.kubernetes.io/limit-connectionsnumberx
    nginx.ingress.kubernetes.io/limit-rpsnumberx
    nginx.ingress.kubernetes.io/global-rate-limitnumberx
    nginx.ingress.kubernetes.io/global-rate-limit-windowdurationx
    nginx.ingress.kubernetes.io/global-rate-limit-keystringx
    nginx.ingress.kubernetes.io/global-rate-limit-ignored-cidrsstringx
    nginx.ingress.kubernetes.io/permanent-redirectstringv redirect
    nginx.ingress.kubernetes.io/permanent-redirect-codenumberv redirect
    nginx.ingress.kubernetes.io/temporal-redirectstringv redirect
    nginx.ingress.kubernetes.io/preserve-trailing-slash"true" или "false"x
    nginx.ingress.kubernetes.io/proxy-body-sizestringx
    nginx.ingress.kubernetes.io/proxy-cookie-domainstringx
    nginx.ingress.kubernetes.io/proxy-cookie-pathstringx
    nginx.ingress.kubernetes.io/proxy-connect-timeoutnumberv timeout
    nginx.ingress.kubernetes.io/proxy-send-timeoutnumberv timeout
    nginx.ingress.kubernetes.io/proxy-read-timeoutnumberv timeout
    nginx.ingress.kubernetes.io/proxy-next-upstreamstringx
    nginx.ingress.kubernetes.io/proxy-next-upstream-timeoutnumberx
    nginx.ingress.kubernetes.io/proxy-next-upstream-triesnumberx
    nginx.ingress.kubernetes.io/proxy-request-bufferingstringx
    nginx.ingress.kubernetes.io/proxy-redirect-fromstringx
    nginx.ingress.kubernetes.io/proxy-redirect-tostringx
    nginx.ingress.kubernetes.io/proxy-http-version"1.0" или "1.1"x
    nginx.ingress.kubernetes.io/proxy-ssl-secretstringx
    nginx.ingress.kubernetes.io/proxy-ssl-ciphersstringx
    nginx.ingress.kubernetes.io/proxy-ssl-namestringx
    nginx.ingress.kubernetes.io/proxy-ssl-protocolsstringx
    nginx.ingress.kubernetes.io/proxy-ssl-verifystringx
    nginx.ingress.kubernetes.io/proxy-ssl-verify-depthnumberx
    nginx.ingress.kubernetes.io/proxy-ssl-server-namestringx
    nginx.ingress.kubernetes.io/enable-rewrite-log"true" или "false"x
    nginx.ingress.kubernetes.io/rewrite-targetURIv
    nginx.ingress.kubernetes.io/satisfystringx
    nginx.ingress.kubernetes.io/server-aliasstringx
    nginx.ingress.kubernetes.io/server-snippetstringx
    nginx.ingress.kubernetes.io/service-upstream"true" или "false"x
    nginx.ingress.kubernetes.io/session-cookie-change-on-failure"true" или "false"x
    nginx.ingress.kubernetes.io/session-cookie-conditional-samesite-none"true" или "false"x
    nginx.ingress.kubernetes.io/session-cookie-domainstringx
    nginx.ingress.kubernetes.io/session-cookie-expiresstringx
    nginx.ingress.kubernetes.io/session-cookie-max-agestringx
    nginx.ingress.kubernetes.io/session-cookie-namestringx
    nginx.ingress.kubernetes.io/session-cookie-pathstringx
    nginx.ingress.kubernetes.io/session-cookie-samesitestringx
    nginx.ingress.kubernetes.io/session-cookie-securestringx
    nginx.ingress.kubernetes.io/ssl-redirect"true" или "false"v
    nginx.ingress.kubernetes.io/ssl-passthrough"true" или "false"x
    nginx.ingress.kubernetes.io/stream-snippetstringx
    nginx.ingress.kubernetes.io/upstream-hash-bystringx
    nginx.ingress.kubernetes.io/x-forwarded-prefixstringx
    nginx.ingress.kubernetes.io/load-balancestringx
    nginx.ingress.kubernetes.io/upstream-vhoststringv
    nginx.ingress.kubernetes.io/denylist-source-rangeCIDRo можно добиться похожего эффекта через modsecurity
    nginx.ingress.kubernetes.io/whitelist-source-rangeCIDRo можно добиться похожего эффекта через modsecurity
    nginx.ingress.kubernetes.io/proxy-bufferingstringx
    nginx.ingress.kubernetes.io/proxy-buffers-numbernumberx
    nginx.ingress.kubernetes.io/proxy-buffer-sizestringx
    nginx.ingress.kubernetes.io/proxy-max-temp-file-sizestringx
    nginx.ingress.kubernetes.io/ssl-ciphersstringx
    nginx.ingress.kubernetes.io/ssl-prefer-server-ciphers"true" или "false"x
    nginx.ingress.kubernetes.io/connection-proxy-headerstringx
    nginx.ingress.kubernetes.io/enable-access-log"true" или "false"o по умолчанию включен access_log, формат фиксирован
    nginx.ingress.kubernetes.io/enable-opentelemetry"true" или "false"v otel
    nginx.ingress.kubernetes.io/opentelemetry-trust-incoming-span"true" или "false"v otel
    nginx.ingress.kubernetes.io/enable-modsecurityboolv modsecurity
    nginx.ingress.kubernetes.io/enable-owasp-core-rulesboolv modsecurity
    nginx.ingress.kubernetes.io/modsecurity-transaction-idstringv modsecurity
    nginx.ingress.kubernetes.io/modsecurity-snippetstringv modsecurity
    nginx.ingress.kubernetes.io/mirror-request-bodystringx
    nginx.ingress.kubernetes.io/mirror-targetstringx
    nginx.ingress.kubernetes.io/mirror-hoststringx