kubernetes 1.3 - highlights

Post on 11-Jan-2017

194 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Kubernetes 1.3What’s New

Matt BatesCo-founder @JetstackHQ

5000+COMMITS

350+ CONTRIBUTORS

Headlines of 1.3

- Cluster Federation- PetSet- Init Containers- Rktnetes 1.0- Scalability- Minikube

Init Containers (#23567)

– Alpha feature– Run container(s) before the long-running main

pod container(s) are launched– Executed in sequential order– Only if init containers succeed do the main

container(s) start– Use cases:

– download files / clone repos– write out config files– etc

init-1 init-2

main-container

Stateful services (1.2)

- ReplicaSets (nee controllers) ensure N replicas of a pod template exist

- Only attribute that differs between pods is the name- Therefore same volume(s)

- Pods have no stable network identity other than an assigned pod IP- e.g. no fixed and predictable hostname

- Best for ‘shared-nothing, zero-coordination systems’

Photo credit: http://delectabledeliciousness.blogspot.co.uk

PetSet (#18016)

– New Alpha resource (apps/v1alpha1)– Stable and unique identity associated

with that instance of the storage– Consistent network identity– Predictable number of instances to ensure

that systems can form a quorum– Ability to migrate from node to node with

stable network identity (DNS name)– Scale up/down in a controlled fashion

PetSet (#18016)

PetSet pet-0.pet.default...

PetSetController

(KCM)

PV-0 PVC-0

API Server

Watches

Creates claim from template

BindsMounts

Creates and waits until ready

Service

1:1 mapping

PetSet (#18016)

PetSet pet-0.pet.default...

PetSetController

(KCM)

PV-0 PVC-0

API Server

Servicepet-1.

pet.default... PV-1 PVC-1

pet-2.pet.default... PV-2 PVC-2

eu-west-1beu-west-1a eu-west-1c

Recap: Cross-AZ clusters

Cross-AZ clusters (Ubernetes ‘Lite’) baked into 1.2

worker worker worker

Control Plane$ kubectl describe node worker1

...failure-domain.beta.kubernetes.io/region=eu-west1

failure-domain.beta.kubernetes.io/zone=eu-west1-a...

Cluster Federation/Ubernetes (#19313)

eu-central-1eu-west-1

worker worker worker

Cluster A Control Plane

worker worker worker

Cluster B Control Plane

Cluster Federation/Ubernetes (#19313)

eu-central-1eu-west-1

worker worker worker

Cluster A Control Plane

worker worker worker

Cluster B Control Plane

Federation Control PlaneFederation Controller Manager Federation API Server

Cluster Federation/Ubernetes (#19313)

– Focused on Federated Services at this stage– Create a Service at the Federation API Server:

– Creates matching Kubernetes Services in every cluster– Monitors the health of service “shards”– Manages DNS records in a public DNS provider (ie Google Cloud

DNS or AWS Route 53)– Note: backend Pods are currently added directly against the cluster API

endpoints

Federation Control PlaneFederation Controller Manager Federation API Server

DNS Provider

(Route 53, Google DNS)

kube-dnskube-dns

myservice.mynamespace.myfederation

myservice.mynamespace.myfederation.svc.jetstack.net

myservice.jetstack.net

myservice.mynamespace.myfederation.svc.eu-west-1.jetstack.net

myservice.mynamespace.myfederation.svc.eu-central-1.jetstack.net

Federation Control PlaneFederation Controller Manager Federation API Server

DNS Provider

(Route 53, Google DNS)

kube-dnskube-dns

myservice.jetstack.net

eu-west-1.jetstack.net eu-central-1.jetstack.net

rktnetes 1.0

– Kubernetes was built to ultimately be container runtime-agnostic

– First stable release that integrates the CoreOS rkt runtime, that can be used in-place of Docker

– Why Rkt?– rkt implements the open App Container Spec– Compatibility with init systems such as systemd

(nspawn)– Ability to launch VMs in pods for greater isolation

guarantee (using LKVM stage1)

Scalability

– Supports 2000-node clusters with decreased end-to-end pod startup time

– Under the bonnet, uses Protocol Buffer-based serialization in the API instead of JSON

Minikube

– Minikube starts a single node kubernetes cluster locally for purposes of development and testing.

– Packages and configures a Linux VM, Docker and all Kubernetes components, optimized for local development.

– Supports:– DNS– NodePorts– ConfigMaps and Secrets– Dashboards

– Does not support cloud-provider functionality (LoadBalancers, PersistentVolumes, Ingress)

More Hidden Gems..

https://blog.jetstack.io/blog/kubernetes-1-3-hidden-gems

Matt Batesbates@jetstack.io | @mattbates25

www.jetstack.io

hello@jetstack.io

@JetstackHQmeetup.com/contain

top related