Share via


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

A Kubernetes Bejövő forgalom erőforrás tetszőleges kulcs/érték párokkal jegyzetelhető. Az AGIC az Application Gateway olyan funkcióinak programozására támaszkodik, amelyek nem konfigurálhatók a bejövő YAML használatával. 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.

Támogatott széljegyzetek listája

Ahhoz, hogy egy bejövő erőforrást az AGIC megfigyeljen, megjegyzést kell fűznie a következőhöz kubernetes.io/ingress.class: azure/application-gateway: . Az AGIC csak ezután működik a szóban forgó bejövő erőforrással.

Széljegyzetkulcs Érték típusa Alapértelmezett érték Megengedett értékek
appgw.ingress.kubernetes.io/backend-path-prefix string nil
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/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/rewrite-rule-set string nil

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

Az alábbi széljegyzet lehetővé teszi, hogy a bemeneti erőforrásban megadott háttérbeli elérési út újraírása a megjegyzésben megadott előtaggal legyen megadva. Lehetővé teszi a felhasználók számára, hogy olyan szolgáltatásokat tegyenek közzé, amelyek végpontjai eltérnek a bejövő erőforrásban lévő szolgáltatás közzétett végpontneveiné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
  namespace: test-ag
  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éldában egy széljegyzettel appgw.ingress.kubernetes.io/backend-path-prefix: "/test/"elnevezett go-server-ingress-bkprefix bejövő erőforrást definiált. A széljegyzet arra utasítja az Application Gatewayt, hogy hozzon létre egy HTTP-beállítást, amely az elérési út /hello előtagjának felülbírálásával rendelkezik /test/.

Feljegyzés

A fenti példában csak egy szabály van definiálva. A széljegyzetek azonban a teljes bejövő erőforrásra vonatkoznak, ezért ha egy felhasználó több szabályt definiál, a háttérútvonal előtagja minden megadott útvonalhoz be lesz állítva. Ha egy felhasználó eltérő elérésiút-előtagokkal rendelkező szabályokat szeretne (akár ugyanarra a szolgáltatásra vonatkozóan is), különböző bejövő erőforrásokat kell definiálnia.

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, és alkalmazza a módosításokat az Application Gatewayre. A létrehozott átirányítás HTTP 301 Moved Permanentlylesz.

Használat

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

Példa

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: go-server-ingress-redirect
  namespace: test-ag
  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

Csatlakozás ürítés

connection-draining: Ezzel a megjegyzéssel megadhatja, hogy engedélyezve legyen-e a kapcsolat ürítése. connection-draining-timeout: Ez a megjegyzés lehetővé teszi egy időtúllépés megadását, amely után az Application Gateway leállítja a kéréseket a lefolyó 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
  namespace: test-ag
  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

Az alábbi megjegyzés lehetővé teszi annak megadását, hogy engedélyezi-e a cookie-alapú affinitást.

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
  namespace: test-ag
  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

Az alábbi széljegyzet lehetővé teszi a kérés időtúllépésének másodpercben történő megadását, amely után az Application Gateway nem fogadja el a 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
  namespace: test-ag
  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és lehetővé teszi annak megadását, hogy a végpontot az Application Gateway privát IP-címén tegye-e elérhetővé.

Feljegyzés

  • A privát IP-címmel nem rendelkező Application Gateway esetében a bejövő forgalom appgw.ingress.kubernetes.io/use-private-ip: "true" figyelmen kívül lesz hagyva. Ez tükröződik a vezérlő naplóiban és a figyelmeztetéssel rendelkező NoPrivateIP bejövő bejövő eseményekben.

Használat

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

Példa

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

Háttérprotokoll

Az alábbi megjegyzés lehetővé teszi az Application Gateway által a podokkal való kommunikáció során használni kívánt protokoll megadását. A támogatott protokollok a következők: http és https.

Feljegyzés

Bár az Önaláírt tanúsítványok támogatottak az Application Gatewayen, az AGIC jelenleg csak akkor támogatja https , 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
  namespace: test-ag
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
    appgw.ingress.kubernetes.io/backend-protocol: "https"
spec:
  rules:
  - http:
      paths:
      - path: /hello/
        pathType: Exact
        backend:
          service:
            name: go-server-service
            port:
              number: 443

Szabálykészlet újraírása

Az alábbi megjegyzés lehetővé teszi, hogy egy meglévő újraírási szabályt rendeljen a megfelelő kérelem-ú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
  namespace: test-ag
  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