Az Application Gateway bejövőforgalom-vezérlőjének megjegyzései

A Kubernetes bejövő erőforrást tetszőleges kulcs/érték párokkal jegyzetelheti. Az Application Gateway Ingress Controller (AGIC) a bejövő YAML-en keresztül nem konfigurálható Azure Application Gateway funkciók programozására szolgáló annotációkra támaszkodik. A bejövőjegyzeteket a rendszer a bejövő erőforrásból származó összes HTTP-beállításra, háttérkészletre és figyelőre alkalmazza.

Tipp.

Fontolja meg az Application Gateway for Containers használatát a Kubernetes bejövő megoldásához. További információkért lásd: Rövid útmutató: Az Application Gateway telepítése konténeres ALB-vezérlőhöz.

Támogatott széljegyzetek listája

Ahhoz, hogy az AGIC megfigyeljen egy bejövő erőforrást, az erőforrást széljegyzetekkel kubernetes.io/ingress.class: azure/application-gatewaykell jelölni.

Megjegyzéskulcs Érték típusa Alapértelmezett érték Megengedett értékek
appgw.ingress.kubernetes.io/backend-path-prefix string nil
appgw.ingress.kubernetes.io/backend-hostname string nil
appgw.ingress.kubernetes.io/health-probe-hostname string 127.0.0.1
appgw.ingress.kubernetes.io/health-probe-port int32 80
appgw.ingress.kubernetes.io/health-probe-path string /
appgw.ingress.kubernetes.io/health-probe-status-codes string 200-399
appgw.ingress.kubernetes.io/health-probe-interval int32 30 (másodperc)
appgw.ingress.kubernetes.io/health-probe-timeout int32 30 (másodperc)
appgw.ingress.kubernetes.io/health-probe-unhealthy-threshold (egészségügyi szonda nem megfelelő küszöbérték) int32 3
appgw.ingress.kubernetes.io/ssl-redirect bool false
appgw.ingress.kubernetes.io/connection-draining bool false
appgw.ingress.kubernetes.io/connection-draining-timeout int32 (másodperc) 30
appgw.ingress.kubernetes.io/use-private-ip bool false
appgw.ingress.kubernetes.io/override-frontend-port bool false
appgw.ingress.kubernetes.io/cookie-based-affinity bool false
appgw.ingress.kubernetes.io/request-timeout int32 (másodperc) 30
appgw.ingress.kubernetes.io/use-private-ip bool false
appgw.ingress.kubernetes.io/backend-protocol string http http, https
appgw.ingress.kubernetes.io/hostname-extension string nil
appgw.ingress.kubernetes.io/waf-policy-for-path string nil
appgw.ingress.kubernetes.io/appgw-ssl-certificate string nil
appgw.ingress.kubernetes.io/appgw-ssl-profile string nil
appgw.ingress.kubernetes.io/appgw-trusted-root-certificate string nil
appgw.ingress.kubernetes.io/rewrite-rule-set string nil
appgw.ingress.kubernetes.io/rewrite-rule-set-custom-resource
appgw.ingress.kubernetes.io/rule-priority int32 nil

Háttér elérési út előtagja

A következő megjegyzés lehetővé teszi, hogy a hozzáférési erőforrásban megadott backend útvonalat a meghatározott előtaggal újraírjuk. Segítségével olyan szolgáltatásokat tehet közzé, amelyek végpontjai eltérnek a bejövő erőforrásban lévő szolgáltatásokhoz használt végpontnevektől.

Használat

appgw.ingress.kubernetes.io/backend-path-prefix: <path prefix>

Példa

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-bkprefix
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/backend-path-prefix: "/test/"
spec:
  rules:
  - http:
      paths:
      - path: /hello/
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 80

Az előző példa egy go-server-ingress-bkprefix nevű bemeneti erőforrást határoz meg egy appgw.ingress.kubernetes.io/backend-path-prefix: "/test/" nevű annotációval. Az annotáció jelzi az Application Gateway számára, hogy hozzon létre egy HTTP-beállítást, amely felülírja az útvonal /hello előtagját /test/ előtagra.

A példa csak egy szabályt határoz meg. A széljegyzetek azonban a teljes bejövő erőforrásra vonatkoznak. Ha tehát több szabályt határoz meg, minden megadott elérési úthoz konfigurálja a háttér útvonal előtagját. Ha eltérő elérésiút-előtagokkal rendelkező szabályokat szeretne (még ugyanazon szolgáltatás esetében is), különböző bejövő erőforrásokat kell definiálnia.

Háttér gazdagép neve

Az alábbi széljegyzet használatával adja meg az Application Gateway által a podokkal való beszélgetés során használni kívánt állomásnevet.

Használat

appgw.ingress.kubernetes.io/backend-hostname: "internal.example.com"

Példa

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-timeout
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/backend-hostname: "internal.example.com"
spec:
  rules:
  - http:
      paths:
      - path: /hello/
        backend:
          service:
            name: store-service
            port:
              number: 80
        pathType: Exact

Egyéni egészségügyi vizsgálat

Az Application Gateway konfigurálható úgy, hogy egyéni egészségügyi próbát küldjön a háttérrendszer címkészletéhez. Ha a következő széljegyzetek jelennek meg, a Kubernetes bejövőforgalom-vezérlő létrehoz egy egyéni mintavételt a háttéralkalmazás figyeléséhez. A vezérlő ezután alkalmazza a módosításokat az Application Gatewayre.

  • health-probe-hostname: Ez a megjegyzés lehetővé teszi az egyéni állomásnevet az állapot-ellenőrzés során.
  • health-probe-port: Ez a megjegyzés egyéni portot konfigurál az állapotadat-mintavételhez.
  • health-probe-path: Ez a megjelölés határozza meg az állapotellenőrző vizsgálat elérési útját.
  • health-probe-status-codes: Ez a megjegyzés lehetővé teszi, hogy az állapotadat-mintavétel különböző HTTP-állapotkódokat fogadjon el.
  • health-probe-interval: Ez a széljegyzet határozza meg az állapotadat-mintavétel futási időközét.
  • health-probe-timeout: Ez a megjegyzés határozza meg, hogy az állapotvizsgálat mennyi ideig vár a válaszra, mielőtt a vizsgálat sikertelennek minősül.
  • health-probe-unhealthy-threshold: Ez a megjegyzés azt határozza meg, hogy hány egészség-ellenőrzésnek kell kudarcot vallania ahhoz, hogy a háttérrendszer egészségtelen állapotúként legyen megjelölve.

Használat

appgw.ingress.kubernetes.io/health-probe-hostname: "contoso.com"
appgw.ingress.kubernetes.io/health-probe-port: 80
appgw.ingress.kubernetes.io/health-probe-path: "/"
appgw.ingress.kubernetes.io/health-probe-status-codes: "100-599"
appgw.ingress.kubernetes.io/health-probe-interval: 30
appgw.ingress.kubernetes.io/health-probe-timeout: 30
appgw.ingress.kubernetes.io/health-probe-unhealthy-threshold: 2

Példa

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/health-probe-hostname: "contoso.com"
    appgw.ingress.kubernetes.io/health-probe-port: 81
    appgw.ingress.kubernetes.io/health-probe-path: "/probepath"
    appgw.ingress.kubernetes.io/health-probe-status-codes: "100-599"
    appgw.ingress.kubernetes.io/health-probe-interval: 31
    appgw.ingress.kubernetes.io/health-probe-timeout: 31
    appgw.ingress.kubernetes.io/health-probe-unhealthy-threshold: 2
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 80

TLS-átirányítás

Az Application Gateway konfigurálható úgy, hogy a HTTP URL-címeket automatikusan átirányítsa a HTTPS-megfelelőikre. Ha ez a megjegyzés jelen van, és a TLS megfelelően van konfigurálva, a Kubernetes bejövőforgalom-vezérlő létrehoz egy átirányítási konfigurációval rendelkező útválasztási szabályt. A vezérlő ezután alkalmazza a módosításokat az Application Gateway-példányra. A létrehozott átirányítás HTTP 301 Moved Permanently.

Használat

appgw.ingress.kubernetes.io/ssl-redirect: "true"

Példa

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-redirect
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/ssl-redirect: "true"
spec:
  tls:
   - hosts:
     - www.contoso.com
     secretName: testsecret-tls
  rules:
  - host: www.contoso.com
    http:
      paths:
      - backend:
          service:
            name: websocket-repeater
            port:
              number: 80

Kapcsolatleürítés

Kapcsolateltávolítási széljegyzetek használatával csökkentheti az időszakos 502-es hibákat és kapcsolatvesztést a pod eltávolítása, a működés közbeni üzembe helyezés vagy a horizontális események során. Az Application Gateway bejövőforgalom-vezérlője (AGIC) ezeket a megjegyzéseket alkalmazza az Application Gateway háttérbeli HTTP-beállításaira, amelyeket a Kubernetes bejövő erőforrásból hoz létre.

Ha kapcsolatelvezetést szeretne használni, használja az alábbi széljegyzeteket:

  • connection-draining: Ez a megjegyzés azt határozza meg, hogy engedélyezi-e a kapcsolat ürítését.
  • connection-draining-timeout: Ez a megjegyzés egy időtúllépést határoz meg, amely után az Application Gateway leállítja a kéréseket a kifutó háttérvégpontra.

Használat

appgw.ingress.kubernetes.io/connection-draining: "true"
appgw.ingress.kubernetes.io/connection-draining-timeout: "60"

Példa

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-drain
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/connection-draining: "true"
    appgw.ingress.kubernetes.io/connection-draining-timeout: "60"
spec:
  rules:
  - http:
      paths:
      - path: /hello/
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 80

A cookie-alapú affinitás engedélyezéséhez használja az alábbi széljegyzetet.

Használat

appgw.ingress.kubernetes.io/cookie-based-affinity: "true"

Példa

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-affinity
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/cookie-based-affinity: "true"
spec:
  rules:
  - http:
      paths:
      - path: /hello/
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 80

Kérelem időtúllépése

A kérelem időtúllépésének meghatározásához használja a következő megjegyzést másodpercben. Az időtúllépés után az Application Gateway elutasít egy kérést, ha a válasz nem érkezik meg.

Használat

appgw.ingress.kubernetes.io/request-timeout: "20"

Példa

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-timeout
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/request-timeout: "20"
spec:
  rules:
  - http:
      paths:
      - path: /hello/
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 80

Privát IP-cím használata

Az alábbi megjegyzéssel megadhatja, hogy a végpontot az Application Gateway privát IP-címén tegye-e elérhetővé.

Azoknál az Application Gateway-példányoknál, amelyek nem rendelkeznek privát IP-címmel, az appgw.ingress.kubernetes.io/use-private-ip: "true" ingresseket a rendszer figyelmen kívül hagyja. A vezérlő naplói és a bejövő forgalom eseményei figyelmeztetést NoPrivateIP jelenítenek meg.

Használat

appgw.ingress.kubernetes.io/use-private-ip: "true"

Példa

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-privateip
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/use-private-ip: "true"
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 80

Előoldali port felülírása

Az alábbi széljegyzet használatával konfigurálhat egy előtérbeli figyelőt a 80-nál nem több port használatára a HTTP-hez és a 443-hoz a HTTPS-hez.

Ha a port az Application Gateway engedélyezett tartományán belül van (1–64999), a figyelő ezen az adott porton jön létre. Ha érvénytelen portot állít be, vagy nincs port a széljegyzetben, a konfiguráció az alapértelmezett 80 vagy 443 értéket használja.

Használat

appgw.ingress.kubernetes.io/override-frontend-port: "port"

Példa

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-overridefrontendport
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/override-frontend-port: "8080"
spec:
  rules:
  - http:
      paths:
      - path: /hello/
        backend:
          service:
            name: store-service
            port:
              number: 80
        pathType: Exact

Feljegyzés

A külső kéréseknek a http://somehost:8080 helyett a http://somehost-ra kell irányulniuk.

Háttérprotokoll

Az alábbiakban megadhatja, hogy az Application Gateway milyen protokollt használjon a podokkal való kommunikáció során. A támogatott protokollok a HTTP és a HTTPS.

Bár az Önaláírt tanúsítványok támogatottak az Application Gatewayen, az AGIC jelenleg csak akkor támogatja a HTTPS-t, ha a podok egy jól ismert hitelesítésszolgáltató által aláírt tanúsítványt használnak.

Ne használja a 80-s portot HTTPS-vel, a 443-at pedig HTTP-vel a podokon.

Használat

appgw.ingress.kubernetes.io/backend-protocol: "https"

Példa

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-timeout
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/backend-protocol: "https"
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 443

Hosztnév-bővítmény

Az Application Gateway konfigurálható úgy, hogy több gazdagépnevet fogadjon el. hostname-extension Az annotáció használatával több gazdagépnevet is definiálhat, beleértve a wildcard gazdagépneveket is. Ez a művelet hozzáfűzi a gazdagépneveket az előtérfigyelő bejövő spec.rules.host információiban meghatározott teljes tartománynévhez, így többwebhelyes figyelőként van konfigurálva.

Használat

appgw.ingress.kubernetes.io/hostname-extension: "hostname1, hostname2"

Példa

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-multisite
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/hostname-extension: "hostname1, hostname2"
spec:
  rules:
  - host: contoso.com
    http:
      paths:
      - path: /
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 443

Az előző példa konfigurálja a figyelőt, hogy fogadja el a gazdagépneveket hostname1.contoso.com és hostname2.contoso.com.

WAF-szabályzat útvonalhoz

A következő megjelölés használatával csatolhat egy meglévő webalkalmazás-tűzfalszabályzatot (WAF) a Kubernetes bejövő erőforrás gazdagépének útvonalaihoz. A WAF-szabályzat mind /ad-server/auth az URL-címekre vonatkozik.

Használat

appgw.ingress.kubernetes.io/waf-policy-for-path: "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SampleRG/providers/Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/AGICWAFPolcy"

Példa

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ad-server-ingress
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/waf-policy-for-path: "/subscriptions/abcd/resourceGroups/rg/providers/Microsoft.Network/applicationGatewayWebApplicationFirewallPolicies/adserver"
spec:
  rules:
  - http:
      paths:
      - path: /ad-server
        backend:
          service:
            name: ad-server
            port:
              number: 80
        pathType: Exact
      - path: /auth
        backend:
          service:
            name: auth-server
            port:
              number: 80
        pathType: Exact

Application Gateway SSL-tanúsítvány

Az SSL-tanúsítványt az Application Gatewayre konfigurálhatja egy helyi PFX-tanúsítványfájlból, vagy az Azure Key Vault nem felügyelt titkos azonosítójára mutató hivatkozásból. Ha a széljegyzet egy tanúsítványnévvel rendelkezik, és a tanúsítvány előre telepítve van az Application Gatewayben, a Kubernetes bejövőforgalom-vezérlő létrehoz egy útválasztási szabályt egy HTTPS-figyelővel, és alkalmazza a módosításokat az Application Gateway-példányra. SSL-átirányítás esetén az appgw-ssl-certificate annotációt az ssl-redirect annotációval együtt is használhatja.

Feljegyzés

Az appgw-ssl-certificate annotáció figyelmen kívül marad, ha a TLS-specifikáció egyidejűleg van meghatározva az ingressben. Ha különböző gazdagépekkel rendelkező különböző tanúsítványokat szeretne (több TLS-tanúsítvány megszüntetését), különböző bejövő erőforrásokat kell definiálnia.

Használat

appgw.ingress.kubernetes.io/appgw-ssl-certificate: "name-of-appgw-installed-certificate"

Példa

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-certificate
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/appgw-ssl-certificate: "name-of-appgw-installed-certificate"
spec:
  rules:
  - host: www.contoso.com
    http:
      paths:
      - backend:
          service:
            name: websocket-repeater
            port:
              number: 80

Application Gateway SSL-profil

Az Application Gateway-példányon minden figyelőhöz konfigurálhat SSL-profilt. Ha a széljegyzet profilnévvel jelenik meg, és a profil előre telepítve van az Application Gatewayben, a Kubernetes bejövőforgalom-vezérlő létrehoz egy útválasztási szabályt egy HTTPS-figyelővel, és alkalmazza a módosításokat az Application Gateway-példányra.

Használat

appgw.ingress.kubernetes.io/appgw-ssl-certificate: "name-of-appgw-installed-certificate"
appgw.ingress.kubernetes.io/appgw-ssl-profile: "SampleSSLProfile"

Példa

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-certificate
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/appgw-ssl-certificate: "name-of-appgw-installed-certificate"
    appgw.ingress.kubernetes.io/appgw-ssl-profile: "SampleSSLProfile"
spec:
  rules:
  - host: www.contoso.com
    http:
      paths:
      - backend:
          service:
            name: websocket-repeater
            port:
              number: 80

Az Application Gateway megbízható gyökér-tanúsítványa

Most már konfigurálhatja a saját főtanúsítványait az Application Gatewayre, hogy megbízhatók legyenek az AGIC-en keresztül. A appgw-trusted-root-certificate jelölés és a backend-protocol jelölés együttes használatával jelezheti a végpontok közötti SSL-titkosítást. Ha több főtanúsítványt ad meg, vesszővel válassza el őket; például name-of-my-root-cert1,name-of-my-root-cert2.

Használat

appgw.ingress.kubernetes.io/backend-protocol: "https"
appgw.ingress.kubernetes.io/appgw-trusted-root-certificate: "name-of-my-root-cert1"

Példa

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-certificate
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/backend-protocol: "https"
    appgw.ingress.kubernetes.io/appgw-trusted-root-certificate: "name-of-my-root-cert1"
spec:
  rules:
  - host: www.contoso.com
    http:
      paths:
      - backend:
          service:
            name: websocket-repeater
            port:
              number: 80

Szabálykészlet újraírása

Az alábbi széljegyzet használatával rendeljen hozzá egy meglévő újraírási szabálykészletet a megfelelő kérés-útválasztási szabályhoz.

Használat

appgw.ingress.kubernetes.io/rewrite-rule-set: <rewrite rule set name>

Példa

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-bkprefix
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/rewrite-rule-set: add-custom-response-header
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 8080

Egyéni szabálykészlet átdolgozása

Feljegyzés

Az Application Gateway for Containers kiadása számos teljesítménybeli, rugalmassági és funkciómódosítást vezet be. Fontolja meg az Application Gateway for Containers használatát a következő üzembe helyezéshez.

Az Application Gateway for Containers URL-átírási szabályait ebben a cikkben találja az Átjáró API-ról és a bejövő API-ról szóló cikkben. Az Application Gateway for Containers fejléc-átírási szabályait ebben a cikkben találja az Átjáró API-ról.

Az Application Gateway lehetővé teszi a kérések és válaszok kiválasztott tartalmának újraírását. Ezzel a funkcióval lefordíthatja az URL-címeket, módosíthatja a lekérdezési sztring paramétereit, és módosíthatja a kérés- és válaszfejléceket. Ezzel a funkcióval feltételeket is hozzáadhat, hogy az URL-cím vagy a megadott fejlécek csak bizonyos feltételek teljesülése esetén legyenek újraírva. Az Újraíró Szabálykészlet Saját Erőforrás ezt a funkciót hozza az AGIC-hez.

A HTTP-fejlécek lehetővé teszik, hogy az ügyfél és a kiszolgáló további információkat adjon át egy kéréssel vagy válaszsal. Ezeknek az élőfejeknek az újraírásával olyan fontos feladatokat hajthat végre, mint például a biztonsággal kapcsolatos fejlécmezők hozzáadása (például HSTSX-XSS-Protection), a bizalmas információkat felfedő válaszfejmezők eltávolítása, valamint a portadatok eltávolítása a fejlécekből X-Forwarded-For .

Az URL-átírási funkcióval a következő lehetőségek közül választhat:

  • Írja át a kérelem URL-címének állomásnevét, elérési útját és lekérdezési karakterláncát.
  • Válassza ki, hogy az összes kérés VAGY csak a megadott feltételeknek megfelelő kérések URL-címét írja át. Ezek a feltételek a kérés- és választulajdonságokon alapulnak (kérelemfejléc, válaszfejléc és kiszolgálóváltozók).
  • Válassza ki a kérés átirányítását az eredeti VAGY az újraírt URL-cím alapján.

Feljegyzés

Ez a funkció 1.6.0-rc1 óta támogatott. Használja appgw.ingress.kubernetes.io/rewrite-rule-set, amely lehetővé teszi egy meglévő újraírási szabálykészlet használatát az Application Gatewayen.

Használat

appgw.ingress.kubernetes.io/rewrite-rule-set-custom-resource

Példa

apiVersion: appgw.ingress.azure.io/v1beta1 
kind: AzureApplicationGatewayRewrite 
metadata: 
  name: my-rewrite-rule-set-custom-resource 
spec: 
  rewriteRules: 
  - name: rule1 
    ruleSequence: 21
    conditions:
  - ignoreCase: false
    negate: false
    variable: http_req_Host
    pattern: example.com
  actions:
    requestHeaderConfigurations:
    - actionType: set
      headerName: incoming-test-header
      headerValue: incoming-test-value
    responseHeaderConfigurations:
    - actionType: set
      headerName: outgoing-test-header
      headerValue: outgoing-test-value
    urlConfiguration:
      modifiedPath: "/api/"
      modifiedQueryString: "query=test-value"
      reroute: false

Szabályprioritás

Az alábbi megjegyzés lehetővé teszi, hogy az Application Gateway bejövőforgalom-vezérlője explicit módon állítsa be a kapcsolódó kérés-útválasztási szabályok prioritását.

Használat

appgw.ingress.kubernetes.io/rule-priority:

Példa

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-rulepriority
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/rule-priority: 10
spec:
  rules:
  - http:
      paths:
      - path: /
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 8080

A megelőző példa 10-es prioritást állít be a kérés-útválasztási szabály számára.

Következő lépések