次の方法で共有


Container Insights のスロットリングを構成する

Note

Container Insights ログは、コンテナー ネットワーク ログが収集されている場合にのみ、スロットルが行われます。 コンテナー ネットワーク ログの収集を有効にしていない場合、クラスターで調整は有効になりません。

Azure Monitor - Container Insights を使用すると、お客様は Azure Kubernetes Service (AKS) クラスターで生成されたログを収集できます。 ワークロードとログの設定によっては、生成されるログの量が膨大になり、制限やログの損失を引き起こす可能性があります。 この記事では、Container Insights でログが調整される直前の既定値について説明します。 お客様がこれらの値を変更する方法について説明します。 最後のセクションでは、サービス品質 (QoS) Grafana ダッシュボードで潜在的なスロットリングの問題を監視する方法について説明します。

既定の調整値

スロットリングは、次の値でデフォルトで有効にされています。

ConfigMap の設定 既定値 Description
throttle_enabled true 既定では true で、この値を調整して、ネットワーク フロー ログ メッセージを有効または無効にするかどうかを制御します。
throttle_rate 5000 既定では 5000 で、1 ~ 25,000 の範囲であり、時間枠内のログ レコードの数を制御するようにこの値を調整します。
throttle_window 300 既定では 300 で、平均を計算する間隔の数を制御するようにこの値を調整します。
throttle_interval 1s 既定では 1s で、"スリープ" 形式で表される時間間隔を制御するようにこの値を調整します。 例: 3s、1.5m、0.5h など。
throttle_print false 既定では 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 を適用すると、ポッドは数分以内に再起動されます。

kubectl apply -f agent_settings.networkflow_logs_config.yaml

Prometheus と Grafana を使用して QoS メトリックを監視する

Container Network ログを収集するログ アドオンは、調整とログ損失の監視に使用できる QoS メトリックを発行します。 このセクションでは、お客様が Prometheus の Azure Monitor マネージド サービスを使用してこれらのメトリックを収集し、Grafana で視覚化する方法について説明します。

Pre-requisites

構成手順

  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 スクレーピング ジョブを既存の ConfigMap に追加できます。それ以外の場合は、この ConfigMap を適用できます。

kubectl apply -f ama-metrics-prometheus-config-node.yaml 
  1. Grafana ダッシュボード JSON ファイルを Azure Managed Grafana インスタンスにインポートします。

  2. ConfigMap で enable_internal_metrics = true を構成する 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 ダッシュボードを次の図に示します。

Container Insights の QoS 監視を設定する最終的な結果を示す画像。