Kontroler ALB – Stav a metriky back-endu
Pochopení stavu back-endu služeb a podů Kubernetes je zásadní při identifikaci problémů a pomoci při řešení potíží. Aby se usnadnil přehled o stavu back-endu, ovladač ALB zveřejňuje koncové body stavu back-endu a metrik ve všech nasazeních kontroleru ALB.
Stav back-endu kontroleru ALB zveřejňuje tři různá prostředí:
- Shrnutí stavu back-endu podle služby Application Gateway pro prostředky kontejnerů
- Shrnutí stavu back-endu službou Kubernetes
- Podrobný stav back-endu pro zadanou službu Kubernetes
Koncový bod metriky kontroleru ALB zveřejňuje metriky i souhrn stavu back-endu. Tento koncový bod umožňuje vystavení produktu Prometheus.
Přístup k těmto koncovým bodům je dostupný prostřednictvím následujících adres URL:
- Stav back-endu< – http:// alb-controller-pod-ip>:8000/back-endHealth
- Výstup je formát JSON.
- Metriky – http://< alb-controller-pod-ip>:8001/metrics
- Výstup je textový formát.
K těmto koncovým bodům mají přístup všichni klienti nebo pody, kteří mají připojení k tomuto podu a portu. Pokud chcete omezit přístup, doporučujeme použít zásady sítě Kubernetes k omezení přístupu k určitým klientům.
Stav back-endu
Zjišťování stavu back-endu
Kontroler ALB zveřejňuje stav back-endu na podu kontroleru ALB, který funguje jako primární.
Pokud chcete najít primární pod, spusťte následující příkaz:
CONTROLLER_NAMESPACE='azure-alb-system'
kubectl get lease -n $CONTROLLER_NAMESPACE alb-controller-leader-election -o jsonpath='{.spec.holderIdentity}' | awk -F'_' '{print $1}'
- Přístup ke stavu back-endu prostřednictvím příkazu Kubectl
- Přímý přístup ke stavu back-endu prostřednictvím podu kontroleru
Pro nepřímý přístup přes nástroj kubectl můžete vytvořit naslouchací proces, který proxy provoz do podu.
kubectl port-forward <pod-name> -n $CONTROLLER_NAMESPACE 8000 8001
Jakmile příkaz kubectl naslouchá, otevřete jiný terminál (nebo relaci cloud shellu) a spusťte curl na 127.0.0.1, který se má přesměrovat na pod.
curl http://127.0.0.1:8000
Příklad odpovědi:
Available paths:
Path: /backendHealth
Description: Prints the backend health of the ALB.
Query Parameters:
detailed: if true, prints the detailed view of the backend health
alb-id: Resource ID of the Application Gateway for Containers to filter backend health for.
service-name: Service to filter backend health for. Expected format: \<namespace\>/\<service\>/\<service-port-number\>
Path: /
Description: Prints the help
Shrnutí stavu back-endu službou Application Gateway pro kontejnery
Toto prostředí shrnuje všechny služby Kubernetes s odkazy na Službu Application Gateway pro kontejnery a jejich odpovídající stav.
K tomuto prostředí může přistupovat zadáním ID prostředku služby Application Gateway for Containers v dotazu požadavku na pod kontroleru alb.
Následující příkaz se dá použít k testování stavu back-endu pro zadaný prostředek služby Application Gateway for Containers.
curl http://\<alb-controller-pod-ip-address\>:8000/backendHealth?alb-id=/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/yyyyyyyy/providers/Microsoft.ServiceNetworking/trafficControllers/zzzzzzzzzz
Příklad výstupu:
{
"services": [
{
"serviceName": "default/service-hello-world/80",
"serviceHealth": [
{
"albId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/yyyyyyyy/providers/Microsoft.ServiceNetworking/trafficControllers/zzzzzzzzzz",
"totalEndpoints": 1,
"totalHealthyEndpoints": 1,
"totalUnhealthyEndpoints": 0
}
]
},
{
"serviceName": "default/service-contoso/443",
"serviceHealth": [
{
"albId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/yyyyyyyy/providers/Microsoft.ServiceNetworking/trafficControllers/zzzzzzzzzz",
"totalEndpoints": 1,
"totalHealthyEndpoints": 1,
"totalUnhealthyEndpoints": 0
}
]
}
]
}
Shrnutí stavu back-endu službou Kubernetes
Toto prostředí vyhledá stav souhrnného stavu dané služby.
K tomuto prostředí je možné získat přístup zadáním názvu oboru názvů, služby a čísla portu služby v následujícím formátu řetězce dotazu na pod alb-controller: namespace/service/<service-port-number>. <<>>
Následující příkaz se dá použít k otestování stavu back-endu pro zadanou službu Kubernetes.
curl http://\<alb-controller-pod-ip-address\>:8000/backendHealth?service-name=default/service-hello-world/80
Příklad výstupu:
{
"services": [
{
"serviceName": "default/service-hello-world/80",
"serviceHealth": [
{
"albId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/yyyyyyyy/providers/Microsoft.ServiceNetworking/trafficControllers/zzzzzzzzzz",
"totalEndpoints": 1,
"totalHealthyEndpoints": 1,
"totalUnhealthyEndpoints": 0
}
]
}
]
}
Podrobný stav back-endu pro zadanou službu Kubernetes
Toto prostředí ukazuje všechny koncové body, které tvoří službu, včetně jejich odpovídajícího stavu a IP adresy. Stav koncového bodu se hlásí jako V POŘÁDKU nebo NENÍ V POŘÁDKU.
K tomuto prostředí může přistupovat zadáním podrobné=true v řetězci dotazu podu alb-controller.
Pomocí následujícího příkazu můžeme například ověřit stav jednotlivých koncových bodů:
curl http://\<alb-controller-pod-ip-address\>:8000/backendHealth?service-name=default/service-hello-world/80\&detailed=true
Příklad výstupu:
{
"services": [
{
"serviceName": "default/service-hello-world/80",
"serviceHealth": [
{
"albId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/yyyyyyyy/providers/Microsoft.ServiceNetworking/trafficControllers/zzzzzzzzzz",
"totalEndpoints": 1,
"totalHealthyEndpoints": 1,
"totalUnhealthyEndpoints": 0,
"endpoints": [
{
"address": "10.1.1.22",
"health": {
"status": "HEALTHY"
}
}
]
}
]
}
]
}
Metriky
Kontroler ALB v současné době vystavuje metriky podle formátu založeného na textu, který se má zpřístupnit pro Prometheus. Přístup k těmto protokolům je k dispozici na portu 8001 podu primárního řadiče http://\<alb-controller-pod-ip\>:8001/metrics
alb .
Dnes jsou zpřístupněny následující metriky:
Název metriky | Popis |
---|---|
alb_connection_status | Stav připojení k prostředku služby Application Gateway for Containers |
alb_reconnection_count | Počet pokusů o opětovné připojení k prostředkům služby Application Gateway pro kontejnery |
total_config_updates | Počet operací konfigurace směrování služeb |
total_endpoint_updates | Počet operací konfigurace back-endového fondu |
total_deployments | Počet nasazení prostředků služby Application Gateway pro kontejnery |
total_endpoints | Počet koncových bodů ve službě |
total_healthy_endpoints | Počet koncových bodů, které jsou v pořádku ve službě |
total_unhealthy_endpoints | Počet koncových bodů, které nejsou v pořádku ve službě |