高スケール モードは、Azure Kubernetes Service (AKS) のクラスター ノードからコンテナー コンソール (stdout と stderr) のログを高スループットで収集できる Container Insights の機能です。 この機能により、1 ノードあたり最大 50,000 ログ/秒を収集できます。
注
現在、この機能はパブリック プレビュー段階にあります。 詳細については、 Microsoft Azure プレビューの追加使用条件を参照してください。
概要
高スケール モードが有効な場合、Container Insights は複数の構成変更を実行し、全体的なスループットが向上します。 これには、アップグレードされたエージェントと、スケールが改善された Azure Monitor データ パイプラインの使用が含まれます。 これらの変更はすべて Azure Monitor によってバックグラウンドで行われ、機能を有効にした後に入力や構成を行う必要はありません。
高スケール モードはデータ収集レイヤーのみに影響します。 Container Insights の残りのエクスペリエンスは変わらず、ログは同じ ContainerLogV2
テーブルに取り込まれます。 同じデータが収集されているため、既存のクエリやアラートは引き続き機能します。
サポートされるログ スループットを最大にするには、AKS クラスター ノードに 16 CPU コア以上のハイエンドVM SKU を使用する必要があります。 ロー エンド VM SKU を使用すると、ログのスループットに影響します。
クラスターは条件を満たしていますか?
高スケール ログ収集は、Kubernetes クラスターのノードあたり 2,000 ログ/秒 (または 2 MB/秒) を超えるログを送信する環境に適しており、ノードあたり最大 50,000 ログ/秒を送信できるように設計およびテストされています。 次のログ クエリを使用して、クラスターが大規模なログ収集に適しているかどうかを判断します。
1 秒あたりとノードあたりのログ
ContainerLogV2
| where _ResourceId =~ "<cluster-resource-id>"
| summarize count() by bin(TimeGenerated, 1s), Computer
| render timechart
1 秒あたりとノードあたりのログ サイズ (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 プレビュー 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 |
21Vianet によって運営される Microsoft Azure クラウド | <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.cn |
443 |
Azure Government クラウド | <dce-name>-<suffix>.<cluster-region-name>-<suffix>.ingest.monitor.azure.us |
443 |
このエンドポイントは、クラスターで使用されるデータ収集ルール (DCR) のデータ収集エンドポイント(DCE) からのログ インジェスト エンドポイントです。 この DCE は、クラスターのハイ スケール モードを有効にし、プレフィックス MSCI-ingest
で始まるときに作成されます。
制限事項
プレビュー リリース期間中、次のシナリオはサポートされていません。 これらは、機能の一般公開時に対応される予定です。
- Arm64 ノードを使用した AKS クラスター
- Azure Arc 対応 Kubernetes
- 信頼できる証明書を使用した HTTP プロキシ
- Azure portal、Azure Policy、Terraform、Bicep を通じたオンボーディング
- AKS Insights ポータル エクスペリエンスの監視設定を通じた構成
- 既存の Container Insights からの自動移行
大規模なログ収集を有効にする
次のセクションの 2 つの手順に従って、クラスターの高スケール モードを有効にします。
注
高ログ スケール モードでは、インジェスト用にデータ収集エンドポイント (DCE) が必要です。 インジェスト DCE は、クラスターにオンボードする場合に、各クラスターに対してプレフィックス MSCI-ingest
付きで作成されます。 Azure Monitor プライベート リンク スコープが構成されている場合、プレフィックス MSCI-config
を含む構成 DCE も作成されます。
configmap を更新する
最初の手順では、クラスターの configmap を更新して、Container Insights ama-logs deamonset ポッドを高スケール モードで実行するように指示します。
「ConfigMap の構成と展開」のガイダンスに従って、クラスターの ConfigMap をダウンロードして更新します。
agent-settings
で次の設定を使用して、高スケール モードを有効にします。[agent_settings.high_log_scale] enabled = true
内部メトリックの収集を有効にして、以下で説明する QoS Grafana ダッシュボードに
agent-settings
の下の次の設定を設定します。[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-*
ポッドが自動的に再起動され、ama-logs daemonset pods が高スケール モードで実行されるように構成されます。
監視アドオンの高スケール モードを有効にする
次の Azure CLI コマンドを使用して、高スケール モードで監視アドオンを有効にし、AKS 構成に応じて監視アドオンの高スケール ログ モードを有効にします。
注
CLI の代わりに ARM テンプレートを使用して、監視アドオンの高スケール モードを有効にすることができます。 ARM テンプレートを使用した Container Insights の有効化に関するガイダンスについては、Container Insights の有効化に関するページを参照してください。 高スケール モードを有効にするには、「Microsoft-ContainerLogV2-HighScale
」の説明に従って、Microsoft-ContainerLogV2
パラメーターで streams
の代わりに を使用します。
既存の 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 Service (AKS) クラスターを作成する」を参照してください。 追加のパラメーター --enable-high-scale-mode
と --ampls-resource-id
を使用して、Azure Monitor プライベート リンク スコープ リソース ID で高ログ スケール モードを構成します。
移行
クラスターに対して Container Insights が既に有効になっている場合は、それを無効にしてから、高スケール モードで再度有効にする必要があります。
- 高スケール モードでは別のデータ パイプラインが使用されるため、パイプライン エンドポイントがファイアウォールやその他のネットワーク接続によってブロックされないようにする必要があります。
- 高スケール モードでは、データ収集のための標準的な DCR に加えて、インジェストのためのデータ収集エンドポイント (DCE) が必要です。
Microsoft.ContainerLogV2
を使用する DCR を作成した場合、これをMicrosoft.ContainerLogV2-HighScale
に置き換えなければ、データが重複します。 また、DCR でまだ DCE を使用していない場合は、インジェスト用に DCE を作成し、DCR にリンクする必要があります。 依存関係については、Azure Resource Manager 経由の Container Insights のオンボーディングを参照してください。
Prometheus と Grafana を使用して QoS メトリックを監視する
生成されるログの量が多い場合は、制限やログの損失につながる可能性があります。 スロットリング パラメーターの設定やログ損失の監視についてのガイダンスは、Container Insightsに関するスロットリングの設定に関する記事を参照してください。
次のステップ
- 高スケール モードに関するフィードバックや問題がある場合は、https://aka.ms/cihsfeedback で共有してください。