cAdvisor - oomichi/try-kubernetes GitHub Wiki

kubelet のコードに cadvisor のディレクトリがあったので、まずは概要を理解する。

公式サイト https://github.com/google/cadvisor より

cAdvisor

cAdvisor (Container Advisor) はコンテナ利用者に対して、リソースの利用状況、稼働しているコンテナの性能的特徴などの情報を提供する。 cAdvisor は稼働デーモンであり、稼働しているコンテナの情報の収集、統合、プロセッシング、そして外部への出力を行っている。 特に、各コンテナ向けに、cAdvisor はリソース分離パラメータ、リソース利用とネットワーク利用状況の履歴を保持する。 これらのデータはコンテナによって、machine-wide に提供される。

cAdvisor はDocker コンテナをネイティブにサポートしており、他のコンテナ技術も同様にサポートするべきである。 現在、多くのコンテナ技術をサポートするために挑戦しており、サポートしてほしいものがあればぜひ Issue 登録してほしい。 cAdvisor コンテナ抽象化は Imctfy をベースにしており、コンテナたちは階層的にネストされている。

Quick Start: Dockerコンテナ内で cAdvisor を実行する

cAdvisorをあなたのマシンでちょっと試してみたい場合は、cAdvisorを始めるのに必要なすべてを含んでいる Docker イメージがあるのでそれを使ってください。 マシンのすべてをモニタリングするための単一の cAdvisor を走らせることができます。

VERSION=v0.36.0 # use the latest release version from https://github.com/google/cadvisor/releases
sudo docker run \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:ro \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  --volume=/dev/disk/:/dev/disk:ro \
  --publish=8080:8080 \
  --detach=true \
  --name=cadvisor \
  --privileged \
  --device=/dev/kmsg \
  gcr.io/cadvisor/cadvisor:$VERSION

cAdvisor はバックグランド実行され、http://localhost:8080 でリッスンしています。 このセットアップには cAdvisorが必要とする Docker state 情報を格納するディレクトリ作成も含まれています。

Kubernetes向けには、cAdvisor は daemonset として実行可能です。 どのように実行するのかは、 https://github.com/google/cadvisor/tree/master/deploy/kubernetes を参考にしてください。

Remote REST API and Clients

cAdvisor は生の state 情報と加工済み state 情報の両方を Rest API で提供します。 詳しくはAPIドキュメントを参考にしてください。