Niestandardowa sonda kondycji dla usługi Application Gateway dla kontenerów
Usługa Application Gateway dla kontenerów domyślnie monitoruje kondycję wszystkich obiektów docelowych zaplecza. Ponieważ obiekty docelowe zaplecza stają się w dobrej kondycji lub są w złej kondycji, usługa Application Gateway dla kontenerów dystrybuuje ruch tylko do punktów końcowych w dobrej kondycji.
Oprócz korzystania z domyślnego monitorowania sondy kondycji można również dostosować sondę kondycji do wymagań aplikacji. W tym artykule omówiono zarówno domyślne, jak i niestandardowe sondy kondycji.
Kolejność i logika sondowania kondycji są następujące:
- Użyj definicji zasobu niestandardowego HealthCheckPolicy (CR).
- Jeśli nie ma wartości HealthCheckPolicy CR, użyj sondy gotowości
- Jeśli nie zdefiniowano sondy gotowości, użyj domyślnej sondy kondycji
Następujące właściwości składają się na niestandardowe sondy kondycji:
Właściwości | Wartość domyślna |
---|---|
interval | Częstotliwość wysyłania sond kondycji w sekundach do obiektu docelowego zaplecza. Minimalny interwał musi wynosić > 0 sekund. |
timeout | Jak długo w sekundach żądanie powinno czekać, aż zostanie oznaczone jako błąd. Minimalny interwał musi wynosić > 0 sekund. |
healthyThreshold | Liczba sond kondycji przed oznaczeniem docelowego punktu końcowego w dobrej kondycji. Minimalny interwał musi wynosić > 0. |
port | Numer portu używany podczas sondowania obiektu docelowego zaplecza. |
zła kondycjaThreshold | Liczba sond kondycji, które mają zakończyć się niepowodzeniem, zanim element docelowy zaplecza powinien być oznaczony etykietą w złej kondycji. Minimalny interwał musi wynosić > 0. |
grpc | Określono, czy usługa zaplecza oczekuje połączeń gRPC. Wartość musi mieć wartość {} . |
(http) | Określono, czy usługa zaplecza oczekuje połączeń HTTP. |
(http) host | Nazwa hosta określona w żądaniu do obiektu docelowego zaplecza. |
(http) ścieżka | Określona ścieżka żądania. Jeśli należy załadować jeden plik, ścieżka może być /index.html. |
(http —> dopasowanie) StatusCodes | Zawiera dwie właściwości start i end , które definiują zakres prawidłowych kodów stanu HTTP zwracanych z zaplecza. |
useTLS | Określa, czy sprawdzanie kondycji powinno wymuszać protokół TLS. Jeśli nie zostanie określony, kontrola kondycji używa tego samego protokołu co usługa, jeśli ten sam port jest używany do sprawdzania kondycji. Jeśli port jest inny, sprawdzanie kondycji to cleartext. |
Domyślna sonda kondycji
Usługa Application Gateway dla kontenerów automatycznie konfiguruje domyślną sondę kondycji, gdy nie definiujesz niestandardowej konfiguracji sondy ani nie konfigurujesz sondy gotowości. Zachowanie monitorowania działa przez wysłanie żądania HTTP GET do adresów IP skonfigurowanych obiektów docelowych zaplecza. W przypadku domyślnych sond, jeśli obiekt docelowy zaplecza jest skonfigurowany dla protokołu HTTPS, sonda używa protokołu HTTPS do testowania kondycji obiektów docelowych zaplecza.
Aby uzyskać więcej szczegółów implementacji, zobacz HealthCheckPolicyConfig w specyfikacji interfejsu API.
Gdy jest używana domyślna sonda kondycji, są używane następujące wartości dla każdej właściwości sondy kondycji:
Właściwości | Wartość domyślna |
---|---|
interval | 5 s |
timeout | 30 sekund |
healthyThreshold | 1 sonda |
zła kondycjaThreshold | 3 sondy |
port | Używany numer portu jest definiowany przez numer portu zaplecza w zasobie ruchu przychodzącego lub porcie zaplecza httpRoute w zasobie httpRoute. |
(http) host | localhost |
(http) ścieżka | / |
useTLS | Protokół HTTP dla protokołu HTTP i HTTPS po określeniu protokołu TLS. |
1 Protokół HTTPS jest używany, gdy element backendTLSPolicy odwołuje się do docelowej usługi zaplecza (w przypadku implementacji interfejsu API bramy) lub ingressExtension z protokołem backendSetting protokołu HTTPS (dla implementacji interfejsu API ruchu przychodzącego) jest określony.
Uwaga
Sondy kondycji są inicjowane przy użyciu User-Agent
wartości Microsoft-Azure-Application-LB/AGC
.
Niestandardowa sonda kondycji
W interfejsie API bramy i interfejsie API ruchu przychodzącego można zdefiniować niestandardową sondę kondycji, definiując zasób HealthCheckPolicyPolicyPolicy i odwołując się do usługi, względem których sondy kondycji powinny być sprawdzane. W miarę odwoływania się do usługi PRZEZ zasób HTTPRoute lub Ingress z odwołaniem do klasy usługi Application Gateway for Containers, niestandardowa sonda kondycji jest używana dla każdego odwołania.
W tym przykładzie sonda kondycji emitowana przez usługę Application Gateway for Containers wysyła nazwę hosta contoso.com do zasobników tworzących usługę testową. Żądany protokół ma http
ścieżkę /
. Sonda jest emitowana co 5 sekund i czeka 3 sekundy przed ustaleniem limitu czasu połączenia. Jeśli zostanie odebrana odpowiedź, kod odpowiedzi HTTP z zakresu od 200 do 299 (włącznie z 200 i 299) jest uznawany za w dobrej kondycji, wszystkie inne odpowiedzi są uznawane za w złej kondycji.
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