Megosztás a következőn keresztül:


Rövid útmutató: Application Gateway for Containers ALB-vezérlő üzembe helyezése AKS-bővítmény használatával

Az ALB-vezérlő felelős az Átjáró API és a Bejövő API konfigurációjának a Kubernetesen belüli fordításáért az Application Gateway for Containers terheléselosztási szabályainak érdekében. Az alábbi útmutató végigvezeti az AKS által felügyelt Átjáró API és az Application Gateway for Containers ALB Controller bővítményeinek új vagy meglévő Azure Kubernetes Service-fürtön való engedélyezéséhez szükséges lépéseket.

Az Internetről az Application Gateway for Containersbe bejövő és az AKS háttér podjaira küldött forgalmat ábrázoló ábra; egy AKS-bővítmény által telepített.

Előfeltételek

A fürt ALB-vezérlő bővítményének engedélyezése előtt a következő feladatokat kell elvégeznie:

  1. Készítse elő az Azure-előfizetését és az ügyfélalkalmazást az-cli.

    # 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-preview 
    
  2. Bővítményfunkció regisztrálása

    # Register required preview features
    az feature register --namespace "Microsoft.ContainerService" --name "ManagedGatewayAPIPreview"
    az feature register --namespace "Microsoft.ContainerService" --name "ApplicationLoadBalancerPreview"
    

AKS-fürt beállítása az AKS-bővítménnyel

Az AKS-bővítményt új vagy meglévő fürtökön lehet engedélyezni.

A bővítmény sikeres üzembe helyezéséhez a következő AKS-fürtkövetelmények szükségesek:

Megjegyzés:

Bár a bővítmény engedélyezése minden régióban regisztrálja és telepíti az ALB-vezérlőt, az Application Gateway for Containers-erőforrások üzembe helyezése sikertelen lesz, ha nem olyan régióban van üzembe helyezve , ahol elérhető az Application Gateway for Containers.

Figyelmeztetés

Az Application Gateway for Containers AKS bővítmény engedélyezése egy AKS Automatikus klaszterhez jelenleg nem támogatott.

Új klaszter

Az alábbi parancsokkal hozzon létre egy új AKS-fürtöt az Azure CNI-vel, a számítási feladatok identitásának engedélyezésével, az átjáró API-bővítményével és az Application Gateway for Containers bővítmény engedélyezésével.

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

Megjegyzés:

A Gateway API használatával más szolgáltatásokkal való ütközés elkerülése érdekében az Application Gateawy for Containers bővítmény használatához az AKS Gateway API bővítményre van szükség.

Meglévő klaszter

Előfeltételek hozzáadása meglévő fürthöz

Ha meglévő fürtöt használ, győződjön meg arról, hogy engedélyezi a számítási feladatok identitásának támogatását az AKS-fürtön. A számítási feladatok identitásai a következő parancsokkal engedélyezhetők:

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

Az ALB Controller bővítmény telepítése

Meglévő fürttel engedélyezheti a Gateway API-t és az Alkalmazás átjáró bővítményeket konténerekhez az alábbi parancsokkal:

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

Az ALB-vezérlő telepítésének ellenőrzése

ALB-vezérlő podok ellenőrzése

Ellenőrizze, hogy az ALB-vezérlő podjai futnak-e a kube-system névtérben:

kubectl get pods -n kube-system | grep alb-controller

Két alb-controller podot kell látnod Running állapotban:

NÉV KÉSZ STATUS ÚJRAINDUL KOR
alb-controller-6648c5d5c-sddd9t 1/1 Running 0 4 nap 6 óra
alb-controller-6648c5d5c-au234 1/1 Running 0 4 nap 6 óra
GatewayClass ellenőrzése

Ellenőrizze, hogy a GatewayClass azure-alb-external telepítve van-e a fürtön:

kubectl get gatewayclass azure-alb-external -o yaml
Bővítményerőforrások ellenőrzése az Azure Portalon

Lépjen az AKS-fürt (csomópont) MC_ erőforráscsoportjába. A bővítmény által automatikusan létrehozott alábbi erőforrásoknak kell megjelennie:

Felügyelt identitás

A rendszer létrehoz egy identitást applicationloadbalancer-<cluster-name> a következő szerepkör-hozzárendelésekkel:

Role Scope
Hálózati közreműködő MC-erőforráscsoport
AppGw for Containers Beállításkezelő MC-erőforráscsoport
Olvasó MC-erőforráscsoport

Az applicationloadbalancer-<cluster-name> identitás egy összevont identitás hitelesítő adataival rendelkezik, amely a következő tulajdonságokkal van konfigurálva:

  • Név: aksfic
  • Névtér: kube-system
  • Szolgáltatásfiók: alb-controller-sa

Figyelmeztetés

Nem támogatott az identitás vagy a névtér módosítása a bővítményrel való integráció kiépítésekor. Ha testre szeretné szabni az üzembe helyezést, fontolja meg az üzembe helyezést a Helm használatával.

Alhálózat

aks-appgateway nevű alhálózat, melyen engedélyezett az alhálózat-delegálás Microsoft.ServiceNetworking/TrafficController

Látnia kell, hogy a GatewayClass olyan feltétellel rendelkezik, amelyet Érvényes GatewayClass olvassa. Ez a feltétel azt jelzi, hogy be van állítva egy alapértelmezett GatewayClass, és hogy az erre a GatewayClass-ra hivatkozó átjáró-erőforrásokat az ALB-vezérlő automatikusan kezeli.

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

Következő lépések

Most, hogy sikeresen telepített egy ALB-vezérlőt a fürtön, kiépítheti az Application Gateway for Containers erőforrásait az Azure-ban.

A következő lépés az ALB-vezérlő csatlakoztatása az Application Gateway for Containershez. A hivatkozás létrehozása az üzembe helyezési stratégiától függ.

A tárolókhoz készült Application Gateway kezelésére két üzembehelyezési stratégia létezik:

  • Saját (BYO) üzembe helyezés: Ebben az üzembe helyezési stratégiában az Application Gateway for Containers erőforrás, a társítási erőforrás és a frontend erőforrás üzembe helyezése és életciklusa az Azure Portal, a CLI, a PowerShell, a Terraform stb. használatával történik, és ezek a Kubernetes konfigurációjában kerülnek hivatkozásra.
  • Az ALB-vezérlő felügyeli: Ebben az üzembehelyezési stratégiában a Kubernetesben üzembe helyezett ALB-vezérlő felelős az Application Gateway for Containers erőforrás és annak alerőforrásai életciklusáért. Az ALB-vezérlő létrehoz egy Application Gateway for Containers-erőforrást, amikor egy ApplicationLoadBalancer egyéni erőforrás van definiálva a fürtön. A szolgáltatás életciklusa az egyéni erőforrás életciklusán alapul.

Kipróbálandó példaforgatókönyvek

Application Gateway eltávolítása tárolókhoz és ALB-vezérlőhöz

Ha el szeretné távolítani az ALB Controller bővítményt, hajtsa végre az alábbi lépéseket.

Az ALB-vezérlő bővítményének letiltása

Tiltsa le az ALB Controller bővítményt a fürtön:

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

Az erőforráscsoport törlése

Az összes erőforrás, például az Application Gateway for Containers teljes törléséhez törölje az erőforráscsoportot:

az group delete --resource-group $RESOURCE_GROUP