Rövid útmutató: Application Gateway létrehozása az ALB-vezérlő által felügyelt tárolókhoz
Ez az útmutató feltételezi, hogy az ALB-vezérlőüzembe helyezési stratégiáját követi, ahol a tárolókhoz készült Application Gateway összes erőforrását az ALB-vezérlő felügyeli. Az életciklus határozza meg a Kubernetesben definiált erőforrásokat. Az ALB-vezérlő létrehozza az Application Gateway for Containers erőforrást, amikor egy ApplicationLoadBalancer egyéni erőforrás van definiálva a fürtön. Az Application Gateway for Containers életciklusa az egyéni erőforrás életciklusán alapul.
Előfeltételek
Győződjön meg arról, hogy először telepítette az ALB-vezérlőt a Kubernetes-fürtön. Tekintse meg a rövid útmutatót: Application Gateway telepítése tárolókhoz ALB-vezérlőhöz , ha még nem telepítette az ALB-vezérlőt.
A virtuális hálózat/alhálózat előkészítése a tárolókhoz készült Application Gatewayhez
Ha nem rendelkezik legalább 250 elérhető IP-címmel rendelkező alhálózattal, és delegálva van az Application Gateway for Containers erőforráshoz, az alábbi lépésekkel hozzon létre egy új alhálózatot, és engedélyezze az alhálózat-delegálást. Az új alhálózati címtér nem fedheti át a virtuális hálózat meglévő alhálózatait.
- Új alhálózat az AKS által felügyelt virtuális hálózatban
- Új alhálózat nem AKS által felügyelt virtuális hálózaton
Ha az Application Gateway for Containerst az AKS-fürtöt tartalmazó virtuális hálózatba szeretné telepíteni, futtassa az alábbi parancsot a fürt virtuális hálózatának megkereséséhez és hozzárendeléséhez. Ezt az információt a következő lépésben használjuk fel.
AKS_NAME='<your cluster name>'
RESOURCE_GROUP='<your resource group name>'
MC_RESOURCE_GROUP=$(az aks show --name $AKS_NAME --resource-group $RESOURCE_GROUP --query "nodeResourceGroup" -o tsv)
CLUSTER_SUBNET_ID=$(az vmss list --resource-group $MC_RESOURCE_GROUP --query '[0].virtualMachineProfile.networkProfile.networkInterfaceConfigurations[0].ipConfigurations[0].subnet.id' -o tsv)
read -d '' VNET_NAME VNET_RESOURCE_GROUP VNET_ID <<< $(az network vnet show --ids $CLUSTER_SUBNET_ID --query '[name, resourceGroup, id]' -o tsv)
Futtassa a következő parancsot egy legalább 250 elérhető IP-címet tartalmazó új alhálózat létrehozásához, és engedélyezze az alhálózat-delegálást az Application Gateway for Containers társítási erőforráshoz:
SUBNET_ADDRESS_PREFIX='<network address and prefix for an address space under the vnet that has at least 250 available addresses (/24 or larger subnet)>'
ALB_SUBNET_NAME='subnet-alb' # subnet name can be any non-reserved subnet name (i.e. GatewaySubnet, AzureFirewallSubnet, AzureBastionSubnet would all be invalid)
az network vnet subnet create \
--resource-group $VNET_RESOURCE_GROUP \
--vnet-name $VNET_NAME \
--name $ALB_SUBNET_NAME \
--address-prefixes $SUBNET_ADDRESS_PREFIX \
--delegations 'Microsoft.ServiceNetworking/trafficControllers'
ALB_SUBNET_ID=$(az network vnet subnet show --name $ALB_SUBNET_NAME --resource-group $VNET_RESOURCE_GROUP --vnet-name $VNET_NAME --query '[id]' --output tsv)
Engedélyek delegálása felügyelt identitáshoz
Az ALB-vezérlőnek képesnek kell lennie új Application Gateway for Containers-erőforrások kiépítésére és az Application Gateway for Containers társítási erőforráshoz szánt alhálózathoz való csatlakozásra.
Ebben a példában az AppGW for Containers Configuration Manager szerepkört a felügyelt fürtöt tartalmazó erőforráscsoportra delegáljuk, és delegáljuk a hálózati közreműködői szerepkört az Application Gateway for Containers társítási alhálózat által használt alhálózatra, amely tartalmazza a Microsoft.Network/virtualNetworks/subnets/join/action engedélyt.
Igény szerint létrehozhat és hozzárendelhet egy egyéni szerepkört a Microsoft.Network/virtualNetworks/alhálózatok/csatlakozás/művelet engedélyekkel a hálózati közreműködői szerepkörben található egyéb engedélyek eltávolításához. További információ az alhálózati engedélyek kezeléséről.
IDENTITY_RESOURCE_NAME='azure-alb-identity'
MC_RESOURCE_GROUP=$(az aks show --name $AKS_NAME --resource-group $RESOURCE_GROUP --query "nodeResourceGroup" -otsv | tr -d '\r')
mcResourceGroupId=$(az group show --name $MC_RESOURCE_GROUP --query id -otsv)
principalId=$(az identity show -g $RESOURCE_GROUP -n $IDENTITY_RESOURCE_NAME --query principalId -otsv)
# Delegate AppGw for Containers Configuration Manager role to AKS Managed Cluster RG
az role assignment create --assignee-object-id $principalId --assignee-principal-type ServicePrincipal --scope $mcResourceGroupId --role "fbc52c3f-28ad-4303-a892-8a056630b8f1"
# Delegate Network Contributor permission for join to association subnet
az role assignment create --assignee-object-id $principalId --assignee-principal-type ServicePrincipal --scope $ALB_SUBNET_ID --role "4d97b98b-1d4f-4787-a291-c67834d212e7"
ApplicationLoadBalancer Kubernetes-erőforrás létrehozása
- Az ApplicationLoadBalancer-erőforrás Kubernetes-névterének meghatározása
kubectl apply -f - <<EOF
apiVersion: v1
kind: Namespace
metadata:
name: alb-test-infra
EOF
- Adja meg az ApplicationLoadBalancer erőforrást, és adja meg azt az alhálózat-azonosítót, amelyben az Application Gateway for Containers társítási erőforrásnak üzembe kell helyeznie. A társítás kapcsolatot létesít az Application Gateway for Containers és a meghatározott alhálózat (és adott esetben csatlakoztatott hálózatok) között, hogy meg lehessen proxyzni a forgalmat egy meghatározott háttérrendszer felé.
Feljegyzés
Amikor az ALB-vezérlő létrehozza az Application Gateway for Containers-erőforrásokat az ARM-ben, az erőforrásokhoz a következő elnevezési konvenciók használhatók:
- alb-8< véletlenszerűen létrehozott karakterek> az Application Gateway for Containers erőforrás definiálásához
- as-8< véletlenszerűen létrehozott karakterek> a társítás erőforrásának meghatározásához
Ha módosítani szeretné az Azure-ban létrehozott erőforrások nevét, fontolja meg a saját üzembehelyezési stratégia követését.
Futtassa a következő parancsot az Application Gateway for Containers erőforrás és társítás létrehozásához.
kubectl apply -f - <<EOF
apiVersion: alb.networking.azure.io/v1
kind: ApplicationLoadBalancer
metadata:
name: alb-test
namespace: alb-test-infra
spec:
associations:
- $ALB_SUBNET_ID
EOF
Az Application Gateway for Containers-erőforrások létrehozásának ellenőrzése
Az ApplicationLoadBalancer erőforrás létrehozása után nyomon követheti az Application Gateway for Containers-erőforrások üzembe helyezésének állapotát. Az üzembe helyezés az üzembe helyezés befejezésekor átáll az InProgressről a programozott állapotra. Az Application Gateway for Containers-erőforrások létrehozása 5–6 percet is igénybe vehet.
Az ApplicationLoadBalancer-erőforrás állapotát az alábbi parancs futtatásával ellenőrizheti:
kubectl get applicationloadbalancer alb-test -n alb-test-infra -o yaml -w
Példa az Application Gateway for Containers erőforrás Kubernetesből történő sikeres kiépítésére.
status:
conditions:
- lastTransitionTime: "2023-06-19T21:03:29Z"
message: Valid Application Gateway for Containers resource
observedGeneration: 1
reason: Accepted
status: "True"
type: Accepted
- lastTransitionTime: "2023-06-19T21:03:29Z"
message: alb-id=/subscriptions/xxx/resourceGroups/yyy/providers/Microsoft.ServiceNetworking/trafficControllers/alb-zzz
observedGeneration: 1
reason: Ready
status: "True"
type: Deployment
Következő lépések
Gratulálunk, telepítette az ALB-vezérlőt a fürtre, és üzembe helyezte az Application Gateway for Containers-erőforrásokat az Azure-ban!
Kipróbálhat néhány útmutatót a mintaalkalmazások üzembe helyezéséhez, bemutatva az Application Gateway terheléselosztási fogalmait.