Schnellstart: Erstellen von Application Gateway für Container – Bring Your Own Deployment

In diesem Leitfaden wird davon ausgegangen, dass Sie die Bring Your Own-Bereitstellungsstrategie verwenden, bei der der ALB-Controller auf die vorab in Azure erstellten Application Gateway für Container-Ressourcen verweist. Es wird davon ausgegangen, dass Ressourcenlebenszyklen in Azure verwaltet werden, unabhängig von den in Kubernetes definierten Daten.

Voraussetzungen

Vergewissern Sie sich, dass Sie zuerst den ALB-Controller in Ihrem Kubernetes-Cluster bereitgestellt haben. Weitere Informationen finden Sie in der Anleitung Schnellstart: Bereitstellen des ALB-Controllers für Application Gateway für Container, falls Sie den ALB-Controller noch nicht bereitgestellt haben.

Erstellen der Application Gateway für Container-Ressource

Führen Sie den folgenden Befehl aus, um die Application Gateway für Container-Ressource zu erstellen.

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

Erstellen einer Front-End-Ressource

Führen Sie den folgenden Befehl aus, um die Application Gateway für Container-Front-End-Ressource zu erstellen.

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

Erstellen einer Zuordnungsressource

Delegieren eines Subnetzes an eine Zuordnungsressource

Zum Erstellen einer Zuordnungsressource müssen Sie zunächst auf ein Subnetz für Application Gateway für Container verweisen, mit dem eine Verbindung hergestellt werden soll. Stellen Sie sicher, dass das Subnetz für eine Application Gateway für Container-Zuordnung mindestens Klasse C oder größer ist (/24 oder ein kleineres CIDR-Präfix). Für diesen Schritt können Sie entweder ein vorhandenes Subnetz wiederverwenden und die Subnetzdelegierung dafür aktivieren, oder ein neues VNet erstellen, ein Subnetz erstellen und die Subnetzdelegierung aktivieren.

Zum Verweisen auf ein vorhandenes Subnetz führen Sie den folgenden Befehl aus, um die Variablen für den Verweis auf das Subnetz in späteren Schritten festzulegen.

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)

Aktivieren Sie die Subnetzdelegierung für den Application Gateway für Container-Dienst. Die Delegierung für Application Gateway für Container wird durch den Ressourcentyp Microsoft.ServiceNetworking/trafficControllers identifiziert.

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

Delegieren von Berechtigungen für eine verwaltete Identität

Der ALB-Controller benötigt die Möglichkeit, neue Application Gateway für Container-Ressourcen bereitzustellen und dem Subnetz für die Application Gateway für Container-Zuordnungsressource beizutreten.

In diesem Beispiel delegieren wir die Rolle AppGW für Container Configuration Manager an die Ressourcengruppe und delegieren die Rolle Netzwerkmitwirkender an das Subnetz, das vom Subnetz für die Zuordnung von Application Gateway für Container verwendet wird, das die Berechtigung Microsoft.Network/virtualNetworks/subnets/join/action enthält.

Bei Bedarf können Sie mit der Berechtigung Microsoft.Network/virtualNetworks/subnets/join/actioneine benutzerdefinierte Rolle erstellen und zuweisen, um andere Berechtigungen zu entfernen, die in der Rolle Netzwerkmitwirkender enthalten sind. Weitere Informationen zum Verwalten von Subnetzberechtigungen.

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" 

Erstellen einer Zuordnungsressource

Führen Sie den folgenden Befehl aus, um die Zuordnungsressource zu erstellen und mit dem Subnetz zu verbinden, auf das verwiesen wird. Es kann 5 bis 6 Minuten dauern, bis die Application Gateway für Container-Zuordnung erstellt wird.

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

Nächste Schritte

Herzlichen Glückwunsch, Sie haben den ALB-Controller in Ihrem Cluster installiert und die Application Gateway für Container-Ressourcen in Azure bereitgestellt!

Probieren Sie einige der Schrittanleitungen zum Bereitstellen einer Beispielanwendung aus, die einige der Konzepte für den Lastenausgleich von Application Gateway für Container veranschaulicht.