LoginSignup
1
0

More than 1 year has passed since last update.

Kubernetesのログに混乱する件

Last updated at Posted at 2021-12-12

これなに?

どんな時にどのログを見ればいいのかはっきり理解できてないので、まずは根本的なkubernetesのログの種類をまとめておこう。

[混乱の理由] 名前が紛らしい

コンテナログ、コンポーネントログ、システムコンポーネントログ、ノートログ、アプリケーションログ、クラスターログ。
いろんなサイトでログを説明してくれてるけど、みな少しづづ呼び名が違ったりしてどれがどれだか混乱。(コンポーネントログ、と言ってもどれもある意味コンポーネントログな気がするし。。)

[整理するため]大きく5種類のログにわけられそう

  • コンテナログ(aka アプリケーションログ、コンポーネントログ)
  • クラスタログ(aka システムコンポーネントログ)
  • ノードログ
  • イベントログ
  • 監査ログ

コンテナログ

アプリのログ。

$ kubectl logs {app-name}

クラスタログ

コンテナ内で走っているコンポーネントログ
k8sのデフォルトサービス/コンポーネントの etcd, kube-apiserver, kube-scheduler, kube-proxy, kube-controller-managerなど

ノードログ

クラスタログの一部だけど、コンテナ外、OSレベルで走ってるシステムコンポーネントのログ。kubeletやcontainer runtime等

$ journalctl

イベントログ

リソースの変化やなぜPodが失敗したかなどのエラーログがみれる
namespaceのイベントログ

$ kubectl get events -n <namespace>

Podのイベントログ

$ kubectl describe pod <pod-name>

監査ログ

なにが、いつ、だれによって、どうやって起きた?
どこでみつかり、どこで始まり、どうなっった?
audit policyで設定する
https://kubernetes.io/docs/tasks/debug-application-cluster/audit/#audit-policy

ちなみに

k8sのオフィシャルページにはコントロールプレーンコンポーネントについての説明があり、以下が含まれるらしい(https://kubernetes.io/ja/docs/concepts/overview/components/)

etcd, kube-apiserver, kube-scheduler, kube-controller-manager

これkube-proxy以外がクラスタログと同じ。kube-proxyはkubeletと同じノードコンポーネントにカテゴライズされてる。それでもube-proxyはOSレベルで走ってないので、ログ的にはノードログではない。。??

まとめ

監査ログはちょっと外とちがう感じがするけど、調査するのにはこれらの情報は役に立ちそう。今後、実際のログの取得の方法とかもふくめもう少し掘り下げていこうと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0