(session #2) triangle kubernetes meetupfiles.meetup.com/19519977/triangle kubernetes session...

24
From Beginner to Expert Triangle Kubernetes Meetup (Session #2)

Upload: others

Post on 19-Jun-2020

42 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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

• 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

• 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

** 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

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

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

(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

(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

@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

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

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

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

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

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

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

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

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

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

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

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

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

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

K8s Master

API Server

Dash Board

scheduler

Kubelet Kubelet Kubelet Kubelet

Container Registry

etcdControllers

web browserskubectl web browsers

Config file

Image