你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
高缩放模式是容器见解中的一项功能,可用于从 Azure Kubernetes 服务 (AKS) 群集节点收集具有高吞吐量的容器控制台(stdout 和 stderr)日志。 使用此功能,每个节点的收集速率最高可达 50,000 条日志/秒。
注意
此功能目前处于公开预览状态。 有关其他信息,请阅读 Microsoft Azure 预览版补充使用条款。
概述
启用高缩放模式后,容器见解会执行多个配置更改,从而增加整体吞吐量。 这包括使用升级后的代理和 Azure Monitor 数据管道以及缩放改进。 这些更改全部由 Azure Monitor 在后台完成,启用该功能后无需进行输入或配置。
高缩放模式仅影响数据收集层。 容器见解体验的其余部分保持不变,日志会引入到同一 ContainerLogV2
表中。 现有查询和警报将继续工作,因为收集的数据相同。
若要达到支持的最大日志吞吐量,应针对 AKS 群集节点使用 CPU 核心数不少于 16 个的高端 VM SKU。 使用低端 VM SKU 会影响日志吞吐量。
我的群集是否符合条件?
高缩放日志收集适用于其 Kubernetes 群集中每个节点的发送速率超过 2,000 条日志/秒(或 2 MB/秒)的环境,并经过设计和测试,每个节点的发送速率最高可达 50,000 条日志/秒。 使用以下日志查询来确定群集是否适合高缩放日志收集。
每秒和每个节点的日志数
ContainerLogV2
| where _ResourceId =~ "<cluster-resource-id>"
| summarize count() by bin(TimeGenerated, 1s), Computer
| render timechart
每个节点的每秒日志大小(以 MB 为单位)
ContainerLogV2
| where _ResourceId =~ "<cluster-resource-id>"
| summarize BillableDataMB = sum(_BilledSize)/1024/1024 by bin(TimeGenerated, 1s), Computer
| render timechart
先决条件
- Azure CLI 2.63.0 或更高版本。
- 如果安装了 aks-preview CLI 扩展,AKS-preview CLI 扩展版本必须为 7.0.0b4 或更高。
- 群集架构必须配置用于 ContainerLogV2。
- 如果 ama-logs 守护程序集容器上的默认资源限制(CPU 和内存)不符合您的日志规模要求,请联系 Microsoft 支持渠道以增加 ama-logs 容器的资源限制。
网络防火墙要求
除了用于监视 Kubernetes 群集的网络防火墙要求外,还需要下表中的额外配置来根据云启用高缩放模式。
云 | 终结点 | 端口 |
---|---|---|
Azure 公有云 | <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.com |
443 |
由世纪互联运营的 Microsoft Azure 云 | <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.cn |
443 |
Azure 政府版云 | <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.us |
443 |
终结点是群集使用的数据收集规则 (DCR) 的数据收集终结点 (DCE) 中的日志引入终结点。 当您为群集启用高缩放模式时,将创建以 MSCI-ingest
为前缀的 DCE。
限制
此预览版不支持以下方案。 该功能正式发布后,这些问题会得到解决。
- 具有 Arm64 节点的 AKS 群集
- 已启用 Azure Arc 的 Kubernetes
- 具有受信任证书的 HTTP 代理
- 通过 Azure 门户、Azure Policy、Terraform 和 Bicep 完成入门
- 在 AKS Insights 门户体验中通过“监视设置”进行配置
- 从现有容器见解自动迁移
启用大规模日志收集
按照以下部分中的两个步骤为群集启用高缩放模式。
注意
高日志缩放模式需要数据收集终结点 (DCE)进行引入。 加入时,会为每一个群集创建前缀为 MSCI-ingest
的引入 DCE。 如果配置了 Azure Monitor 私有链接范围,还会创建带有前缀 MSCI-config
的 DCE 配置。
更新 configmap
第一步是更新群集的 configmap,以指示容器见解 ama-logs deamonset Pod 以高缩放模式运行。
按照配置和部署 ConfigMap 中的指南下载和更新群集的 ConfigMap。
使用以下设置在
agent-settings
下启用高缩放模式。[agent_settings.high_log_scale] enabled = true
启用内部指标集合,以在
agent-settings
下使用以下设置填充下面所述的 QoS Grafana 仪表板。[agent_settings.fbit_config] enable_internal_metrics = "true"
使用以下命令将 ConfigMap 应用到群集。
kubectl config set-context <cluster-name> kubectl apply -f <configmap_yaml_file.yaml>
应用此 configmap 后,ama-logs-*
pod 将会自动重启,并将 ama-logs daemonset pod 配置为在高缩放模式下运行。
为监视加载项启用高缩放模式
使用以下 Azure CLI 命令启用采用高缩放模式的监视加载项,以便根据 AKS 配置为监视加载项启用高缩放日志模式。
注意
可以使用 ARM 模板为监控插件启用高扩展模式,而不是 CLI。 有关使用 ARM 模板启用容器见解的指导,请参阅 “启用容器见解 ”。 若要启用高缩放模式,请使用 Microsoft-ContainerLogV2-HighScale
而不是 Microsoft-ContainerLogV2
参数中的 streams
,如使用 ARM 模板配置 DCR 中所述。
现有 AKS 群集
az aks enable-addons -a monitoring -g <resource-group-name> -n <cluster-name> --enable-high-log-scale-mode
现有 AKS 专用群集
az aks enable-addons -a monitoring -g <resource-group-name> -n <cluster-name> --enable-high-scale-mode --ampls-resource-id /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/microsoft.insights/privatelinkscopes/<resourceName>
新 AKS 群集
az aks create -g <cluster-name> -n <cluster-name> enable-addons -a monitoring --enable-high-log-scale-mode
新 AKS 专用群集
有关创建 AKS 专用群集的详细信息,请参阅创建专用 Azure Kubernetes 服务 (AKS) 群集。 使用额外的参数 --enable-high-scale-mode
和 --ampls-resource-id
通过 Azure Monitor 专用链接范围资源 ID 配置高日志缩放模式。
迁移
如果已为群集启用 Container Insights,则需要禁用它,然后使用高缩放模式重新启用它。
- 由于大规模模式使用不同的数据管道,因此必须确保防火墙或其他网络连接不会阻止管道终结点。
- 除了用于数据收集的标准 DCR 之外,高缩放模式还需要数据收集终结点 (DCE) 进行引入。 如果您已创建任何使用
Microsoft.ContainerLogV2
的 DCR,那么必须将其中的Microsoft.ContainerLogV2
替换为 ,否则数据将会重复。 此外,还应创建用于引入的 DCE 并将其链接到 DCR(如果 DCR 尚未使用一个)。 请通过 Azure 资源管理器查看“容器见解入门”以获取有关依赖项的参考。
使用 Prometheus 和 Grafana 监视 QoS 指标
当生成的日志量很大时,可能会导致节流和日志丢失。 有关配置限制参数和监视日志丢失的指南,请参阅为容器见解配置限制一文。
后续步骤
- 通过 https://aka.ms/cihsfeedback 分享与高缩放模式相关的任何反馈或问题。