使用 Azure CLI 管理工作负载配置文件

了解如何使用 Azure CLI 管理工作负载配置文件环境。

在配置文件中创建容器应用

默认情况下,容器应用环境是使用自动生成的托管 VNet 创建的。 你无法访问生成的 VNet,因为它们是在 Azure 的租户中创建的。

或者,如果需要以下任何功能,可以使用自定义 VNet 创建环境:

  • 用户定义的路由
  • 与应用程序网关集成
  • 网络安全组
  • 与虚拟网络中专用终结点后面的资源通信

使用自定义 VNet 创建环境时,可以完全控制 VNet 配置。 这种控制力使你可以选择实施以下功能:

  • 用户定义的路由
  • 与应用程序网关集成
  • 网络安全组
  • 与虚拟网络中专用终结点后面的资源通信

使用以下命令创建工作负载配置文件环境。

  1. 创建 VNet。

    az network vnet create \
      --address-prefixes 13.0.0.0/23 \
      --resource-group "<RESOURCE_GROUP>" \
      --location "<LOCATION>" \
      --name "<VNET_NAME>"
    
  2. 创建委托给 Microsoft.App/environments 的子网。

    az network vnet subnet create \
      --address-prefixes 13.0.0.0/23 \
      --delegations Microsoft.App/environments \
      --name "<SUBNET_NAME>" \
      --resource-group "<RESOURCE_GROUP>" \
      --vnet-name "<VNET_NAME>" \
      --query "id"
    

    复制 ID 值并将其粘贴到下一个命令中。

    需要 Microsoft.App/environments 委派才能为容器应用运行时提供所需的 VNet 控制力,以在容器应用环境中运行工作负载配置文件。

    可以为子网指定小至 /27 CIDR(保留 32 个 IP-8)。 如果要指定 /27 CIDR,请考虑以下事项:

    • 为容器应用基础结构保留 11 个 IP 地址。 因此,/27 CIDR 最多具有 21 个可用的 IP 地址。

    • 仅消耗计划和专用计划的 IP 地址分配方式不同:

      仅消耗量 专用
      每个副本都需要一个 IP。 用户应用的所有应用副本数不能超过 21 个。 零停机部署需要双倍的 IP,因为旧版本会一直运行,直到新版本成功部署。 每个实例(VM 节点)都需要一个 IP。 你可以在所有工作负载配置文件中拥有最多 21 个实例,并在这些工作负载配置文件上运行数百个或更多副本。
  1. 创建工作负载配置文件环境

    注意

    可以在环境级别配置容器应用是允许公共流入量,还是仅允许来自 VNet 内部的流入量。 要将流入量仅限于你的 VNet,请设置 --internal-only 标志。

    az containerapp env create \
      --enable-workload-profiles \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<NAME>" \
      --location "<LOCATION>"
    
    az containerapp env create \
      --enable-workload-profiles \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<NAME>" \
      --location "<LOCATION>"
    

    完成此命令最多需要 10 分钟。

  2. 检查环境的状态。 以下命令报告是否已成功创建环境。

    az containerapp env show \
      --name "<ENVIRONMENT_NAME>" \
      --resource-group "<RESOURCE_GROUP>"
    

    provisioningState 需要报告 Succeeded,然后才能转到下一个命令。

  3. 创建新容器应用。

    az containerapp create \
      --resource-group "<RESOURCE_GROUP>" \
      --name "<CONTAINER_APP_NAME>" \
      --target-port 80 \
      --ingress external \
      --image mcr.microsoft.com/k8se/quickstart:latest \
      --environment "<ENVIRONMENT_NAME>" \
      --workload-profile-name "Consumption"
    

    此命令将应用程序部署到内置的消耗工作负载配置文件。 如果要在专用配置文件中创建应用,首先需要将配置文件添加到环境

    此命令使用特定的工作负载配置文件在环境中创建新应用程序。

添加配置文件

将新的工作负载配置文件添加到现有环境。

az containerapp env workload-profile add \
  --resource-group <RESOURCE_GROUP> \
  --name <ENVIRONMENT_NAME> \
  --workload-profile-type <WORKLOAD_PROFILE_TYPE> \
  --workload-profile-name <WORKLOAD_PROFILE_NAME> \
  --min-nodes <MIN_NODES> \
  --max-nodes <MAX_NODES>

<WORKLOAD_PROFILE_NAME> 占位符选择的值是工作负载配置文件易记名称

使用易记名称可将同一类型的多个配置文件添加到环境中。 易记名称是在工作负载配置文件中部署和维护容器应用时使用的名称。

编辑配置文件

可以通过 update 命令修改工作负载配置文件使用的最小和最大节点数。

az containerapp env workload-profile update \
  --resource-group <RESOURCE_GROUP> \
  --name <ENV_NAME> \
  --workload-profile-type <WORKLOAD_PROFILE_TYPE> \
  --workload-profile-name <WORKLOAD_PROFILE_NAME> \
  --min-nodes <MIN_NODES> \
  --max-nodes <MAX_NODES>

删除配置文件

可使用以下命令删除工作负载配置文件。

az containerapp env workload-profile delete \
  --resource-group "<RESOURCE_GROUP>" \
  --name <ENVIRONMENT_NAME> \
  --workload-profile-name <WORKLOAD_PROFILE_NAME> 

注意

无法删除消耗工作负载配置文件。

检查配置文件

以下命令允许列出区域中的可用配置文件和特定环境中使用的配置文件。

列出可用的工作负载配置文件

使用 list-supported 命令列出区域支持的工作负载配置文件。

以下 Azure CLI 命令在表中显示结果。

az containerapp env workload-profile list-supported \
  --location <LOCATION>  \
  --query "[].{Name: name, Cores: properties.cores, MemoryGiB: properties.memoryGiB, Category: properties.category}" \
  -o table

响应类似于如下所示的表:

Name         Cores    MemoryGiB    Category
----------- -------  ----------- ---------------
D4           4        16           GeneralPurpose
D8           8        32           GeneralPurpose
D16          16       64           GeneralPurpose
E4           4        32           MemoryOptimized
E8           8        64           MemoryOptimized
E16          16       128          MemoryOptimized
E32          32       256          MemoryOptimized
Consumption  4        8            Consumption

--workload-profile-type 选项运行 az containerapp env workload-profile set 时,选择工作负载配置文件并使用“名称”字段。

显示工作负载配置文件

显示有关工作负载配置文件的详细信息。

az containerapp env workload-profile show \
  --resource-group <RESOURCE_GROUP> \
  --name <ENVIRONMENT_NAME> \
  --workload-profile-name <WORKLOAD_PROFILE_NAME> 

后续步骤