在本教程中,您将创建一个容器应用程序到启用 Azure Arc 的 Kubernetes 群集,并学习如何:
- 在 Azure Arc 上创建容器应用
- 查看应用程序的诊断信息
在继续创建容器应用之前,首先需要设置一个已启用 Azure Arc 的 Kubernetes 群集来运行 Azure 容器应用。
在 Azure Power Shell 中启动 Bash 环境。 接下来,添加所需的 Azure CLI 扩展。
警告
以下命令安装一个不能与公有云服务配合使用的自定义容器应用扩展。 如果你切换回 Azure 公有云,则需要卸载该扩展。
az extension add --upgrade --yes --name customlocation
az extension add --name containerapp --upgrade --yes
为本教程中创建的服务创建一个资源组。
GROUP_NAME="my-container-apps-resource-group"
az group create --name $GROUP_NAME --location chinaeast2
从群集管理员那里获取以下位置组、名称和 ID。 有关详细信息,请参阅创建自定义位置。
CUSTOM_LOCATION_GROUP="<RESOURCE_GROUP_CONTAINING_CUSTOM_LOCATION>"
CUSTOM_LOCATION_NAME="<NAME_OF_CUSTOM_LOCATION>"
获取自定义位置 ID。
CUSTOM_LOCATION_ID=$(az customlocation show \
--resource-group $CUSTOM_LOCATION_GROUP \
--name $CUSTOM_LOCATION_NAME \
--query id \
--output tsv)
获取自定义位置 ID 后,可以查询连接的环境。
连接的环境在很大程度上与标准容器应用环境是相同的,但网络限制由基础的已启用 Arc 的 Kubernetes 群集控制。
CONTAINER_APP_NAME="my-container-app"
CONNECTED_ENVIRONMENT_ID=$(az containerapp connected-env list --custom-location $CUSTOM_LOCATION_ID -o tsv --query '[].id')
以下示例创建一个 Node.js 应用。
az containerapp create \
--resource-group $GROUP_NAME \
--name $CONTAINER_APP_NAME \
--environment $CONNECTED_ENVIRONMENT_ID \
--environment-type connected \
--image mcr.microsoft.com/k8se/quickstart:latest \
--target-port 80 \
--ingress external
az containerapp browse --resource-group $GROUP_NAME --name $CONTAINER_APP_NAME
备注
在安装容器应用扩展时,需要通过一项 Log Analytics 配置来查看诊断信息。 如果安装的扩展没有 Log Analytics,请跳过此步骤。
导航到使用容器应用扩展配置的 Log Analytics 工作区,然后在左侧导航栏中选择“日志”。
运行以下示例查询以显示过去 72 小时的日志。
如果运行查询时出现错误,请在 10-15 分钟后重试。 Log Analytics 可能会延迟一段时间才会开始从应用程序接收日志。
let StartTime = ago(72h);
let EndTime = now();
ContainerAppConsoleLogs_CL
| where TimeGenerated between (StartTime .. EndTime)
| where ContainerAppName_s =~ "my-container-app"
Kubernetes 群集中托管的所有应用的应用程序日志将记录到名为 ContainerAppConsoleLogs_CL
的自定义日志表中的 Log Analytics 工作区中。
- Log_s 包含给定容器应用扩展的应用程序日志
- AppName_s 包含容器应用的应用名称。 除了通过应用程序代码写入的日志之外,Log_s 列还包含有关容器启动和关闭的日志。
可以在 Kusto 入门中详细了解日志查询。