[AKS] ContainerLogV2 の拡張スキーマを試してみた
AKS の Container Insights (V2) にて、取得可能なログを拡張できる機能が GA されていました。
本機能を触ってみましたので、残しておこうと思います。
AKS クラスターの作成
まず、Container Insights が有効な新しい AKS クラスターを作成します。
$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 でクエリを投げてみると・・・
表示されました!
imageTag
や podLabels
といった情報が含まれるようになるは嬉しいですね!
おわりに
上述の通り、既定の Container Insights ログに追加して情報が取得できるようになっています。
他にも機能追加がされているので、引き続き触ってみようと思います🤗
Discussion