Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
ALB-kontrollanten ansvarar för att översätta gateway-API och ingress-API-konfiguration i Kubernetes till belastningsutjämningsregler i Application Gateway för containrar. Följande guide går igenom de steg som krävs för att aktivera både AKS-hanterade gateway-API:et och Application Gateway for Containers ALB Controller-tillägg i ett nytt eller befintligt AKS-kluster (Azure Kubernetes Service).
Förutsättningar
Du måste utföra följande uppgifter innan du aktiverar ALB-kontrollanttillägget i klustret:
Förbered din Azure-prenumeration och din
az-cliklient.# Sign in to your Azure subscription. SUBSCRIPTION_ID='<your subscription id>' az login az account set --subscription $SUBSCRIPTION_ID # Register required resource providers on Azure. az provider register --namespace Microsoft.ContainerService az provider register --namespace Microsoft.Network az provider register --namespace Microsoft.NetworkFunction az provider register --namespace Microsoft.ServiceNetworking # Install Azure CLI extensions. az extension add --name alb az extension add --name aks-previewRegistrera tilläggsfunktionen
Använd Azure CLI för att registrera tilläggsfunktionen.
# Register required preview features az feature register --namespace "Microsoft.ContainerService" --name "ManagedGatewayAPIPreview" az feature register --namespace "Microsoft.ContainerService" --name "ApplicationLoadBalancerPreview"Important
Application Gateway for Containers AKS-tillägget är för närvarande i förhandsvisning.
Se Tilläggsvillkor för användning av Microsoft Azure-förhandsversioner för juridiska villkor som gäller för Azure-funktioner som är i beta, förhandsvisning eller på annat sätt ännu inte släppta för allmän tillgänglighet.
Konfigurera ett AKS-kluster med AKS-tillägget
AKS-tillägget kan aktiveras i nya eller befintliga kluster.
Följande KRAV för AKS-kluster krävs för lyckad etablering av tillägget:
- Måste finnas i en region där Application Gateway for Containers är tillgänglig.
- Måste använda Azure CNI - eller Azure CNI Overlay-nätverk .
- Funktionen för arbetsbelastningsidentitet måste vara aktiverad. Lär dig hur du aktiverar arbetsbelastningsidentitet i ett befintligt AKS-kluster.
- Måste använda en AKS Kubernetes-version som stöds.
Nytt kluster
Använd följande kommandon för att skapa ett nytt AKS-kluster med Azure CNI, arbetsbelastningsidentitet aktiverad, gateway-API-tillägg och tillägget Application Gateway for Containers aktiverat.
AKS_NAME='<your cluster name>'
RESOURCE_GROUP='<your resource group name>'
LOCATION='northeurope'
VM_SIZE='<the size of the vm in AKS>' # The size needs to be available in your location
az group create --name $RESOURCE_GROUP --location $LOCATION
az aks create \
--resource-group $RESOURCE_GROUP \
--name $AKS_NAME \
--location $LOCATION \
--node-vm-size $VM_SIZE \
--network-plugin azure \
--enable-oidc-issuer \
--enable-workload-identity \
--enable-gateway-api \
--enable-application-load-balancer \
--generate-ssh-key
Anmärkning
Anmärkning
Befintligt kluster
Lägga till krav i ett befintligt kluster
Om du använder ett befintligt kluster ska du aktivera stöd för arbetsbelastningsidentitet i ditt AKS-kluster. Arbetsbelastningsidentiteter kan aktiveras via följande kommandon:
AKS_NAME='<your cluster name>'
RESOURCE_GROUP='<your resource group name>'
az aks update -g $RESOURCE_GROUP -n $AKS_NAME --enable-oidc-issuer --enable-workload-identity --no-wait
Installera ALB Controller-tillägg
Med ett befintligt kluster kan du aktivera tilläggen Gateway API och Application Gateway for Containers med följande kommandon:
AKS_NAME='<your cluster name>'
RESOURCE_GROUP='<your resource group name>'
# Update the AKS cluster
az aks update --name ${AKS_NAME} --resource-group ${RESOURCE_GROUP} --enable-gateway-api --enable-application-load-balancer
Verifiera installationen av ALB Controller
Både det nya klustret och befintliga klustervägar använder samma verifieringskontroller. Efter att tillägget är aktiverat, gör följande kontroller oavsett vilken väg du använde.
Verifiera ALB-kontrollerpoddar
Kontrollera att ALB Controller-poddarna körs i kube-system namnområdet:
kubectl get pods -n kube-system | grep alb-controller
Du bör se två alb-controller poddar i Running tillståndet:
| NAMN | KLAR | STATUS | OMSTARTER | ÅLDER |
|---|---|---|---|---|
| alb-controller-6648c5d5c-sdd9t | 1/1 | Springa | 0 | 4 dagar 6 timmar |
| alb-controller-6648c5d5c-au234 | 1/1 | Springa | 0 | 4 dagar 6 timmar |
Verifiera GatewayClass
Kontrollera att GatewayClass azure-alb-external är installerat i klustret:
kubectl get gatewayclass azure-alb-external -o yaml
Du bör se att GatewayClass har ett villkor som läser Valid GatewayClass. Det här villkoret anger att en standard-GatewayClass har konfigurerats och att alla gatewayresurser som refererar till denna GatewayClass hanteras av ALB-styrenheten.
apiVersion: gateway.networking.k8s.io/v1beta1
kind: GatewayClass
metadata:
creationTimestamp: "2023-07-31T13:07:00Z"
generation: 1
name: azure-alb-external
resourceVersion: "64270"
uid: 6c1443af-63e6-4b79-952f-6c3af1f1c41e
spec:
controllerName: alb.networking.azure.io/alb-controller
status:
conditions:
- lastTransitionTime: "2023-07-31T13:07:23Z"
message: Valid GatewayClass
observedGeneration: 1
reason: Accepted
status: "True"
type: Accepted
Verifiera tilläggsresurser i Azure-portalen
Gå till MC_ resursgruppen (nod) för ditt AKS-kluster. Du bör se följande resurser som skapats av tillägget:
Hanterad identitet
En identitet med namnet applicationloadbalancer-<cluster-name> skapas med följande rolltilldelningar:
| Role | Omfång |
|---|---|
| Nätverksdeltagare | MC-resursgrupp |
| Konfigurationshanteraren för AppGw for Containers | MC-resursgrupp |
| Läsare | MC-resursgrupp |
Identiteten applicationloadbalancer-<cluster-name> har en federerad identitetsautentiseringsuppgift konfigurerad med följande egenskaper:
- Namn: aksfic
- Namnrymd: kube-system
- Tjänstkonto: alb-controller-sa
Varning
Det går inte att ändra identiteten eller namnområdet när integrering med tillägget etableras. Om du vill anpassa distributionen kan du överväga att distribuera med helm.
Subnet
När tillägget är aktiverat i ett AKS-kluster med hjälp av alternativet AKS-hanterat virtuellt nätverk skapas automatiskt ett undernät med namnet aks-appgateway med delegering aktiverat för Microsoft.ServiceNetworking/TrafficController.
Nästa steg
Nu när du framgångsrikt installerat en ALB-kontroller på ditt kluster kan du provisionera Application Gateway för containerresurser i Azure.
Nästa steg är att koppla din ALB-kontroller till Application Gateway för containrar. Hur du skapar den här länken beror på distributionsstrategin.
Det finns två distributionsstrategier för hantering av Application Gateway for Containers:
-
Byo-distribution (Bring Your Own): I den här distributionsstrategin förutsätts distribution och livscykel för Application Gateway for Containers-resursen, associationsresursen och klientdelsresursen via Azure Portal, CLI, PowerShell, Terraform osv. och refereras till i konfigurationen i Kubernetes.
- Information om hur du använder en BYO-distribution finns i Skapa Application Gateway för containrar – ta med din egen distribution.
-
Hanteras av ALB-styrenhet: I den här distributionsstrategin ansvarar ALB-styrenheten som distribueras i Kubernetes för livscykeln för Application Gateway for Containers-resursen och dess underresurser. ALB-styrenheten skapar en Application Gateway for Containers-resurs när en anpassad ApplicationLoadBalancer-resurs definieras i klustret. Tjänstens livscykel baseras på livscykeln för den anpassade resursen.
- Information om hur du använder en ALB-hanterad distribution finns i Skapa Application Gateway för containrar som hanteras av ALB-styrenheten.
Exempelscenarier att prova
Avinstallera Application Gateway för containrar och ALB-styrenhet
Om du vill avinstallera ALB-kontrollanttillägget utför du följande steg.
Inaktivera ALB-kontrollertillägget
Inaktivera ALB-kontrollanttillägget i klustret:
AKS_NAME='<your cluster name>'
RESOURCE_GROUP='<your resource group name>'
# Update the AKS cluster
az aks update --name ${AKS_NAME} --resource-group ${RESOURCE_GROUP} --disable-gateway-api --disable-application-load-balancer
Ta bort resursgruppen
Om du vill rensa alla resurser helt, inklusive Application Gateway för containrar, tar du bort resursgruppen:
az group delete --resource-group $RESOURCE_GROUP