(Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session...
Transcript of (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session...
![Page 1: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/1.jpg)
From Beginner to Expert
Triangle Kubernetes Meetup
(Session #2)
![Page 2: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/2.jpg)
Who We Are?
2
Randy Tuttle
Co-Founder and CTO
Cloud Perceptions
email: [email protected]
@randyttl
SP VoIP, SP Video
OpenStacker since Folsom Release
OpenStack Austin Speaker
Triangle Kubernete Meetup Organizer
www.cloudperceptions.com
blog.cloudperceptions.com
Shixiong Shang
Founder and CEO
CloudPerceptions
email: [email protected]
@shshang
CCIE R&S, SP Video
OpenStacker since Folsom Release
OpenStack Vancouver/Austin Speaker
Triangle Kubernete Meetup Organizer
![Page 3: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/3.jpg)
• Introduce Kubernetes to local community (sharing knowledge, expertise)
• Stir up interest to use Kubernetes (products, solutions)
• Create a social platform (talents and business opportunities)
But…
• Stay vendor agnostic
What Do We Try To Achieve?
3
![Page 4: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/4.jpg)
• Kubernetes KnowledgeKey ConceptsArchitectures and Architecture Deep DiveHands-on (Installation and Configuration, CLI, API)DemoRoadmap
What Is Our Plan?
4
• Kubernetes Experience
Vendors (WeaveWorks, Red Hat OpenShift, Nuage Network, etc.)
Integrators (CloudPerceptions, etc.)
Users (YOU!)
Join us! Chime in (ideas, topics, speakers, food, refreshment, etc.) !!
![Page 5: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/5.jpg)
** Some content courtesy of Mandy Waite @tekgrrl @googlecloud #kubernetes
Kubernetes
![Page 6: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/6.jpg)
Everything at Google runs in containers:
• Gmail, Web Search, Maps, ...• MapReduce, batch, ...• GFS, Colossus, ...• Even Google’s Cloud Platform: VMs run
in containers!
We launch over 2 billion containers per week
![Page 7: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/7.jpg)
History of Kubernetes
Greek for “Helmsman”; also the root of the words “governor” and “cybernetic”
• Runs and manages containers
• Inspired and informed by Google’s experiences and internal systems
• Supports multiple cloud and bare-metal environments
• Supports multiple container runtimes
• 100% Open source, written in Go
Manage applications, not machines
![Page 8: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/8.jpg)
(BORG) Developer View
![Page 9: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/9.jpg)
(BORG) Developer View
![Page 10: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/10.jpg)
@tekgrrl @googlecloud #kubernetes
![Page 11: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/11.jpg)
Key Concepts
![Page 12: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/12.jpg)
Concepts Intro
![Page 13: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/13.jpg)
New Way: Containers
Fast application deployment
Portable
Sharable
Version control and reuse
Small footprint
![Page 14: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/14.jpg)
The atom of scheduling for containers
Represents an application specific logical host
Hosts containers and volumes
Each has its own routable (no NAT) IP addressEphemeral
• Pods are functionally identical and therefore ephemeral and replaceable
Pod
Web Server
Volume
Consumers
A pod of whales containers
![Page 15: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/15.jpg)
Pods
Pod
GitSynchronizer
Node.js App Container
Volume
Consumersgit RepoCan be used to group multiple containers & shared volumes
Containers within a pod are tightly coupled
Shared namespaces• Containers in a pod share IP, port and IPC
namespaces• Containers in a pod talk to each other through
localhost
![Page 16: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/16.jpg)
Replication Controller
Pod Pod
frontend
Pod
frontend
Pod Pod
Replication Controller
#pods = 1version = v2
show: version = v2
version= v1 version = v1 version = v2
Replication Controller
#pods = 2version = v1
show: version = v2 Behavior Benefits● Keeps Pods running
● Gives direct control of Pod #s
● Grouped by Label Selector
➔ Recreates Pods, maintains desired state
➔ Fine-grained control for scaling
➔ Standard grouping semantics
Replication Controllers
![Page 17: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/17.jpg)
Replication Controllers
Canonical example of control loops
Have one job: ensure N copies of a podif too few, start new ones
if too many, kill some
group == selector
Replicated pods are fungibleNo implied order or identity
Replication Controller- Name = “backend”- Selector = {“name”: “backend”}- Template = { ... }- NumReplicas = 4
API Server
3
Start 1 more
OK 4
How many?
How many?
![Page 18: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/18.jpg)
Client
Pod
Container
Pod
Container
Pod
ContainerContainer
A logical grouping of pods that perform the same function• Grouped by label selector
Load balances incoming requests across constituent podsChoice of pod is random but supports session affinity (ClientIP)
Gets a stable virtual IP and port• also a DNS nametype = FE
Services
Service
Label selector: type = FE
VIP
type = FE type = FE type = FE
![Page 19: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/19.jpg)
Pod Pod
frontend
Pod
frontend
Pod Pod
type = FEversion = v2
type = FE version = v2
● Metadata with semantic meaning
● Membership identifier
● The only Grouping Mechanism
Behavior Benefits➔ Allow for intent of many users (e.g. dashboards)
➔ Build higher level systems …
➔ Queryable by Selectors
Labels
Dashboard
selector: type = FE
Dashboard
selector: version = v2
![Page 20: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/20.jpg)
Bound to the Pod that encloses itLook like Directories to ContainersWhat and where they are determined by Volume TypeMany Volume options● EmptyDir● HostPath● nfs (and similar services)● Cloud Provider Block Storage
Volumes
Pod
![Page 21: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/21.jpg)
Architecture
![Page 22: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/22.jpg)
Kubernetes High-Level Architecture*
* from “Self-heal Your OpensStack Control Plane” presentation
![Page 23: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/23.jpg)
Thank You
![Page 24: (Session #2) Triangle Kubernetes Meetupfiles.meetup.com/19519977/Triangle Kubernetes Session 2.pdf · Triangle Kubernetes Meetup (Session #2) Who We Are? 2 Randy Tuttle Co-Founder](https://reader034.fdocuments.us/reader034/viewer/2022052306/5f091db67e708231d4254df8/html5/thumbnails/24.jpg)
K8s Master
API Server
Dash Board
scheduler
Kubelet Kubelet Kubelet Kubelet
Container Registry
etcdControllers
web browserskubectl web browsers
Config file
Image