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 Permanently
lesz.
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
Cookie-alapú affinitás
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