Anteckningar för Application Gateway-ingresskontrollant
Kubernetes Ingress-resursen kan kommenteras med godtyckliga nyckel/värde-par. AGIC förlitar sig på anteckningar för att programmera Application Gateway-funktioner, som inte kan konfigureras med hjälp av INKOMMANDE YAML. Ingressanteckningar tillämpas på alla HTTP-inställningar, serverdelspooler och lyssnare som härleds från en ingressresurs.
Lista över anteckningar som stöds
För att en ingressresurs ska kunna observeras av AGIC måste den kommenteras med kubernetes.io/ingress.class: azure/application-gateway
. Först då fungerar AGIC med den aktuella ingressresursen.
Anteckningsnyckel | Värdetyp | Standardvärde | Tillåtna värden |
---|---|---|---|
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 (sekunder) |
30 |
|
appgw.ingress.kubernetes.io/cookie-based-affinity | bool |
false |
|
appgw.ingress.kubernetes.io/request-timeout | int32 (sekunder) |
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 |
Serverdelssökvägsprefix
Med följande kommentar kan den serverdelssökväg som anges i en ingressresurs skrivas om med prefixet som anges i den här kommentaren. Det gör det möjligt för användare att exponera tjänster vars slutpunkter skiljer sig från slutpunktsnamn som används för att exponera en tjänst i en ingressresurs.
Användning
appgw.ingress.kubernetes.io/backend-path-prefix: <path prefix>
Exempel
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
I föregående exempel har du definierat en ingressresurs med namnet go-server-ingress-bkprefix
med en anteckning appgw.ingress.kubernetes.io/backend-path-prefix: "/test/"
. Kommentaren instruerar application gateway att skapa en HTTP-inställning som har en åsidosättning av sökvägsprefixet för sökvägen /hello
till /test/
.
Kommentar
I exemplet ovan definieras endast en regel. Anteckningarna gäller dock för hela ingressresursen, så om en användare har definierat flera regler konfigureras serverdelssökvägsprefixet för var och en av de angivna sökvägarna. Om en användare vill ha olika regler med olika sökvägsprefix (även för samma tjänst) skulle de behöva definiera olika ingressresurser.
Omdirigering av TLS
Application Gateway kan konfigureras för att automatiskt omdirigera HTTP-URL:er till sina HTTPS-motsvarigheter. När den här kommentaren finns och TLS är korrekt konfigurerad skapar Kubernetes ingresskontrollant en routningsregel med en omdirigeringskonfiguration och tillämpar ändringarna på din Application Gateway. Omdirigeringen som skapas blir HTTP 301 Moved Permanently
.
Användning
appgw.ingress.kubernetes.io/ssl-redirect: "true"
Exempel
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
Anslut ionsdränering
connection-draining
: Med den här kommentaren kan vi ange om anslutningen ska tömmas.
connection-draining-timeout
: Med den här kommentaren kan vi ange en timeout, varefter Application Gateway avslutar begäranden till den tömande serverdelsslutpunkten.
Användning
appgw.ingress.kubernetes.io/connection-draining: "true"
appgw.ingress.kubernetes.io/connection-draining-timeout: "60"
Exempel
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
Cookiebaserad tillhörighet
Med följande kommentar kan du ange om cookiebaserad tillhörighet ska aktiveras.
Användning
appgw.ingress.kubernetes.io/cookie-based-affinity: "true"
Exempel
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
Tidsgräns för förfrågan
Med följande kommentar kan du ange tidsgränsen för begäran i sekunder, varefter Application Gateway misslyckas med begäran om svaret inte tas emot.
Användning
appgw.ingress.kubernetes.io/request-timeout: "20"
Exempel
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
Använda privat IP
Med följande kommentar kan du ange om den här slutpunkten ska exponeras på den privata IP-adressen för Application Gateway.
Kommentar
- För Application Gateway som inte har en privat IP-adress ignoreras ingresser med
appgw.ingress.kubernetes.io/use-private-ip: "true"
. Detta återspeglas i kontrollantloggarna och ingresshändelserna för dessa ingresser medNoPrivateIP
varning.
Användning
appgw.ingress.kubernetes.io/use-private-ip: "true"
Exempel
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
Serverdelsprotokoll
Med följande kommentar kan du ange det protokoll som Application Gateway ska använda när du kommunicerar med poddarna. Protokoll som stöds är http
och https
.
Kommentar
Även om självsignerade certifikat stöds på Application Gateway stöder https
AGIC för närvarande endast när poddar använder ett certifikat som signerats av en välkänd certifikatutfärdare.
Använd inte port 80 med HTTPS och port 443 med HTTP på poddarna.
Användning
appgw.ingress.kubernetes.io/backend-protocol: "https"
Exempel
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
Skriv om regeluppsättning
Med följande kommentar kan du tilldela en befintlig omskrivningsregel inställd på motsvarande routningsregel för begäranden.
Användning
appgw.ingress.kubernetes.io/rewrite-rule-set: <rewrite rule set name>
Exempel
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
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för