Dela via


Anpassad hälsokontroll för Application Gateway för containrar

Application Gateway för containrar övervakar som standardinställning hälsotillståndet för alla backendmål. När serverdelsmålen blir fungerande eller inte fungerande distribuerar Application Gateway for Containers endast trafik till fungerande ändpunkter.

Förutom att använda standardhälsoövervakning kan du även anpassa hälsoavsökningen så att den passar applikationens krav. I den här artikeln beskrivs både standard- och anpassade hälsoavsökningar.

Ordningen och logiken för hälsoavsökning är följande:

  1. Använd definitionen av Anpassad resurs för HealthCheckPolicy (CR).
  2. Om ingen HealthCheckPolicy CR finns används Readiness probe
  3. Om ingen beredskapsavsökning har definierats använder du standardhälsoavsökningen

Följande egenskaper utgör anpassade hälsokontroller:

Egendom Standardvärde
intervall Hur ofta i sekunder hälsoavsökningar ska skickas till serverdelsmålet. Det minsta intervallet måste vara > 0 sekunder.
tidsgräns Hur länge i sekunder begäran ska vänta innan den markeras som ett fel. Det minsta intervallet måste vara > 0 sekunder.
hälsotröskel Antal hälsoavsökningar innan målslutpunkten markeras som felfri. Minimiintervallet måste vara > 0.
port Portnumret som används vid undersökning av backend-målet.
ohälsotröskel Antal hälsokontroller som ska misslyckas innan backend-målet ska märkas som ohälsosamt. Minimiintervallet måste vara > 0.
grpc Anges om serverdelstjänsten förväntar sig gRPC-anslutningar. Värdet måste vara {}.
(http) Anges om serverdelstjänsten förväntar sig http-anslutningar.
(http) värd Värdnamnet som anges i begäran till backend-målet.
(http) sökväg Den exakta sökvägen för begäran. Om en enskild fil ska läsas in kan sökvägen vara /index.html.
(http -> match) statuskoder Innehåller två egenskaper och startend, som definierar intervallet med giltiga HTTP-statuskoder som returneras från serverdelen.
useTLS Anger om hälsokontrollen ska kräva TLS. Om det inte anges använder hälsokontrollen samma protokoll som tjänsten om samma port används för hälsokontroll. Om porten är annorlunda är hälsokontrollen klartext.

Ett diagram som visar Application Gateway för containrar som använder anpassade hälsoavsökningar för att fastställa backendens hälsa.

Standardhälsoavsökning

Application Gateway för containrar konfigurerar automatiskt en standardhälsoavsökning när du inte definierar en anpassad avsökningskonfiguration eller konfigurerar en beredskapsavsökning. Övervakningsbeteendet fungerar genom att göra en HTTP GET-begäran till IP-adresserna för bakgrundsmål som har konfigurerats. För standardavsökningar, om serverdelsmålet har konfigurerats för HTTPS, använder avsökningen HTTPS för att testa hälsotillståndet för serverdelsmålen.

Mer implementeringsinformation finns i HealthCheckPolicyConfig i API-specifikationen.

När standardhälsoavsökningen används används följande värden för varje hälsoavsökningsegenskap:

Fastighet/Egenskap Standardvärde
intervall 5 sekunder
tidsgräns 30 sekunder
hälsotröskel 1 sond
ohälsosam tröskel 3 sonder
port Det portnummer som används definieras av serverdelsportnumret i ingressresursen eller HttpRoute-serverdelsporten i HttpRoute-resursen.
(http) värd localhost
(http) sökväg /
useTLS HTTP för HTTP och HTTPS när TLS har angetts.

1 HTTPS används när en backendTLSPolicy refererar till en mål bakgrundstjänst (för Gateway API-implementering) eller då en IngressExtension med ett backendSetting-protokoll av HTTPS (för Ingress API-implementering) anges.

Anteckning

Hälsoavsökningar initieras med User-Agent-värdet Microsoft-Azure-Application-LB/AGC.

Anpassad hälsoavsökning

I både Gateway API och Ingress API kan en anpassad hälsoavsökning definieras genom att definiera en HealthCheckPolicyPolicy-resurs och referera till en tjänst som hälsoavsökningarna ska kontrollera mot. Eftersom tjänsten refereras av en HTTPRoute- eller Ingress-resurs med en klassreferens till Application Gateway för containrar används den anpassade hälsoavsökningen för varje referens.

I det här exemplet skickar hälsoavsökningen som genereras av Application Gateway for Containers värdnamnet contoso.com till poddarna som utgör testtjänsten. Det begärda protokollet är http med sökvägen /. En avsökning genereras var 5:e sekund och väntar 3 sekunder innan tidsgränsen för anslutningen har överskrids. Om ett svar tas emot anses en HTTP-svarskod mellan 200 och 299 (inklusive 200 och 299) vara felfri, och alla andra svar anses vara felaktiga.

kubectl apply -f - <<EOF
apiVersion: alb.networking.azure.io/v1
kind: HealthCheckPolicy
metadata:
  name: gateway-health-check-policy
  namespace: test-infra
spec:
  targetRef:
    group: ""
    kind: Service
    name: test-service
    namespace: test-infra
  default:
    interval: 5s
    timeout: 3s
    healthyThreshold: 1
    unhealthyThreshold: 1
    port: 8123
    # grpc: {} # defined if probing a gRPC endpoint
    http:
      host: contoso.com
      path: /
      match:
        statusCodes: 
        - start: 200
          end: 299
    useTLS: true
EOF