クイック スタート: Application Gateway for Containers を作成する - Bring your own デプロイ

このガイドでは、ALB コントローラーが Azure で事前に作成された Application Gateway for Containers リソースを参照する Bring Your Ownデプロイ戦略に従っていることを前提としています。 リソースのライフサイクルは、Kubernetes 内で定義されているものとは無関係に、Azure で管理されることを前提としています。

前提条件

最初に ALB コントローラーを Kubernetes クラスターにデプロイしていることを確認します。 ALB コントローラーをまだデプロイしていない場合は、「クイック スタート: Application Gateway for Containers ALB コントローラーのデプロイ」ガイドに従ってください。

Application Gateway for Containers リソースを作成する

次のコマンドを実行して、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

フロントエンド リソースを作成する

次のコマンドを実行して、Application Gateway for Containers フロントエンド リソースを作成します。

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

関連付けリソースを作成する

サブネットを関連付けリソースに委任する

関連付けリソースを作成するには、まず、接続を確立するために Application Gateway for Containers 用のサブネットを参照する必要があります。 Application Gateway for Containers の関連付け用のサブネットが、少なくともクラス C 以上 (/24 以下の CIDR プレフィックス) であることを確認します。 この手順では、既存のサブネットを再利用し、それに対してサブネットの委任を有効にするか、新しい VNET、サブネットを作成して、サブネットの委任を有効にします。

既存のサブネットを参照するには、次のコマンドを実行して、後の手順でサブネットを参照するための変数を設定します。

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)

Application Gateway for Containers サービスのためのサブネット委任を有効にします。 Application Gateway for Containers のための委任は、リソースの種類 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

マネージド ID にアクセス許可を委任する

ALB コントローラーには、新しい Application Gateway for Containers リソースをプロビジョニングする機能と、Application Gateway for Containers の関連リソースを対象としたサブネットに参加する機能が必要です。

この例では、AppGW for Containers 構成マネージャー ロールをリソース グループに委任し、Application Gateway for Containers 関連サブネットで使用されるサブネットにネットワーク共同作成者ロールを委任します。これには Microsoft.Network/virtualNetworks/subnets/join/action アクセス許可が含まれます。

必要に応じて、Microsoft.Network/virtualNetworks/subnets/join/actionアクセス許可を使用してカスタム ロールを作成して割り当てネットワーク共同作成者ロールに含まれる他のアクセス許可を削除できます。 サブネットのアクセス許可の管理の詳細を確認してください。

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" 

関連付けリソースを作成する

次のコマンドを実行して、関連付けリソースを作成し、参照先のサブネットに接続します。 Application Gateway for Containers の関連付けが作成されるまで、5 分から 6 分かかる場合があります。

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

次のステップ

これで、クラスターに ALB コントローラーがインストールされ、Azure に Application Gateway for Containers がデプロイされました。

サンプル アプリケーションをデプロイするためのハウツー ガイドをいくつか試し、Application Gateway for Containers の負荷分散の概念の一部を実証します。