为容器见解配置限制

注释

仅在收集 容器网络日志时,容器见解日志才会受到限制。 如果你尚未启用容器网络日志的收集,则未对群集启用限制。

Azure Monitor - 容器见解允许客户收集其 Azure Kubernetes 服务 (AKS) 群集中生成的日志。 根据工作负载和日志配置,生成的日志量可能会很大,从而导致日志流量受到限制并造成日志丢失。 本文讨论在容器见解中限制日志之后的默认值。 我们将讨论客户如何修改这些值。 最后一部分介绍如何使用服务质量(QoS)Grafana 仪表板监控潜在的限流问题。

默认限制值

默认情况下启用了限制,并使用以下值:

ConfigMap 设置 默认值 DESCRIPTION
节流启用 默认情况下为 true,并调整此值以控制是启用或禁用网络流日志消息。
限流率 五千 默认情况下为 5000,范围为 1 到 25,000,并调整此值以控制时间范围内日志记录的数量。
限速窗口 300 默认值为 300,调整该值可以控制计算平均值的间隔数。
节流间隔 1秒 默认情况下为1秒,并可通过调整此值来控制时间间隔,以“sleep”格式表示。 示例:3s、1.5m、0.5h 等。
节流打印 默认值为 false,调整该值可控制是否将包含当前速率和限制的状态消息打印到信息日志中。

修改限流值

若要修改默认值,请下载 ConfigMap,并在所下载的 ConfigMap 上修改以下设置:

throttle_enabled = true # By default is true and adjust this value to control whether to enable or disable network flow log messages. 
throttle_rate = 5000 # By default is 5000 and range from 1 to 25,000 and adjust this value to control the amount of messages for the time. 
throttle_window = 300 # By default is 300 and adjust this value to control the amount of intervals to calculate average over. 
throttle_interval = "1s" # By default is 1s and adjust this value to control time interval, expressed in "sleep" format. Examples: 3s, 1.5m, 0.5h etc. 
throttle_print = false # By default is false and adjust this value to control whether to print status messages with current rate and the limits to information logs. 

通过 kubectl apply 命令应用 configmap 后,pods 会在大约几分钟内重启。

kubectl apply -f agent_settings.networkflow_logs_config.yaml

使用 Prometheus 和 Grafana 监视 QoS 指标

收集容器网络日志的日志插件发布可用于监视流量限制和日志丢失的服务质量指标。 在本部分中,我们将介绍如何客户使用适用于 Prometheus 的 Azure Monitor 托管服务收集这些指标,然后使用 Grafana 将其可视化。

先决条件

配置步骤

  1. 下载 ama-metrics-prometheus-config-node ConfigMap
curl -LO https://aka.ms/ama-metrics-prometheus-config-node
  1. 通过以下方式,检查是否已有 ama-metrics-prometheus-config-node ConfigMap
kubectl get cm -n kube-system | grep ama-metrics-prometheus-config-node

如果已经存在 ConfigMap,则可以将 ama-logs-daemonset scrape 作业添加到现有的 ConfigMap 中,否则可以通过以下方法应用该 ConfigMap

kubectl apply -f ama-metrics-prometheus-config-node.yaml 
  1. Grafana 仪表板 JSON 文件 导入 Azure 托管 Grafana 实例。

  2. 将 enable_internal_metrics = true 配置在 ConfigMap 中 https://github.com/microsoft/Docker-Provider/blob/ci_prod/kubernetes/container-azm-ms-agentconfig.yaml#L220

使用以下方式应用 configmap:

kubectl apply -f container-azm-ms-agentconfig.yaml 

最终仪表板

下图显示了包含数据流的最终 QoS 仪表板:

图像显示了为容器见解设置 QoS 监视的最终结果。