hands-on k8s: deployments, pods and fun

11
Hands-on K8s: Deployments, Pods and Fun M.-Leander Reimer (@LeanderReimer)

Upload: qaware-gmbh

Post on 12-Apr-2017

191 views

Category:

Data & Analytics


0 download

TRANSCRIPT

Page 1: Hands-on K8s: Deployments, Pods and Fun

Hands-on K8s: Deployments, Pods and FunM.-Leander Reimer (@LeanderReimer)

Page 2: Hands-on K8s: Deployments, Pods and Fun

HANDS-ON K8S: DEPLOYMENTS, PODS AND FUN

THE ZWITSCHER SHOWCASE APPLICATION

KUBERNETES

Page 3: Hands-on K8s: Deployments, Pods and Fun

HANDS-ON K8S: DEPLOYMENTS, PODS AND FUN

RUN KUBERNETES ON LOCAL MACHINE OR ON TURN-KEY CLOUD SOLUTIONSexport KUBERNETES_PROVIDER=vagrant

export NUM_NODES=1

curl -sS https://get.k8s.io | bash

export KUBERNETES_PROVIDER=aws

export KUBE_AWS_ZONE=eu-central-1a

export NODE_SIZE=t2.small

curl -sS https://get.k8s.io | bash

export KUBE_GCE_ZONE=europe-west1-d

export NUM_NODES=4

curl -sS https://get.k8s.io | bash

Page 4: Hands-on K8s: Deployments, Pods and Fun

HANDS-ON K8S: DEPLOYMENTS, PODS AND FUN

DOCKERIZE IT

ZWITSCHER-BOARD

ZWITSCHER-CONFIG

ZWITSCHER-EDGE

ZWITSCHER-EUREKA

ZWITSCHER-MONITOR

ZWITSCHER-SERVICE

DEBI

AN8-

JRE8

DEBI

AN:8

Page 5: Hands-on K8s: Deployments, Pods and Fun

POD DeploymentPOD Deployment

POD Deployment

HANDS-ON K8S: DEPLOYMENTS, PODS AND FUN

KUBERNETIZE IT

ZWITSCHER-BOARD

ZWITSCHER-CONFIG

ZWITSCHER-EDGE

ZWITSCHER-EUREKA

ZWITSCHER-MONITORZWITSCHER-SERVICEPOD Deployment POD Deployment POD Deployment

SERVICE SERVICE SERVICE

SERVICE SERVICE

SERVICE

Page 6: Hands-on K8s: Deployments, Pods and Fun

HANDS-ON K8S: DEPLOYMENTS, PODS AND FUN

K8S DEPLOYMENT DESCRIPTOR EXAMPLEapiVersion: extensions/v1beta1 kind: Deployment metadata: name: zwitscher-service spec: replicas: 1 template: metadata: labels: zwitscher: service spec: containers: - name: zwitscher-service image: "qaware-oss-docker-registry.bintray.io/zwitscher/zwitscher-service"

resources: requests: memory: "256Mi" cpu: "250m" limits: memory: "512Mi" cpu: "500m" ports:

- containerPort: 8080 livenessProbe: httpGet: path: /admin/health port: 8080 initialDelaySeconds: 90 timeoutSeconds: 5 env: - name: EUREKA_HOST value: zwitscher-eureka

1 Docker Container

Health Checks

Resource Limits

Page 7: Hands-on K8s: Deployments, Pods and Fun

HANDS-ON K8S: DEPLOYMENTS, PODS AND FUN

K8S SERVICE DESCRIPTOR EXAMPLE

apiVersion: v1 kind: Service metadata: name: zwitscher-service labels: zwitscher: service spec: # if your cluster supports it, uncomment the following to automatically create # an external load-balanced IP for the frontend service. Do not use locally. # type: LoadBalancer # sessionAffinity: ClientIP ports: - port: 8080 selector: zwitscher: service

Page 8: Hands-on K8s: Deployments, Pods and Fun

HANDS-ON K8S: DEPLOYMENTS, PODS AND FUN

REMOTE CONTROL KUBERNETES USING A NOVATION LAUNCHPAD

Kubernetes Deployment

Running Pods

Selected Deployment

Up/Down & Scale

Click to Start/Stop

Page 9: Hands-on K8s: Deployments, Pods and Fun

DEMO TIME

Page 10: Hands-on K8s: Deployments, Pods and Fun

HANDS-ON K8S: DEPLOYMENTS, PODS AND FUN

ALTERNATIVE: ZWITSCHERN WITH NATIVE K8S INFRASTRUCTURE

ZWITSCHER-BOARD

EDGE-SERVER: SERVICES & INGRES

ZWITSCHER-MONITORZWITSCHER-SERVICEPOD Deployment POD Deployment POD Deployment

SERVICE SERVICE SERVICE

CONFIGURATION & COORDINATION: ETCDDISCOVERY: DNS

Page 11: Hands-on K8s: Deployments, Pods and Fun

https://slideshare.net/qawarehttps://github.com/qaware/cloud-native-zwitscher https://github.com/qaware/kubepad