🎼

[AKS] ContainerLogV2 の拡張スキーマを試してみた

2024/12/15に公開

AKS の Container Insights (V2) にて、取得可能なログを拡張できる機能が GA されていました。

本機能を触ってみましたので、残しておこうと思います。

AKS クラスターの作成

まず、Container Insights が有効な新しい AKS クラスターを作成します。

PowerShell
$RGNAME = "<リソースグループ名>"
$CLNAME = "<クラスター名>"
az group create --name $RGNAME --location japaneast
az aks create --enable-azure-monitor-metrics `
  --name $CLNAME --resource-group $RGNAME

過去に記事も公開していますので、あわせてご覧ください!

出力状況の確認

サンプルアプリとして、クイックスタートの azure-vote ... と思いましたが、今は変わっているんですね!

こちらにある azure-store-quickstart をデプロイしておきます。

kubectl apply -f .\azure-store-quickstart.yaml

デプロイ後しばらくしてから、AKS の「監視」 - 「ログ」にて「ContainerLogV2」テーブルがあることを確認しておきます。

ConfigMap による Container Insights の追加構成

ドキュメントを参考に、Kubernetes メタデータの取得の構成を実施してみます。

上記に記載のリンク (こちら) からダウンロートした元ファイルのうち、下記の箇所のコメントアウトを外した ConfigMap を container-azm-ms-agentconfig.yaml として作成します。

[log_collection_settings.metadata_collection]
    enabled = true
    include_fields = ["podLabels","podAnnotations","podUid","image","imageID","imageRepo","imageTag"]

そして、AKS クラスターへデプロイ。

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

構成の変更が有効になるまでに数分かかる場合があります。 その後、クラスター内のすべての Azure Monitor エージェント ポッドが再起動します。 すべての Azure Monitor エージェント ポッドが同時に再起動するのではなく、ローリング再起動で行われます。 再起動が完了すると、次の結果に類似したメッセージが表示されます。

とのことで、数分待ってみます☕

kubectl get pods -n kube-system -w
...
ama-logs-72twk                                 3/3     Running   3 (1s ago)      11m
ama-logs-72twk                                 3/3     Running   4 (1s ago)      11m
ama-logs-7pl9s                                 3/3     Running   3 (1s ago)      12m
ama-logs-hgg84                                 3/3     Running   3 (1s ago)      12m
ama-logs-7pl9s                                 3/3     Running   4 (1s ago)      12m
ama-logs-hgg84                                 3/3     Running   4 (1s ago)      12m
ama-logs-rs-756b78fdb4-95xlp                   2/2     Running   2 (1s ago)      13m

再起動できたようです。念のため、サンプルアプリは再デプロイしておきます。

> kubectl delete -f .\azure-store-quickstart.yaml
deployment.apps "rabbitmq" deleted
...

> kubectl apply -f .\azure-store-quickstart.yaml
deployment.apps/rabbitmq created
configmap/rabbitmq-enabled-plugins created
service/rabbitmq created
deployment.apps/order-service created
service/order-service created
deployment.apps/product-service created
service/product-service created
deployment.apps/store-front created
service/store-front created

しばらく後に「監視」 - 「ログ」画面で KQL でクエリを投げてみると・・・

表示されました!

imageTagpodLabels といった情報が含まれるようになるは嬉しいですね!

おわりに

上述の通り、既定の Container Insights ログに追加して情報が取得できるようになっています。

他にも機能追加がされているので、引き続き触ってみようと思います🤗

Discussion