你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

已启用 Azure Arc 的 Kubernetes 群集的 Azure Monitor 容器见解

Azure Monitor 容器见解为已启用 Azure Arc 的 Kubernetes 群集提供了丰富的监视体验。

支持的配置

  • Azure Monitor 容器见解支持监视已启用 Azure Arc 的 Kubernetes,如概述一文中所述,但实时数据功能除外。 此外,用户无需所有者权限也可启用指标
  • DockerMoby 和 CRI 兼容容器运行时(如 CRI-Ocontainerd)。
  • 支持无身份验证的出站代理和有基本身份验证的出站代理。 目前不支持需要受信任证书的出站代理。

注意

如果要从 Azure Red Hat OpenShift v4.x 上的容器见解中进行迁移,还请确保已禁用监视,然后再继续在已启用 Azure Arc 的 Kubernetes 上配置容器见解,以防止任何安装问题。

必备条件

  • 通用群集扩展文档中列出的先决条件。

  • Log Analytics 工作区。 Azure Monitor 容器见解支持在 Azure 产品(按区域)页上列出的区域中的 Log Analytics 工作区。 你可以使用 Azure 资源管理器PowerShellAzure 门户创建自己的工作区。

  • 包含已启用 Azure Arc 的 Kubernetes 资源的 Azure 订阅上的参与者角色分配。 如果 Log Analytics 工作区位于不同的订阅中,在 Log Analytics 工作区上需要拥有 Log Analytics 参与者角色。

  • 要查看监视数据,在 Log Analytics 工作区上需要拥有 Log Analytics 读者角色。

  • 除了将 Kubernetes 群集连接到 Azure Arc 中所述的终结点以外,还需要为出站访问启用以下终结点。

    Azure 公有云

    端点 端口
    *.ods.opinsights.azure.com 443
    *.oms.opinsights.azure.com 443
    dc.services.visualstudio.com 443
    *.monitoring.azure.com 443
    login.microsoftonline.com 443

    下表列出了托管标识身份验证所需的其他防火墙配置。

    代理资源 目的 端口
    global.handler.control.monitor.azure.com 访问控制服务 443
    <cluster-region-name>.handler.control.monitor.azure.com 提取特定 AKS 群集的数据收集规则 443

    Azure 政府版云

    如果已启用 Azure Arc 的 Kubernetes 资源位于 Azure 美国政府环境中,则需要启用以下终结点以进行出站访问:

    端点 端口
    *.ods.opinsights.azure.us 443
    *.oms.opinsights.azure.us 443
    dc.services.visualstudio.com 443

    下表列出了托管标识身份验证所需的其他防火墙配置。

    代理资源 目的 端口
    global.handler.control.monitor.azure.cn 访问控制服务 443
    <cluster-region-name>.handler.control.monitor.azure.cn 提取特定 AKS 群集的数据收集规则 443
  • 如果在 AKS 上使用已启用 Arc 的群集,并且以前安装了用于 AKS 的监视,请确保在继续操作之前已禁用监视,避免扩展安装期间出现问题

  • 如果以前已使用没有群集扩展的脚本在此群集上部署了 Azure Monitor 容器见解,请按此处列出的说明删除此 Helm 图表。 然后,你可以继续为 Azure Monitor 容器见解创建群集扩展实例。

确定工作区资源 ID

运行以下命令来查找 Log Analytics 工作区的完整 Azure 资源管理器标识符。

  1. 使用以下命令列出你有权访问的所有订阅:

    az account list --all -o table
    
  2. 使用以下命令切换到托管 Log Analytics 工作区的订阅:

    az account set -s <subscriptionId of the workspace>
    
  3. 以下示例以默认 JSON 格式显示订阅中的工作区列表。

    az resource list --resource-type Microsoft.OperationalInsights/workspaces -o json
    

    在输出中,找到相关的工作区名。 其中的 id 字段表示 Log Analytics 工作区的 Azure 资源管理器标识符。

    提示

    还可以通过 Azure 门户在 Log Analytics 工作区的“概述”边栏选项卡中找到此 id

创建扩展实例

选择 1 - 使用默认值

此选择使用以下默认设置:

  • 创建或使用与群集区域相对应的现有默认 Log Analytics 工作区
  • 已为 Azure Monitor 群集扩展启用自动升级
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers

若要使用托管标识身份验证(预览版),请添加 configuration-settings 参数,如下所示:

az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings omsagent.useAADAuth=true

选择 2 - 使用现有 Azure Log Analytics 工作区

你可以在具有“参与者”角色或更大权限的角色的任何订阅中使用现有 Azure Log Analytics 工作区。

az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings logAnalyticsWorkspaceResourceID=<armResourceIdOfExistingWorkspace>

选择 3 - 使用高级配置

如果要调整默认资源请求和限制,可以使用高级配置设置:

az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings  omsagent.resources.daemonset.limits.cpu=150m omsagent.resources.daemonset.limits.memory=600Mi omsagent.resources.deployment.limits.cpu=1 omsagent.resources.deployment.limits.memory=750Mi

查看 Helm 图表的资源请求和限制部分,了解可用的配置设置。

选择 4 - 在 Azure Stack Edge 上

如果已启用 Azure Arc 的 Kubernetes 群集位于 Azure Stack Edge 上,则需要使用自定义装载路径 /home/data/docker

az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings omsagent.logsettings.custommountpath=/home/data/docker

注意

如果要在 create 命令中显式指定要安装的扩展的版本,请确保指定的版本不低于 2.8.2。

验证扩展安装状态

成功为已启用 Azure Arc 的 Kubernetes 群集创建 Azure Monitor 扩展后,还可以使用 Azure 门户或 CLI 检查安装状态。 成功的安装应将状态显示为“已安装”。 如果状态显示为“失败”或者长时间处于“挂起”状态,请转到下面的“故障排除”部分。

  1. 在 Azure 门户中,选择已启用 Azure Arc 的 Kubernetes 群集,其中安装了扩展
  2. 选择资源边栏选项卡的“设置”部分下的“扩展”项
  3. 应该会看到一个名为“azuremonitor-containers”的扩展,“安装状态”列中还列出了状态

迁移到托管标识身份验证(预览版)

使用流式指导将现有扩展实例迁移到托管标识身份验证(预览版)。

首先检索为容器见解扩展配置的 Log Analytics 工作区。

az k8s-extension show --name azuremonitor-containers --cluster-name \<cluster-name\> --resource-group \<resource-group\> --cluster-type connectedClusters -n azuremonitor-containers 

使用第一步返回的工作区,使用托管标识身份验证选项启用容器见解扩展。

az k8s-extension create --name azuremonitor-containers --cluster-name \<cluster-name\> --resource-group \<resource-group\> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings omsagent.useAADAuth=true logAnalyticsWorkspaceResourceID=\<workspace-resource-id\> 

删除扩展实例

以下命令仅删除扩展实例,但不删除 Log Analytics 工作区。 Log Analytics 资源中的数据保持不变。

az k8s-extension delete --name azuremonitor-containers --cluster-type connectedClusters --cluster-name <cluster-name> --resource-group <resource-group>

断开连接的群集

如果群集已断开与 Azure 的连接超过 48 小时,则 Azure Resource Graph 不会包含有关群集的信息。 因此,“见解”边栏选项卡显示的群集状态相关信息可能不正确。

疑难解答

对于启用监视的问题,我们提供了疑难解答脚本来帮助诊断任何问题。

后续步骤

  • 启用监视功能以收集启用了 Azure Arc 的 Kubernetes 群集及其上运行的工作负载的运行状况和资源利用率后,请了解如何使用容器见解。

  • 默认情况下,容器化代理会收集在所有命名空间(kube-system 除外)中运行的所有容器的 stdout/stderr 容器日志。 若要配置特定于某个或某些命名空间的容器日志收集,请参阅容器见解代理配置,为 ConfigMap 配置文件配置所需的数据收集设置。

  • 若要从群集中抓取和分析 Prometheus 指标,请参阅配置 Prometheus 指标抓取