Szybki start: tworzenie usługi Application Gateway dla kontenerów — bring your own deployment

W tym przewodniku założono, że obserwujesz strategię wdrażania przy użyciu własnejstrategii wdrażania, w której kontroler usługi ALB odwołuje się do zasobów usługi Application Gateway for Containers utworzonych wstępnie na platformie Azure. Zakłada się, że cykle życia zasobów są zarządzane na platformie Azure niezależnie od tego, co jest zdefiniowane w ramach platformy Kubernetes.

Wymagania wstępne

Upewnij się, że kontroler usługi ALB został wdrożony w klastrze Kubernetes. Możesz skorzystać z przewodnika Szybki start: wdrażanie usługi Application Gateway dla kontenerów kontrolera usługi ALB, jeśli kontroler usługi ALB nie został jeszcze wdrożony.

Tworzenie zasobu usługi Application Gateway for Containers

Wykonaj następujące polecenie, aby utworzyć zasób usługi Application Gateway for Containers.

RESOURCE_GROUP='<your resource group name>'
AGFC_NAME='alb-test' # Name of the Application Gateway for Containers resource to be created
az network alb create -g $RESOURCE_GROUP -n $AGFC_NAME

Tworzenie zasobu frontonu

Wykonaj następujące polecenie, aby utworzyć zasób frontonu usługi Application Gateway for Containers.

FRONTEND_NAME='test-frontend'
az network alb frontend create -g $RESOURCE_GROUP -n $FRONTEND_NAME --alb-name $AGFC_NAME

Tworzenie zasobu skojarzenia

Delegowanie podsieci do zasobu skojarzenia

Aby utworzyć zasób skojarzenia, należy najpierw odwołać się do podsieci dla usługi Application Gateway dla kontenerów w celu nawiązania łączności z. Upewnij się, że podsieć skojarzenia usługi Application Gateway dla kontenerów jest co najmniej klasą C lub większą (/24 lub mniejszym prefiksem CIDR). W tym kroku możesz ponownie użyć istniejącej podsieci i włączyć w niej delegowanie podsieci lub utworzyć nową sieć wirtualną, podsieć i włączyć delegowanie podsieci.

Aby odwołać się do istniejącej podsieci, wykonaj następujące polecenie, aby ustawić zmienne dla odwołania do podsieci w kolejnych krokach.

VNET_NAME='<name of the virtual network to use>'
VNET_RESOURCE_GROUP='<the resource group of your VNET>'
ALB_SUBNET_NAME='subnet-alb' # subnet name can be any non-reserved subnet name (i.e. GatewaySubnet, AzureFirewallSubnet, AzureBastionSubnet would all be invalid)

Włącz delegowanie podsieci dla usługi Application Gateway for Containers. Delegowanie usługi Application Gateway dla kontenerów jest identyfikowane przez typ zasobu Microsoft.ServiceNetworking/trafficControllers .

az network vnet subnet update \
    --resource-group $VNET_RESOURCE_GROUP  \
    --name $ALB_SUBNET_NAME \
    --vnet-name $VNET_NAME \
    --delegations 'Microsoft.ServiceNetworking/trafficControllers'
ALB_SUBNET_ID=$(az network vnet subnet list --resource-group $VNET_RESOURCE_GROUP --vnet-name $VNET_NAME --query "[?name=='$ALB_SUBNET_NAME'].id" --output tsv)
echo $ALB_SUBNET_ID

Delegowanie uprawnień do tożsamości zarządzanej

Kontroler usługi ALB musi mieć możliwość aprowizowania nowych zasobów usługi Application Gateway dla kontenerów i dołączania do podsieci przeznaczonej dla zasobu skojarzenia usługi Application Gateway for Containers.

W tym przykładzie delegujemy rolę AppGW for Containers Configuration Manager do grupy zasobów i delegujemy rolę Współautor sieci do podsieci używanej przez podsieć skojarzenia usługi Application Gateway for Containers, która zawiera uprawnienie Microsoft.Network/virtualNetworks/subnets/join/action .

W razie potrzeby możesz utworzyć i przypisać rolę niestandardową za pomocą uprawnienia Microsoft.Network/virtualNetworks/subnets/join/action , aby wyeliminować inne uprawnienia zawarte w roli Współautor sieci. Dowiedz się więcej o zarządzaniu uprawnieniami podsieci.

IDENTITY_RESOURCE_NAME='azure-alb-identity'

resourceGroupId=$(az group show --name $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 RG containing Application Gateway for Containers resource
az role assignment create --assignee-object-id $principalId --assignee-principal-type ServicePrincipal --scope $resourceGroupId --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" 

Tworzenie zasobu skojarzenia

Wykonaj następujące polecenie, aby utworzyć zasób skojarzenia i połączyć go z przywołyną podsiecią. Utworzenie skojarzenia usługi Application Gateway for Containers może potrwać 5–6 minut.

ASSOCIATION_NAME='association-test'
az network alb association create -g $RESOURCE_GROUP -n $ASSOCIATION_NAME --alb-name $AGFC_NAME --subnet $ALB_SUBNET_ID

Następne kroki

Gratulacje, kontroler usługi ALB został zainstalowany w klastrze i wdrożono zasoby usługi Application Gateway for Containers na platformie Azure!

Wypróbuj kilka przewodników z instrukcjami, aby wdrożyć przykładową aplikację, przedstawiając niektóre pojęcia dotyczące równoważenia obciążenia w usłudze Application Gateway dla kontenera.