AKS で ContainerLogV2 スキーマを試してみた
AKS にて、ContainerLogV2 スキーマがプレビュー提供されています。
気になったので試してみました。
環境・準備
- Azure Kubernetes Service (v1.22.6)
- Windows 10
- Azure CLI (v2.37.0)
やってみた
まずは V1 での確認
まずは V1 の状態を確認してみます。下記の手順に従い、Container insights を有効にした AKS クラスターを作成します。
AKS 環境に接続できたら、おなじみ azure-vote をデプロイして、出力されたログを確認します。
kubectl apply -f azure-vote.yaml
しばらく後に [Kubernetes サービス] - [監視] - [ログ] を確認すると、ContainerLog
というテーブルが作成されているはずです。スキーマは下記のようになっています。
V2 に変更!
続いて、V2 を使用するように変更します。
冒頭の手順にあるように、新しい ConfigMap をダウンロードし、下記の個所を変更 (コメントアウトを外し、v2
に書き換える) します。
[log_collection_settings.schema]
# In the absence of this configmap, default value for containerlog_schema_version is "v1"
# Supported values for this setting are "v1","v2"
# See documentation at https://aka.ms/ContainerLogv2 for benefits of v2 schema over v1 schema before opting for "v2" schema
containerlog_schema_version = "v2"
そして、この ConfigMap をデプロイ。
kubectl apply -f container-azm-ms-agentconfig-logv2.yaml
クラスター内の omsagent の Pod が再起動されるとのことで、眺めてみたところ再起動しました。
> kubectl get pods -n kube-system -w
NAME READY STATUS RESTARTS AGE
azure-ip-masq-agent-2plxr 1/1 Running 0 12m
azure-ip-masq-agent-9mfwp 1/1 Running 0 13m
cloud-node-manager-cmb62 1/1 Running 0 12m
cloud-node-manager-zjn68 1/1 Running 0 13m
coredns-autoscaler-7d56cd888-4vwp5 1/1 Running 0 14m
coredns-dc97c5f55-rksj5 1/1 Running 0 11m
coredns-dc97c5f55-th5kg 1/1 Running 0 14m
csi-azuredisk-node-4sgb8 3/3 Running 0 13m
csi-azuredisk-node-kv4sb 3/3 Running 0 12m
csi-azurefile-node-l94sw 3/3 Running 0 13m
csi-azurefile-node-vflsd 3/3 Running 0 12m
kube-proxy-47blq 1/1 Running 0 13m
kube-proxy-jqzdn 1/1 Running 0 12m
metrics-server-64b66fbbc8-h7nmg 1/1 Running 0 14m
omsagent-js9z4 2/2 Running 0 13m
omsagent-nhxvq 2/2 Running 0 12m
omsagent-rs-7c5994564c-q6qjj 1/1 Running 0 14m
tunnelfront-5c8bd67947-vw5fg 1/1 Running 0 14m
omsagent-js9z4 2/2 Running 1 (1s ago) 15m
omsagent-js9z4 2/2 Running 2 (1s ago) 16m
omsagent-rs-7c5994564c-q6qjj 1/1 Running 1 (1s ago) 17m
そのうえで、コンテナのログ出力のため azure-vote を再デプロイ。
kubectl delete -f azure-vote.yaml
kubectl apply -f azure-vote.yaml
しばらく後に [Kubernetes サービス] - [監視] - [ログ] を確認すると、ContainerLogV2
というテーブルが作成されています。スキーマは下記のようになっています。
切り替わりの動作が少し気になっていましたが、新しいテーブルが作成されるということで、古いログも判別しやすく残った状態になっていました。
変わったところ
公式ドキュメントによると、スキーマの項目としては下記が追加になっているとのこと。
- ContainerName
- PodName
- PodNamespace
前述の画像からも分かりますね~。
また、フットプリントも 10% ほど削減されているそうです。
まとめ
ということで、無事動作確認できました!
ログを集約できるのですごく便利な仕組みですが、Log Analytics Workspace の使用量には注意が必要ですね。
Discussion