ALB-styrenhet – Serverdelshälsa och mått
Att förstå serverdelshälsan för dina Kubernetes-tjänster och poddar är avgörande för att identifiera problem och hjälp med felsökning. För att underlätta insynen i serverdelshälsan exponerar ALB-kontrollanten serverdelshälsa och måttslutpunkter i alla ALB Controller-distributioner.
ALB-styrenhetens serverdelshälsa visar tre olika upplevelser:
- Sammanfattad serverdelshälsa efter Application Gateway for Containers-resurs
- Sammanfattad serverdelshälsa av Kubernetes-tjänsten
- Detaljerad serverdelshälsa för en angiven Kubernetes-tjänst
ALB-styrenhetens måttslutpunkt visar både mått och sammanfattning av serverdelshälsa. Den här slutpunkten möjliggör exponering för Prometheus.
Åtkomst till dessa slutpunkter kan nås via följande URL:er:
- Serverdelshälsa – http://< alb-controller-pod-ip>:8000/backendHealth
- Utdata är JSON-format
- Mått – http://< alb-controller-pod-ip>:8001/metrics
- Utdata är textformat
Alla klienter eller poddar som har anslutning till den här podden och porten kan komma åt dessa slutpunkter. För att begränsa åtkomsten rekommenderar vi att du använder Kubernetes-nätverksprinciper för att begränsa åtkomsten till vissa klienter.
Serverdelens hälsotillstånd
Identifiera serverdelshälsa
ALB-kontrollanten exponerar serverdelshälsa på ALB-styrenhetens podd som fungerar som primär.
Kör följande kommando för att hitta den primära podden:
CONTROLLER_NAMESPACE='azure-alb-system'
kubectl get lease -n $CONTROLLER_NAMESPACE alb-controller-leader-election -o jsonpath='{.spec.holderIdentity}' | awk -F'_' '{print $1}'
- Åtkomst till serverdelshälsa via Kubectl-kommandot
- Få direkt åtkomst till serverdelshälsa via kontrollantpodden
För indirekt åtkomst via kubectl-verktyget kan du skapa en lyssnare som proxyservrar trafik till podden.
kubectl port-forward <pod-name> -n $CONTROLLER_NAMESPACE 8000 8001
När kubectl-kommandot lyssnar öppnar du en annan terminal (eller cloud shell-session) och kör curl till 127.0.0.1 för att omdirigeras till podden.
curl http://127.0.0.1:8000
Exempelsvar:
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
Sammanfattad serverdelshälsa av Application Gateway för containrar
Den här upplevelsen sammanfattar alla Kubernetes-tjänster med referenser till Application Gateway för containrar och deras motsvarande hälsostatus.
Den här upplevelsen kan nås genom att ange resurs-ID för Application Gateway för containrar i frågan för begäran till alb-controller-podden.
Följande kommando kan användas för att avsöka serverdelshälsa för den angivna Application Gateway for Containers-resursen.
curl http://\<alb-controller-pod-ip-address\>:8000/backendHealth?alb-id=/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/yyyyyyyy/providers/Microsoft.ServiceNetworking/trafficControllers/zzzzzzzzzz
Exempel på utdata>
{
"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
}
]
}
]
}
Sammanfattad serverdelshälsa av Kubernetes-tjänsten
Den här upplevelsen söker efter hälsosammanfattningsstatus för en viss tjänst.
Den här upplevelsen kan nås genom att ange namnet på tjänstens namnområde, tjänst och portnummer i följande format av frågesträngen till alb-controller-podden: <namespace>/<service>/<service-port-number>
Följande kommando kan användas för att avsöka serverdelshälsa för den angivna Kubernetes-tjänsten.
curl http://\<alb-controller-pod-ip-address\>:8000/backendHealth?service-name=default/service-hello-world/80
Exempel på utdata>
{
"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
}
]
}
]
}
Detaljerad serverdelshälsa för en angiven Kubernetes-tjänst
Den här upplevelsen visar alla slutpunkter som utgör tjänsten, inklusive deras motsvarande hälsostatus och IP-adress. Slutpunktsstatus rapporteras som felfri eller inte felfri.
Du kan komma åt den här upplevelsen genom att ange detailed=true i frågesträngen till alb-controller-podden.
Vi kan till exempel verifiera individuell slutpunktshälsa genom att köra följande kommando:
curl http://\<alb-controller-pod-ip-address\>:8000/backendHealth?service-name=default/service-hello-world/80\&detailed=true
Exempel på utdata>
{
"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"
}
}
]
}
]
}
]
}
Mått
ALB Controller innehåller för närvarande mått som följer textbaserat format som ska exponeras för Prometheus. Åtkomst till dessa loggar är tillgängliga på port 8001 för den primära alb-styrenhetens podd http://\<alb-controller-pod-ip\>:8001/metrics
.
Följande mått exponeras idag:
Måttnamn | beskrivning |
---|---|
alb_connection_status | Anslutningsstatus till en Application Gateway for Containers-resurs |
alb_reconnection_count | Antal återanslutningsförsök till en Application Gateway för containrar-resurser |
total_config_updates | Antal konfigurationsåtgärder för tjänstroutning |
total_endpoint_updates | Antal konfigurationsåtgärder för serverdelspool |
total_deployments | Antal resursdistributioner av Application Gateway för containrar |
total_endpoints | Antal slutpunkter i en tjänst |
total_healthy_endpoints | Antal felfria slutpunkter i en tjänst |
total_unhealthy_endpoints | Antal ej felfria slutpunkter i en tjänst |