123
Wie Chefkoch.de mit Containern arbeitet ein Vortrag von Per Bernhardt

Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Embed Size (px)

Citation preview

Page 1: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Wie Chefkoch.demit Containernarbeitetein Vortrag von Per Bernhardt

Page 2: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Mein Name ist Perhttp://perprogramming.de

Ich bin ein Chefkochhttp://www.chefkoch.de

Page 3: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Agenda

Page 4: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Agenda1. Container? WTF?

Page 5: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Agenda1. Container? WTF?

2. Kubernetes

Page 6: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Agenda1. Container? WTF?

2. Kubernetes3. Herausforderungen

Page 7: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Agenda1. Container? WTF?

2. Kubernetes3. Herausforderungen

4. Fazit

Page 8: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Agenda1. Container? WTF?

2. Kubernetes3. Herausforderungen

5. Fragen??

4. Fazit

Page 9: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Container? WTF?

Page 10: Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Page 11: Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Page 12: Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Page 13: Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Page 14: Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Page 15: Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Page 16: Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Page 17: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

ALT

Page 18: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

NEU

Page 19: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

ALT

Deploy Deploy DeployDeploy

Page 20: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Deploy Deploy DeployDeploy

NEU

Page 21: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

ALTOps Dev

Page 22: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

NEUOps Dev

Page 23: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

NEUOps Dev

?

Page 24: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Orchestrierung!

Page 25: Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Page 26: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Helios

Page 27: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Apache

Helios

Page 28: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Apache

Helios

Page 29: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Apache

Helios

Page 30: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Apache

Helios

Page 31: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Apache

Helios

ECS

Page 32: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Apache

Helios

ECS

Page 33: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Apache

Helios

ECS…

Page 34: Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Page 35: Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Page 36: Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Page 37: Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Page 38: Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Page 39: Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Page 40: Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Page 41: Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Page 42: Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Page 43: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Kubernetes

Page 44: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Cluster

Page 45: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

core@core-01 ~ $ kubectl --server=https://core01.fra.chefkoch.net:6443 get nodesNAME LABELS STATUS10.10.0.100 kubernetes.io/hostname=10.10.0.100,name=core01.cgn Ready10.10.0.101 kubernetes.io/hostname=10.10.0.101,name=core01.fra Ready10.10.0.102 kubernetes.io/hostname=10.10.0.102,name=core02.fra Ready10.10.0.104 kubernetes.io/hostname=10.10.0.104,name=core03.fra Ready10.10.0.105 kubernetes.io/hostname=10.10.0.105,name=bigdata02.fra Ready10.10.0.106 kubernetes.io/hostname=10.10.0.106,name=bigdata01.cgn Ready10.10.0.107 kubernetes.io/hostname=10.10.0.107,name=bigdata01.fra Ready10.10.0.108 kubernetes.io/hostname=10.10.0.108,name=core06.fra Ready10.10.0.109 kubernetes.io/hostname=10.10.0.109,name=core05.fra Ready10.10.0.110 kubernetes.io/hostname=10.10.0.110,name=core04.fra Ready

Page 46: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Namespaces

Page 47: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

core@core-01 ~ $ kubectl get namespacesNAME LABELS STATUSdefault <none> Active

Page 48: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

core@core-01 ~ $ kubectl get namespacesNAME LABELS STATUSdefault <none> Active

core@core-01 ~ $ kubectl --namespace=default get allCONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICASNAME LABELS SELECTOR IP(S) PORT(S)NAME READY STATUS RESTARTS AGENAME LABELS STATUS VOLUME

Page 49: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

core@core-01 ~ $ kubectl config viewapiVersion: v1kind: Configclusters:- name: production cluster: server: https://core01.fra.chefkoch.net:6443contexts:- name: foobar.production context: cluster: production namespace: foobar user: john.doeusers:- name: john.doe user: username: john.doe password: p4ssw0rdcurrent-context: ""

Page 50: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

core@core-01 ~ $ kubectl config viewapiVersion: v1kind: Configclusters:- name: production cluster: server: https://core01.fra.chefkoch.net:6443contexts:- name: foobar.production context: cluster: production namespace: foobar user: john.doeusers:- name: john.doe user: username: john.doe password: p4ssw0rdcurrent-context: ""

core@core-01 ~ $ kubectl --context=foobar.production get all

Page 51: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

core@core-01 ~ $ kubectl config viewapiVersion: v1kind: Configclusters:- name: production cluster: server: https://core01.fra.chefkoch.net:6443contexts:- name: foobar.production context: cluster: production namespace: foobar user: john.doeusers:- name: john.doe user: username: john.doe password: p4ssw0rdcurrent-context: ""

core@core-01 ~ $ kubectl --context=foobar.production get allcore@core-01 ~ $ kubectl --cluster=production get all

Page 52: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

core@core-01 ~ $ kubectl config viewapiVersion: v1kind: Configclusters:- name: production cluster: server: https://core01.fra.chefkoch.net:6443contexts:- name: foobar.production context: cluster: production namespace: foobar user: john.doeusers:- name: john.doe user: username: john.doe password: p4ssw0rdcurrent-context: ""

core@core-01 ~ $ kubectl --context=foobar.production get allcore@core-01 ~ $ kubectl --cluster=production get allcore@core-01 ~ $ kubectl --username=john.doe --password=p4ssw0rd get all

Page 53: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

core@core-01 ~ $ kubectl config viewapiVersion: v1kind: Configclusters:- name: production cluster: server: https://core01.fra.chefkoch.net:6443contexts:- name: foobar.production context: cluster: production namespace: foobar user: john.doeusers:- name: john.doe user: username: john.doe password: p4ssw0rdcurrent-context: ""

core@core-01 ~ $ kubectl config use-context foobar.production

core@core-01 ~ $ kubectl --context=foobar.production get allcore@core-01 ~ $ kubectl --cluster=production get allcore@core-01 ~ $ kubectl --username=john.doe --password=p4ssw0rd get all

Page 54: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Pods

Page 55: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

apiVersion: v1kind: Podmetadata: name: my-symfony-app labels: name: my-symfony-appspec: containers: - name: nginx image: my-symfony-app command: [nginx] volumeMounts: - {name: socket, mountPath: /run} - name: php-fpm image: my-symfony-app command: [php5-fpm] volumeMounts: - {name: socket, mountPath: /run} volumes: - {name: socket, emptyDir: {medium: Memory}}

my-symfony-app.yml

Page 56: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

core@core-01 ~ $ kubectl create -f my-symfony-app.yml

Page 57: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

core@core-01 ~ $ kubectl get podsNAME READY STATUS RESTARTS AGEmy-symfony-app 2/2 Running 0 2s

core@core-01 ~ $ kubectl create -f my-symfony-app.yml

Page 58: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

core@core-01 ~ $ kubectl get podsNAME READY STATUS RESTARTS AGEmy-symfony-app 2/2 Running 0 2s

core@core-01 ~ $ kubectl create -f my-symfony-app.yml

core@core-01 ~ $ kubectl logs my-symfony-app -c php-fpm[15-Oct-2015 15:29:45] NOTICE: fpm is running, pid 1[15-Oct-2015 15:29:45] NOTICE: ready to handle connections

Page 59: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

core@core-01 ~ $ kubectl get podsNAME READY STATUS RESTARTS AGEmy-symfony-app 2/2 Running 0 2s

core@core-01 ~ $ kubectl create -f my-symfony-app.yml

core@core-01 ~ $ kubectl delete pod my-symfony-app

core@core-01 ~ $ kubectl logs my-symfony-app -c php-fpm[15-Oct-2015 15:29:45] NOTICE: fpm is running, pid 1[15-Oct-2015 15:29:45] NOTICE: ready to handle connections

Page 60: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

core@core-01 ~ $ kubectl get podsNAME READY STATUS RESTARTS AGEmy-symfony-app 2/2 Running 0 2s

core@core-01 ~ $ kubectl create -f my-symfony-app.yml

core@core-01 ~ $ kubectl delete pod my-symfony-app

core@core-01 ~ $ kubectl get podsNAME READY STATUS RESTARTS AGE

core@core-01 ~ $ kubectl logs my-symfony-app -c php-fpm[15-Oct-2015 15:29:45] NOTICE: fpm is running, pid 1[15-Oct-2015 15:29:45] NOTICE: ready to handle connections

Page 61: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!

Page 62: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!• Readiness-Probe, Liveness-Probe

Page 63: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!• Readiness-Probe, Liveness-Probe• Livecycle-Hooks

Page 64: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!• Readiness-Probe, Liveness-Probe• Livecycle-Hooks• ImagePull-Policy

Page 65: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!• Readiness-Probe, Liveness-Probe• Livecycle-Hooks• ImagePull-Policy• Ressourcen-Limits

Page 66: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!• Readiness-Probe, Liveness-Probe• Livecycle-Hooks• ImagePull-Policy• Ressourcen-Limits• Verschiedene Mounts

Page 67: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!• Readiness-Probe, Liveness-Probe• Livecycle-Hooks• ImagePull-Policy• Ressourcen-Limits• Verschiedene Mounts

• GCE

Page 68: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!• Readiness-Probe, Liveness-Probe• Livecycle-Hooks• ImagePull-Policy• Ressourcen-Limits• Verschiedene Mounts

• GCE• AWS EBS

Page 69: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!• Readiness-Probe, Liveness-Probe• Livecycle-Hooks• ImagePull-Policy• Ressourcen-Limits• Verschiedene Mounts

• GCE• AWS EBS• iSCSI

Page 70: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!• Readiness-Probe, Liveness-Probe• Livecycle-Hooks• ImagePull-Policy• Ressourcen-Limits• Verschiedene Mounts

• GCE• AWS EBS• iSCSI• NFS

Page 71: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!• Readiness-Probe, Liveness-Probe• Livecycle-Hooks• ImagePull-Policy• Ressourcen-Limits• Verschiedene Mounts

• GCE• AWS EBS• iSCSI• NFS• Glusterfs

Page 72: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!• Readiness-Probe, Liveness-Probe• Livecycle-Hooks• ImagePull-Policy• Ressourcen-Limits• Verschiedene Mounts

• GCE• AWS EBS• iSCSI• NFS• Glusterfs• Git-Repo

Page 73: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

ReplicationController

Page 74: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

apiVersion: v1kind: ReplicationControllermetadata: name: my-symfony-appspec: selector: name: my-symfony-app replicas: 5 template: // Inhalt von my-symfony-app.yml

my-symfony-app-rc.yml

Page 75: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

core@core-01 ~ $ kubectl create -f my-symfony-app-rc.yml

Page 76: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

core@core-01 ~ $ kubectl get podsNAME READY STATUS RESTARTS AGEmy-symfony-app-jzd97 2/2 Running 0 2smy-symfony-app-193aw 2/2 Running 0 2s my-symfony-app-bicex 2/2 Running 0 2s my-symfony-app-r2in0 2/2 Running 0 2s my-symfony-app-lbo54 2/2 Running 0 2s

core@core-01 ~ $ kubectl create -f my-symfony-app-rc.yml

Page 77: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

core@core-01 ~ $ kubectl get podsNAME READY STATUS RESTARTS AGEmy-symfony-app-jzd97 2/2 Running 0 2smy-symfony-app-193aw 2/2 Running 0 2s my-symfony-app-bicex 2/2 Running 0 2s my-symfony-app-r2in0 2/2 Running 0 2s my-symfony-app-lbo54 2/2 Running 0 2s

core@core-01 ~ $ kubectl create -f my-symfony-app-rc.yml

core@core-01 ~ $ kubectl delete pods --all

Page 78: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

core@core-01 ~ $ kubectl get podsNAME READY STATUS RESTARTS AGEmy-symfony-app-jzd97 2/2 Running 0 2smy-symfony-app-193aw 2/2 Running 0 2s my-symfony-app-bicex 2/2 Running 0 2s my-symfony-app-r2in0 2/2 Running 0 2s my-symfony-app-lbo54 2/2 Running 0 2s

core@core-01 ~ $ kubectl create -f my-symfony-app-rc.yml

core@core-01 ~ $ kubectl delete pods --all

core@core-01 ~ $ kubectl get podsNAME READY STATUS RESTARTS AGEmy-symfony-app-9tbfb 2/2 Running 0 2smy-symfony-app-ui6yv 2/2 Running 0 2s my-symfony-app-cx9te 2/2 Running 0 2s my-symfony-app-ui6yv 2/2 Running 0 2s my-symfony-app-tgquh 2/2 Running 0 2s

Page 79: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

core@core-01 ~ $ kubectl get podsNAME READY STATUS RESTARTS AGEmy-symfony-app-jzd97 2/2 Running 0 2smy-symfony-app-193aw 2/2 Running 0 2s my-symfony-app-bicex 2/2 Running 0 2s my-symfony-app-r2in0 2/2 Running 0 2s my-symfony-app-lbo54 2/2 Running 0 2s

core@core-01 ~ $ kubectl create -f my-symfony-app-rc.yml

core@core-01 ~ $ kubectl delete pods --all

core@core-01 ~ $ kubectl get podsNAME READY STATUS RESTARTS AGEmy-symfony-app-9tbfb 2/2 Running 0 2smy-symfony-app-ui6yv 2/2 Running 0 2s my-symfony-app-cx9te 2/2 Running 0 2s my-symfony-app-ui6yv 2/2 Running 0 2s my-symfony-app-tgquh 2/2 Running 0 2s

core@core-01 ~ $ kubectl scale --replicas=2 rc my-symfony-app

Page 80: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

core@core-01 ~ $ kubectl get podsNAME READY STATUS RESTARTS AGEmy-symfony-app-jzd97 2/2 Running 0 2smy-symfony-app-193aw 2/2 Running 0 2s my-symfony-app-bicex 2/2 Running 0 2s my-symfony-app-r2in0 2/2 Running 0 2s my-symfony-app-lbo54 2/2 Running 0 2s

core@core-01 ~ $ kubectl create -f my-symfony-app-rc.yml

core@core-01 ~ $ kubectl delete pods --all

core@core-01 ~ $ kubectl get podsNAME READY STATUS RESTARTS AGEmy-symfony-app-9tbfb 2/2 Running 0 2smy-symfony-app-ui6yv 2/2 Running 0 2s my-symfony-app-cx9te 2/2 Running 0 2s my-symfony-app-ui6yv 2/2 Running 0 2s my-symfony-app-tgquh 2/2 Running 0 2s

core@core-01 ~ $ kubectl scale --replicas=2 rc my-symfony-appcore@core-01 ~ $ kubectl get podsNAME READY STATUS RESTARTS AGEmy-symfony-app-9tbfb 2/2 Running 0 10smy-symfony-app-ui6yv 2/2 Running 0 10s

Page 81: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!

Page 82: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!• Rescheduling

Page 83: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!• Rescheduling• Rolling Updates

Page 84: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!• Rescheduling• Rolling Updates• Multiple Release Tracks

Page 85: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Services

Page 86: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

apiVersion: v1kind: Servicemetadata: name: my-symfony-appspec: selector: name: my-symfony-app ports: - port: 80

my-symfony-app-svc.yml

Page 87: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

core@core-01 ~ $ kubectl create -f my-symfony-app-svc.yml

Page 88: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

core@core-01 ~ $ kubectl get servicesNAME LABELS SELECTOR IP(S) PORT(S)my-symfony-app name=my-symfony-app name=my-symfony-app 80/TCP

core@core-01 ~ $ kubectl create -f my-symfony-app-svc.yml

Page 89: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

core@core-01 ~ $ kubectl get servicesNAME LABELS SELECTOR IP(S) PORT(S)my-symfony-app name=my-symfony-app name=my-symfony-app 80/TCP

core@core-01 ~ $ kubectl create -f my-symfony-app-svc.yml

core@core-01 ~ $ kubectl exec -ti my-symfony-app -c nginx bash

root@my-symfony-app:/# curl -I my-symfony-appHTTP/1.1 200 OKServer: nginx/1.9.3 (Ubuntu)Date: Fri, 16 Oct 2015 06:46:35 GMTContent-Type: text/htmlContent-Length: 177Connection: keep-alive

Page 90: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!

Page 91: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!• Renaming

Page 92: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!• Renaming• Load-Balancing

Page 93: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!• Renaming• Load-Balancing• Node-Port

Page 94: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!• Renaming• Load-Balancing• Node-Port• Static Endpoints

Page 95: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!• Renaming• Load-Balancing• Node-Port• Static Endpoints• Bidirektionale Verbindungen

Page 96: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Features, Features, Features!• Renaming• Load-Balancing• Node-Port• Static Endpoints• Bidirektionale Verbindungen• Das alles in Echtzeit!

Page 97: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Alles zusammen

Page 98: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Development (Vagrant Cluster)

NodePortServiceRCPod

NamespaceCluster

Page 99: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Testcluster

NodePortServiceRCPod

NamespaceCluster

Page 100: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Prodcluster

NodePortServiceRCPod

NamespaceCluster

Page 101: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Herausforderungen

Page 102: Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Page 103: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Bugs, Bugs, Bugs…

Page 104: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Bugs, Bugs, Bugs…• Namespace-Isolation

Page 105: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Bugs, Bugs, Bugs…• Namespace-Isolation• Concurrent-Pull

Page 106: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Bugs, Bugs, Bugs…• Namespace-Isolation• Concurrent-Pull• Orphan-Pull

Page 107: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Bugs, Bugs, Bugs…• Namespace-Isolation• Concurrent-Pull• Orphan-Pull• Exec-Timeout

Page 108: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Bugs, Bugs, Bugs…• Namespace-Isolation• Concurrent-Pull• Orphan-Pull• Exec-Timeout• …

Page 109: Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Page 110: Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Page 111: Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Page 112: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Fehlende Features

Page 113: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Fehlende Features• kubectl wait

Page 114: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Fehlende Features• kubectl wait• Variablen-Expansion

Page 115: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Fehlende Features• kubectl wait• Variablen-Expansion• …

Page 116: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Fazit

Page 117: Kubernetes: Wie Chefkoch.de mit Containern arbeitet
Page 118: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Container forcieren DevOps!

Page 119: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Container forcieren DevOps!

Container forcieren CD!

Page 120: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Container forcieren DevOps!

Container forcieren CD!

Orchestrierung ist komplex

Page 121: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Container forcieren DevOps!

Container forcieren CD!

Tooling ist Bleeding Edge

Orchestrierung ist komplex

Page 122: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

Container forcieren DevOps!

Container forcieren CD!

Tooling ist Bleeding Edge

Orchestrierung ist komplex

Wir vertrauen auf Kubernetes!

Page 123: Kubernetes: Wie Chefkoch.de mit Containern arbeitet

?Fragenhttp://chefkoch.jobs - We are hiring ;)

http://perprogramming.de [email protected]

Danke!