containers, clusters and kubernetes - brendan burns - defrag 2014
TRANSCRIPT
![Page 1: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/1.jpg)
Containers, Clusters & Kubernetes
Brendan BurnsStaff Software Engineer
![Page 2: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/2.jpg)
Motivations
Make writing BigTable a CS 101
Exercise
![Page 3: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/3.jpg)
What is a container?
What is a container?
● Lightweight Linux environment● Hermetically sealed, deployable
application● Introspectable, runnable artifact● Recently popularized by Docker
![Page 4: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/4.jpg)
What is a cluster?
![Page 5: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/5.jpg)
The transition to logical compute
VM
Logical Compute Substrate
Container
Container
Container
Container
Container
Container
Container
Container
Container
VM VM VM VM VM VM VM VMVM
Container
Container
Container
Container
Container
Container
Container
Container
Container
![Page 6: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/6.jpg)
Modular Application Design
VM
Database
Dependencies
WebServer
MiddleWareVM
DatabaseContainer
Dependency
WebServerContainer
Dependency
MiddlewareContainer
Dependency
vs.
![Page 7: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/7.jpg)
Modular Scaling
VMDatabase
Dependencies
WebServerMiddleWare
DatabaseContainer
Dependency
WebServerContainer
Dependency
MiddlewareContainer
Dependency
vs.
VM
Dependencies
WebServerMiddleWare
Database
VM
Dependencies
WebServerMiddleWare
Database
VM VM
MiddlewareContainer
Dependency
WebServerContainer
Dependency
WebServerContainer
Dependency
![Page 8: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/8.jpg)
What is Kubernetes?
● Open source container cluster manager● Inspired by the technology that drives
● Runs anywhere:○ Public Cloud○ Private Cloud○ Bare Metal
● Strong ecosystem○ Partners: Red Hat, VMWare, CoreOS,
Microsoft, ...○ Community: Client libs, integration, ...
![Page 9: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/9.jpg)
The Cloud Dichotomy
IaaS
PaaS
![Page 10: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/10.jpg)
A brief history of programming languages
Assembly
PostScript
Assembly
![Page 11: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/11.jpg)
A brief history of programming languages
Assembly
PostScript
AssemblyObject Oriented Languages
![Page 12: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/12.jpg)
The Cloud Dichotomy
PaaS
IaaS
IaaSCaaS
![Page 13: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/13.jpg)
Components
![Page 14: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/14.jpg)
Kubernetes Pod
Components: Pods
Container-1 Container-2
Shared Volume(s)
![Page 15: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/15.jpg)
Kubernetes Pod
Components: Sidecars
Serving Container
Git Sync Container
Shared Volume
Git Repo
Sidecars Extend and Enhance
![Page 16: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/16.jpg)
Components: Adapters
Kubernetes Pod
Redis Service Redis Adapter
Kubernetes PodMongoDB Service
MongoDB Adapter
Kubernetes PodMySQL Service
MySQL Adapter
Monitoring Service
Adapters Normalize and Abstract
![Page 17: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/17.jpg)
Kubernetes Pod
Components: Ambassadors
Frontend Container
MySQL Ambassador
Write Master
Read Slaves
Container Container Container
Container
localhost
Ambassadors Proxy and Represent
![Page 18: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/18.jpg)
Encapsulation
![Page 19: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/19.jpg)
Abstractions, ftw! : Reliability
{Container, Health Check}
Kubernetes
Container
Web: http://<container>/some/path/to/healthShell: exec /some/path/health.shTCP: open <container> <port>
![Page 20: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/20.jpg)
Abstractions, ftw! : Replication
{Template, Identifier, Num. Replicas}
Replication Controller
Container Container Container Container
![Page 21: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/21.jpg)
Abstractions, ftw! : Services
{IP:Port, Identifier, Name}
DiscoverableService
Container Container Container Container
DNS
Service IPContainer
![Page 22: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/22.jpg)
Patterns
![Page 23: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/23.jpg)
Patterns and Interfaces: Master Election
Container Container Container Container
Cluster Manager
Lock Service
http://<container>/healthz
![Page 24: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/24.jpg)
Patterns and Interfaces: Master Election
Container Container Container Container
Lock Service
Cluster Manager
http://.../master?master=container1
![Page 25: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/25.jpg)
Patterns: Sharded HTTP Service
Container Container Container
Kubernetes Service
http://foo.com/beta http://foo.com/gammahttp://foo.com/alpha
http://foo.com/alphahttp://foo.com/betahttp://foo.com/gamma
![Page 26: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/26.jpg)
Patterns: Hot Sharded HTTP Service
Container Container Container
http://foo.com/alpha http://foo.com/betahttp://foo.com/gamma
http://foo.com/alpha
http://foo.com/alpha @ 20 qpshttp://foo.com/beta @ 5 qpshttp://foo.com/gamma @ 5 qps
Kubernetes Service
![Page 27: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/27.jpg)
http://.../api/get?key=<key>http://.../api/set?key=<k>&val=<v>
Patterns: Bigtable
Container
Kubernetes Service
http://.../manage/shard/<shard>/splithttp://.../manage/shard/<shard>/mergehttp://.../manage/shard/<shard>/loadhttp://.../manage/shard/<shard>/unload
Data Interface
Management Interface
![Page 28: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/28.jpg)
We’re building an os for the datacenter.
Join us!#google-containers on FreeNodehttps://github.com/GoogleCloudPlatform/kuberneteshttps://cloud.google.com/container-engine/
![Page 29: Containers, Clusters and Kubernetes - Brendan Burns - Defrag 2014](https://reader034.vdocuments.mx/reader034/viewer/2022051414/55a6865d1a28ab31138b45c4/html5/thumbnails/29.jpg)
Stop