你当前正在访问 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,如概述一文中所述,但实时数据功能除外。 此外,用户无需所有者权限也可启用指标
Docker
、Moby
和 CRI 兼容容器运行时(如CRI-O
和containerd
)。- 支持无身份验证的出站代理和有基本身份验证的出站代理。 目前不支持需要受信任证书的出站代理。
注意
如果要从 Azure Red Hat OpenShift v4.x 上的容器见解中进行迁移,还请确保已禁用监视,然后再继续在已启用 Azure Arc 的 Kubernetes 上配置容器见解,以防止任何安装问题。
必备条件
通用群集扩展文档中列出的先决条件。
Log Analytics 工作区。 Azure Monitor 容器见解支持在 Azure 产品(按区域)页上列出的区域中的 Log Analytics 工作区。 你可以使用 Azure 资源管理器、PowerShell 或 Azure 门户创建自己的工作区。
包含已启用 Azure Arc 的 Kubernetes 资源的 Azure 订阅上的参与者角色分配。 如果 Log Analytics 工作区位于不同的订阅中,则在包含 Log Analytics 工作区的资源组上需要进行 Log Analytics 参与者角色分配
要查看监视数据,在 Log Analytics 工作区上需要拥有 Log Analytics 读者角色。
除已启用 Azure Arc 的 Kubernetes 网络要求外,还需要为出站访问启用以下终结点。
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 资源管理器标识符。
使用以下命令列出你有权访问的所有订阅:
az account list --all -o table
使用以下命令切换到托管 Log Analytics 工作区的订阅:
az account set -s <subscriptionId of the workspace>
以下示例以默认 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 amalogs.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 amalogs.resources.daemonset.limits.cpu=150m amalogs.resources.daemonset.limits.memory=600Mi amalogs.resources.deployment.limits.cpu=1 amalogs.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 amalogs.logsettings.custommountpath=/home/data/docker
选项 5 - 使用 Azure Monitor 专用链接范围(AMPLS) + 代理
如果群集配置了正向代理,则代理设置会自动应用于扩展。 对于使用 AMPLS + 代理的群集,应忽略代理配置。 使用配置设置 amalogs.ignoreExtensionProxySettings=true
加入扩展。
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 amalogs.ignoreExtensionProxySettings=true
注意
如果要在 create 命令中显式指定要安装的扩展的版本,请确保指定的版本不低于 2.8.2。
验证扩展安装状态
成功为已启用 Azure Arc 的 Kubernetes 群集创建 Azure Monitor 扩展后,还可以使用 Azure 门户或 CLI 检查安装状态。 成功的安装应将状态显示为“已安装”。 如果状态显示为“失败”或者长时间处于“挂起”状态,请转到下面的“故障排除”部分。
- 在 Azure 门户中,选择已启用 Azure Arc 的 Kubernetes 群集,其中安装了扩展
- 从左侧的“资源”窗格中,选择“设置”部分下的“扩展”项。
- 应该会看到一个名为“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 amalogs.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 指标抓取。