Slide 1

Slide 1 text

github.com/google/cadvisor Vishnu Kannan, Victor Marmol, Rohit Jnagal, Nan Deng

Slide 2

Slide 2 text

Google Confidential and Proprietary Why cAdvisor? ● Resource isolation on a multi-tenant system is difficult ● To understand resource utilization and performance of containers today, one needs to: ○ Understand various (complicated) Linux APIs ○ Understand different container solutions

Slide 3

Slide 3 text

Google Confidential and Proprietary What is cAdvisor? ● aka ‘Container Advisor’. Built for containers. ● Give users an understanding of container resource usage and performance ● Simple, lightweight, standalone, open source ● Supports Docker containers natively! ● Written entirely in Go!

Slide 4

Slide 4 text

Google Confidential and Proprietary Demo

Slide 5

Slide 5 text

Google Confidential and Proprietary Internal Architecture Container Manager Web UI Storage driver Metrics collection driver InfluxDB In memory Google BigQuery REST API Docker Raw (systemd, lxc, lmctfy)

Slide 6

Slide 6 text

Google Confidential and Proprietary Integration with other Technologies ● Google Container VMs - http://goo.gl/GntKod ○ Will be included in all Container VMs ● Kubernetes ○ Included in all Kubernetes minions (nodes) ○ WIP: Use cAdvisor data for resource aware scheduling ● Deployable as a Docker image ○ docker run --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro --detach=true --name=cadvisor --publish=8080:8080 \ google/cadvisor:latest

Slide 7

Slide 7 text

Google Confidential and Proprietary Future Work ● More stats ● Advice on performance degradation ● User configurable notifications ● Enable cluster scheduling ●

Slide 8

Slide 8 text

Google Confidential and Proprietary Contact Us ● IRC: #google-containers on Freenode ● Repo: github.com/google/cadvisor ● Mailing list: [email protected] ● Patches are always welcome!

Slide 9

Slide 9 text

Google Confidential and Proprietary Summary ● Built for containers ● Works seamlessly with Docker ● Runs in a docker container docker run --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro --detach=true --publish=8080:8080 --name=cadvisor \ google/cadvisor:latest ● Enables cluster scheduling