SlideShare ist ein Scribd-Unternehmen logo
1 von 123
Downloaden Sie, um offline zu lesen
Wie Chefkoch.de
mit Containern
arbeitet
ein Vortrag von Per Bernhardt
Mein Name ist Per
http://perprogramming.de
Ich bin ein Chefkoch
http://www.chefkoch.de
Agenda
Agenda
1. Container? WTF?
Agenda
1. Container? WTF?
2. Kubernetes
Agenda
1. Container? WTF?
2. Kubernetes
3. Herausforderungen
Agenda
1. Container? WTF?
2. Kubernetes
3. Herausforderungen
4. Fazit
Agenda
1. Container? WTF?
2. Kubernetes
3. Herausforderungen
5. Fragen??
4. Fazit
Container? WTF?
A
LT
N
EU
A
LT
Deploy Deploy DeployDeploy
Deploy Deploy DeployDeploy
N
EU
A
LT
Ops Dev
N
EU
Ops Dev
N
EU
Ops Dev
?
Orchestrierung!
Helios
Apache
Helios
Apache
Helios
Apache
Helios
Apache
Helios
Apache
Helios
ECS
Apache
Helios
ECS
Apache
Helios
ECS
…
Kubernetes
Cluster
core@core-01 ~ $ kubectl --server=https://core01.fra.chefkoch.net:6443 get nodes
NAME LABELS STATUS
10.10.0.100 kubernetes.io/hostname=10.10.0.100,name=core01.cgn Ready
10.10.0.101 kubernetes.io/hostname=10.10.0.101,name=core01.fra Ready
10.10.0.102 kubernetes.io/hostname=10.10.0.102,name=core02.fra Ready
10.10.0.104 kubernetes.io/hostname=10.10.0.104,name=core03.fra Ready
10.10.0.105 kubernetes.io/hostname=10.10.0.105,name=bigdata02.fra Ready
10.10.0.106 kubernetes.io/hostname=10.10.0.106,name=bigdata01.cgn Ready
10.10.0.107 kubernetes.io/hostname=10.10.0.107,name=bigdata01.fra Ready
10.10.0.108 kubernetes.io/hostname=10.10.0.108,name=core06.fra Ready
10.10.0.109 kubernetes.io/hostname=10.10.0.109,name=core05.fra Ready
10.10.0.110 kubernetes.io/hostname=10.10.0.110,name=core04.fra Ready
Namespaces
core@core-01 ~ $ kubectl get namespaces
NAME LABELS STATUS
default <none> Active
core@core-01 ~ $ kubectl get namespaces
NAME LABELS STATUS
default <none> Active
core@core-01 ~ $ kubectl --namespace=default get all
CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS
NAME LABELS SELECTOR IP(S) PORT(S)
NAME READY STATUS RESTARTS AGE
NAME LABELS STATUS VOLUME
core@core-01 ~ $ kubectl config view
apiVersion: v1
kind: Config
clusters:
- name: production

cluster:
server: https://core01.fra.chefkoch.net:6443
contexts:
- name: foobar.production 

context:
cluster: production
namespace: foobar
user: john.doe
users:
- name: john.doe
user:
username: john.doe
password: p4ssw0rd
current-context: ""
core@core-01 ~ $ kubectl config view
apiVersion: v1
kind: Config
clusters:
- name: production

cluster:
server: https://core01.fra.chefkoch.net:6443
contexts:
- name: foobar.production 

context:
cluster: production
namespace: foobar
user: john.doe
users:
- name: john.doe
user:
username: john.doe
password: p4ssw0rd
current-context: ""
core@core-01 ~ $ kubectl --context=foobar.production get all
core@core-01 ~ $ kubectl config view
apiVersion: v1
kind: Config
clusters:
- name: production

cluster:
server: https://core01.fra.chefkoch.net:6443
contexts:
- name: foobar.production 

context:
cluster: production
namespace: foobar
user: john.doe
users:
- name: john.doe
user:
username: john.doe
password: p4ssw0rd
current-context: ""
core@core-01 ~ $ kubectl --context=foobar.production get all
core@core-01 ~ $ kubectl --cluster=production get all
core@core-01 ~ $ kubectl config view
apiVersion: v1
kind: Config
clusters:
- name: production

cluster:
server: https://core01.fra.chefkoch.net:6443
contexts:
- name: foobar.production 

context:
cluster: production
namespace: foobar
user: john.doe
users:
- name: john.doe
user:
username: john.doe
password: p4ssw0rd
current-context: ""
core@core-01 ~ $ kubectl --context=foobar.production get all
core@core-01 ~ $ kubectl --cluster=production get all
core@core-01 ~ $ kubectl --username=john.doe --password=p4ssw0rd get all
core@core-01 ~ $ kubectl config view
apiVersion: v1
kind: Config
clusters:
- name: production

cluster:
server: https://core01.fra.chefkoch.net:6443
contexts:
- name: foobar.production 

context:
cluster: production
namespace: foobar
user: john.doe
users:
- name: john.doe
user:
username: john.doe
password: p4ssw0rd
current-context: ""
core@core-01 ~ $ kubectl config use-context foobar.production
core@core-01 ~ $ kubectl --context=foobar.production get all
core@core-01 ~ $ kubectl --cluster=production get all
core@core-01 ~ $ kubectl --username=john.doe --password=p4ssw0rd get all
Pods
apiVersion: v1
kind: Pod
metadata:
name: my-symfony-app
labels:
name: my-symfony-app
spec:
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
core@core-01 ~ $ kubectl create -f my-symfony-app.yml
core@core-01 ~ $ kubectl get pods
NAME READY STATUS RESTARTS AGE
my-symfony-app 2/2 Running 0 2s
core@core-01 ~ $ kubectl create -f my-symfony-app.yml
core@core-01 ~ $ kubectl get pods
NAME READY STATUS RESTARTS AGE
my-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
core@core-01 ~ $ kubectl get pods
NAME READY STATUS RESTARTS AGE
my-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
core@core-01 ~ $ kubectl get pods
NAME READY STATUS RESTARTS AGE
my-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 pods
NAME 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
Features, Features, Features!
Features, Features, Features!
• Readiness-Probe, Liveness-Probe
Features, Features, Features!
• Readiness-Probe, Liveness-Probe
• Livecycle-Hooks
Features, Features, Features!
• Readiness-Probe, Liveness-Probe
• Livecycle-Hooks
• ImagePull-Policy
Features, Features, Features!
• Readiness-Probe, Liveness-Probe
• Livecycle-Hooks
• ImagePull-Policy
• Ressourcen-Limits
Features, Features, Features!
• Readiness-Probe, Liveness-Probe
• Livecycle-Hooks
• ImagePull-Policy
• Ressourcen-Limits
• Verschiedene Mounts
Features, Features, Features!
• Readiness-Probe, Liveness-Probe
• Livecycle-Hooks
• ImagePull-Policy
• Ressourcen-Limits
• Verschiedene Mounts
• GCE
Features, Features, Features!
• Readiness-Probe, Liveness-Probe
• Livecycle-Hooks
• ImagePull-Policy
• Ressourcen-Limits
• Verschiedene Mounts
• GCE
• AWS EBS
Features, Features, Features!
• Readiness-Probe, Liveness-Probe
• Livecycle-Hooks
• ImagePull-Policy
• Ressourcen-Limits
• Verschiedene Mounts
• GCE
• AWS EBS
• iSCSI
Features, Features, Features!
• Readiness-Probe, Liveness-Probe
• Livecycle-Hooks
• ImagePull-Policy
• Ressourcen-Limits
• Verschiedene Mounts
• GCE
• AWS EBS
• iSCSI
• NFS
Features, Features, Features!
• Readiness-Probe, Liveness-Probe
• Livecycle-Hooks
• ImagePull-Policy
• Ressourcen-Limits
• Verschiedene Mounts
• GCE
• AWS EBS
• iSCSI
• NFS
• Glusterfs
Features, Features, Features!
• Readiness-Probe, Liveness-Probe
• Livecycle-Hooks
• ImagePull-Policy
• Ressourcen-Limits
• Verschiedene Mounts
• GCE
• AWS EBS
• iSCSI
• NFS
• Glusterfs
• Git-Repo
ReplicationController
apiVersion: v1
kind: ReplicationController
metadata:
name: my-symfony-app
spec:
selector:
name: my-symfony-app
replicas: 5
template:
// Inhalt von my-symfony-app.yml
my-symfony-app-rc.yml
core@core-01 ~ $ kubectl create -f my-symfony-app-rc.yml
core@core-01 ~ $ kubectl get pods
NAME READY STATUS RESTARTS AGE
my-symfony-app-jzd97 2/2 Running 0 2s
my-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 get pods
NAME READY STATUS RESTARTS AGE
my-symfony-app-jzd97 2/2 Running 0 2s
my-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 pods
NAME READY STATUS RESTARTS AGE
my-symfony-app-jzd97 2/2 Running 0 2s
my-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 pods
NAME READY STATUS RESTARTS AGE
my-symfony-app-9tbfb 2/2 Running 0 2s
my-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 get pods
NAME READY STATUS RESTARTS AGE
my-symfony-app-jzd97 2/2 Running 0 2s
my-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 pods
NAME READY STATUS RESTARTS AGE
my-symfony-app-9tbfb 2/2 Running 0 2s
my-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
core@core-01 ~ $ kubectl get pods
NAME READY STATUS RESTARTS AGE
my-symfony-app-jzd97 2/2 Running 0 2s
my-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 pods
NAME READY STATUS RESTARTS AGE
my-symfony-app-9tbfb 2/2 Running 0 2s
my-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
core@core-01 ~ $ kubectl get pods
NAME READY STATUS RESTARTS AGE
my-symfony-app-9tbfb 2/2 Running 0 10s
my-symfony-app-ui6yv 2/2 Running 0 10s
Features, Features, Features!
Features, Features, Features!
• Rescheduling
Features, Features, Features!
• Rescheduling
• Rolling Updates
Features, Features, Features!
• Rescheduling
• Rolling Updates
• Multiple Release Tracks
Services
apiVersion: v1
kind: Service
metadata:
name: my-symfony-app
spec:
selector:
name: my-symfony-app
ports:
- port: 80
my-symfony-app-svc.yml
core@core-01 ~ $ kubectl create -f my-symfony-app-svc.yml
core@core-01 ~ $ kubectl get services
NAME 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 get services
NAME 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-app
HTTP/1.1 200 OK
Server: nginx/1.9.3 (Ubuntu)
Date: Fri, 16 Oct 2015 06:46:35 GMT
Content-Type: text/html
Content-Length: 177
Connection: keep-alive
Features, Features, Features!
Features, Features, Features!
• Renaming
Features, Features, Features!
• Renaming
• Load-Balancing
Features, Features, Features!
• Renaming
• Load-Balancing
• Node-Port
Features, Features, Features!
• Renaming
• Load-Balancing
• Node-Port
• Static Endpoints
Features, Features, Features!
• Renaming
• Load-Balancing
• Node-Port
• Static Endpoints
• Bidirektionale Verbindungen
Features, Features, Features!
• Renaming
• Load-Balancing
• Node-Port
• Static Endpoints
• Bidirektionale Verbindungen
• Das alles in Echtzeit!
Alles zusammen
Development (Vagrant Cluster)
NodePort
Service
RC
Pod
Namespace
Cluster
Testcluster
NodePort
Service
RC
Pod
Namespace
Cluster
Prodcluster
NodePort
Service
RC
Pod
Namespace
Cluster
Herausforderungen
Bugs, Bugs, Bugs…
Bugs, Bugs, Bugs…
• Namespace-Isolation
Bugs, Bugs, Bugs…
• Namespace-Isolation
• Concurrent-Pull
Bugs, Bugs, Bugs…
• Namespace-Isolation
• Concurrent-Pull
• Orphan-Pull
Bugs, Bugs, Bugs…
• Namespace-Isolation
• Concurrent-Pull
• Orphan-Pull
• Exec-Timeout
Bugs, Bugs, Bugs…
• Namespace-Isolation
• Concurrent-Pull
• Orphan-Pull
• Exec-Timeout
• …
Fehlende Features
Fehlende Features
• kubectl wait
Fehlende Features
• kubectl wait
• Variablen-Expansion
Fehlende Features
• kubectl wait
• Variablen-Expansion
• …
Fazit
Container forcieren DevOps!
Container forcieren DevOps!
Container forcieren CD!
Container forcieren DevOps!
Container forcieren CD!
Orchestrierung ist komplex
Container forcieren DevOps!
Container forcieren CD!
Tooling ist Bleeding Edge
Orchestrierung ist komplex
Container forcieren DevOps!
Container forcieren CD!
Tooling ist Bleeding Edge
Orchestrierung ist komplex
Wir vertrauen auf Kubernetes!
?Fragen
http://chefkoch.jobs - We are hiring ;)
http://perprogramming.de
info@perprogramming.de
Danke!

Weitere ähnliche Inhalte

Was ist angesagt?

Datagrids with Symfony 2, Backbone and Backgrid
Datagrids with Symfony 2, Backbone and BackgridDatagrids with Symfony 2, Backbone and Backgrid
Datagrids with Symfony 2, Backbone and Backgrideugenio pombi
 
Practical Chef and Capistrano for Your Rails App
Practical Chef and Capistrano for Your Rails AppPractical Chef and Capistrano for Your Rails App
Practical Chef and Capistrano for Your Rails AppSmartLogic
 
How to build a High Performance PSGI/Plack Server
How to build a High Performance PSGI/Plack Server How to build a High Performance PSGI/Plack Server
How to build a High Performance PSGI/Plack Server Masahiro Nagano
 
Continuous deployment of puppet modules
Continuous deployment of puppet modulesContinuous deployment of puppet modules
Continuous deployment of puppet modulesWilliam O'Neill
 
Quality Use Of Plugin
Quality Use Of PluginQuality Use Of Plugin
Quality Use Of PluginYasuo Harada
 
Puppet at janrain
Puppet at janrainPuppet at janrain
Puppet at janrainPuppet
 
Cloud Automation with Opscode Chef
Cloud Automation with Opscode ChefCloud Automation with Opscode Chef
Cloud Automation with Opscode ChefSri Ram
 
Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018) Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018) Zend by Rogue Wave Software
 
Selenium sandwich-3: Being where you aren't.
Selenium sandwich-3: Being where you aren't.Selenium sandwich-3: Being where you aren't.
Selenium sandwich-3: Being where you aren't.Workhorse Computing
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js ExpressEyal Vardi
 
Nodejs first class
Nodejs first classNodejs first class
Nodejs first classFin Chen
 
Ruby HTTP clients comparison
Ruby HTTP clients comparisonRuby HTTP clients comparison
Ruby HTTP clients comparisonHiroshi Nakamura
 
Puppet and the HashiStack
Puppet and the HashiStackPuppet and the HashiStack
Puppet and the HashiStackBram Vogelaar
 
Lights, Camera, Docker: Streaming Video at DramaFever
Lights, Camera, Docker: Streaming Video at DramaFeverLights, Camera, Docker: Streaming Video at DramaFever
Lights, Camera, Docker: Streaming Video at DramaFeverbridgetkromhout
 
DevOps: Falando um pouco sobre desenvolvimento orientado a testes com Puppet
DevOps: Falando um pouco sobre desenvolvimento orientado a testes com PuppetDevOps: Falando um pouco sobre desenvolvimento orientado a testes com Puppet
DevOps: Falando um pouco sobre desenvolvimento orientado a testes com PuppetMarcelo Andrade
 
Deploying Rails Apps with Chef and Capistrano
 Deploying Rails Apps with Chef and Capistrano Deploying Rails Apps with Chef and Capistrano
Deploying Rails Apps with Chef and CapistranoSmartLogic
 
"Swoole: double troubles in c", Alexandr Vronskiy
"Swoole: double troubles in c", Alexandr Vronskiy"Swoole: double troubles in c", Alexandr Vronskiy
"Swoole: double troubles in c", Alexandr VronskiyFwdays
 

Was ist angesagt? (20)

Datagrids with Symfony 2, Backbone and Backgrid
Datagrids with Symfony 2, Backbone and BackgridDatagrids with Symfony 2, Backbone and Backgrid
Datagrids with Symfony 2, Backbone and Backgrid
 
A Gentle Introduction to Event Loops
A Gentle Introduction to Event LoopsA Gentle Introduction to Event Loops
A Gentle Introduction to Event Loops
 
Practical Chef and Capistrano for Your Rails App
Practical Chef and Capistrano for Your Rails AppPractical Chef and Capistrano for Your Rails App
Practical Chef and Capistrano for Your Rails App
 
How to build a High Performance PSGI/Plack Server
How to build a High Performance PSGI/Plack Server How to build a High Performance PSGI/Plack Server
How to build a High Performance PSGI/Plack Server
 
Continuous deployment of puppet modules
Continuous deployment of puppet modulesContinuous deployment of puppet modules
Continuous deployment of puppet modules
 
Quality Use Of Plugin
Quality Use Of PluginQuality Use Of Plugin
Quality Use Of Plugin
 
Puppet at janrain
Puppet at janrainPuppet at janrain
Puppet at janrain
 
Lies, Damn Lies, and Benchmarks
Lies, Damn Lies, and BenchmarksLies, Damn Lies, and Benchmarks
Lies, Damn Lies, and Benchmarks
 
Cloud Automation with Opscode Chef
Cloud Automation with Opscode ChefCloud Automation with Opscode Chef
Cloud Automation with Opscode Chef
 
Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018) Speed up web APIs with Expressive and Swoole (PHP Day 2018)
Speed up web APIs with Expressive and Swoole (PHP Day 2018)
 
Selenium sandwich-3: Being where you aren't.
Selenium sandwich-3: Being where you aren't.Selenium sandwich-3: Being where you aren't.
Selenium sandwich-3: Being where you aren't.
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js Express
 
Nodejs first class
Nodejs first classNodejs first class
Nodejs first class
 
Ruby HTTP clients comparison
Ruby HTTP clients comparisonRuby HTTP clients comparison
Ruby HTTP clients comparison
 
Puppet and the HashiStack
Puppet and the HashiStackPuppet and the HashiStack
Puppet and the HashiStack
 
Plack - LPW 2009
Plack - LPW 2009Plack - LPW 2009
Plack - LPW 2009
 
Lights, Camera, Docker: Streaming Video at DramaFever
Lights, Camera, Docker: Streaming Video at DramaFeverLights, Camera, Docker: Streaming Video at DramaFever
Lights, Camera, Docker: Streaming Video at DramaFever
 
DevOps: Falando um pouco sobre desenvolvimento orientado a testes com Puppet
DevOps: Falando um pouco sobre desenvolvimento orientado a testes com PuppetDevOps: Falando um pouco sobre desenvolvimento orientado a testes com Puppet
DevOps: Falando um pouco sobre desenvolvimento orientado a testes com Puppet
 
Deploying Rails Apps with Chef and Capistrano
 Deploying Rails Apps with Chef and Capistrano Deploying Rails Apps with Chef and Capistrano
Deploying Rails Apps with Chef and Capistrano
 
"Swoole: double troubles in c", Alexandr Vronskiy
"Swoole: double troubles in c", Alexandr Vronskiy"Swoole: double troubles in c", Alexandr Vronskiy
"Swoole: double troubles in c", Alexandr Vronskiy
 

Andere mochten auch

Cirrus Insight + Nuvem Consulting: Create a Winning Salesforce Roadmap
Cirrus Insight + Nuvem Consulting: Create a Winning Salesforce RoadmapCirrus Insight + Nuvem Consulting: Create a Winning Salesforce Roadmap
Cirrus Insight + Nuvem Consulting: Create a Winning Salesforce RoadmapCirrus Insight
 
Docker orchestration with Kubernetes
Docker orchestration with KubernetesDocker orchestration with Kubernetes
Docker orchestration with KubernetesSamuel ROZE
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to KubernetesRoss Kukulinski
 
Prometheus Monitoring
Prometheus MonitoringPrometheus Monitoring
Prometheus Monitoringinovex GmbH
 
Agile.2013.effecting.a.dev ops.transformation.at.salesforce
Agile.2013.effecting.a.dev ops.transformation.at.salesforceAgile.2013.effecting.a.dev ops.transformation.at.salesforce
Agile.2013.effecting.a.dev ops.transformation.at.salesforceDave Mangot
 
Magazin-Relaunch bei Chefkoch
Magazin-Relaunch bei ChefkochMagazin-Relaunch bei Chefkoch
Magazin-Relaunch bei ChefkochPer Bernhardt
 
From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...
From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...
From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...OpenShift Origin
 
DevOps Kaizen: Find and Fix What is Really Behind Your Problems
DevOps Kaizen: Find and Fix What is Really Behind Your ProblemsDevOps Kaizen: Find and Fix What is Really Behind Your Problems
DevOps Kaizen: Find and Fix What is Really Behind Your Problemsdev2ops
 
DevOps Kaizen: Practical Steps to Start & Sustain a Transformation
DevOps Kaizen: Practical Steps to Start & Sustain a TransformationDevOps Kaizen: Practical Steps to Start & Sustain a Transformation
DevOps Kaizen: Practical Steps to Start & Sustain a Transformationdev2ops
 
OpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetesOpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetesSamuel Terburg
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to KubernetesImesh Gunaratne
 
Der Cloud Native Stack in a Nutshell. #CloudExpoEurope
Der Cloud Native Stack in a Nutshell. #CloudExpoEuropeDer Cloud Native Stack in a Nutshell. #CloudExpoEurope
Der Cloud Native Stack in a Nutshell. #CloudExpoEuropeMario-Leander Reimer
 

Andere mochten auch (13)

Cirrus Insight + Nuvem Consulting: Create a Winning Salesforce Roadmap
Cirrus Insight + Nuvem Consulting: Create a Winning Salesforce RoadmapCirrus Insight + Nuvem Consulting: Create a Winning Salesforce Roadmap
Cirrus Insight + Nuvem Consulting: Create a Winning Salesforce Roadmap
 
Docker orchestration with Kubernetes
Docker orchestration with KubernetesDocker orchestration with Kubernetes
Docker orchestration with Kubernetes
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Prometheus Monitoring
Prometheus MonitoringPrometheus Monitoring
Prometheus Monitoring
 
Agile.2013.effecting.a.dev ops.transformation.at.salesforce
Agile.2013.effecting.a.dev ops.transformation.at.salesforceAgile.2013.effecting.a.dev ops.transformation.at.salesforce
Agile.2013.effecting.a.dev ops.transformation.at.salesforce
 
Magazin-Relaunch bei Chefkoch
Magazin-Relaunch bei ChefkochMagazin-Relaunch bei Chefkoch
Magazin-Relaunch bei Chefkoch
 
From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...
From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...
From Zero to Cloud: Revolutionize your Application Life Cycle with OpenShift ...
 
DevOps Kaizen: Find and Fix What is Really Behind Your Problems
DevOps Kaizen: Find and Fix What is Really Behind Your ProblemsDevOps Kaizen: Find and Fix What is Really Behind Your Problems
DevOps Kaizen: Find and Fix What is Really Behind Your Problems
 
DevOps Kaizen: Practical Steps to Start & Sustain a Transformation
DevOps Kaizen: Practical Steps to Start & Sustain a TransformationDevOps Kaizen: Practical Steps to Start & Sustain a Transformation
DevOps Kaizen: Practical Steps to Start & Sustain a Transformation
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
OpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetesOpenShift Enterprise 3.1 vs kubernetes
OpenShift Enterprise 3.1 vs kubernetes
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 
Der Cloud Native Stack in a Nutshell. #CloudExpoEurope
Der Cloud Native Stack in a Nutshell. #CloudExpoEuropeDer Cloud Native Stack in a Nutshell. #CloudExpoEurope
Der Cloud Native Stack in a Nutshell. #CloudExpoEurope
 

Ähnlich wie Kubernetes: Wie Chefkoch.de mit Containern arbeitet

k8s practice 2023.pptx
k8s practice 2023.pptxk8s practice 2023.pptx
k8s practice 2023.pptxwonyong hwang
 
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmet
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmetHow Honestbee Does CI/CD on Kubernetes - Vincent DeSmet
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmetDevOpsDaysJKT
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes NetworkingCJ Cullen
 
5 Kubernetes.pdf 5 Kubernetes.pdf 5 Kubernetes.pdf
5 Kubernetes.pdf 5 Kubernetes.pdf 5 Kubernetes.pdf5 Kubernetes.pdf 5 Kubernetes.pdf 5 Kubernetes.pdf
5 Kubernetes.pdf 5 Kubernetes.pdf 5 Kubernetes.pdfNuttavutThongjor1
 
Spring Into Kubernetes DFW
Spring Into Kubernetes DFWSpring Into Kubernetes DFW
Spring Into Kubernetes DFWVMware Tanzu
 
Kubernetes and its Infrastructure - a walkthrough from the paths of container...
Kubernetes and its Infrastructure - a walkthrough from the paths of container...Kubernetes and its Infrastructure - a walkthrough from the paths of container...
Kubernetes and its Infrastructure - a walkthrough from the paths of container...niharikadhanik
 
Infrastructure as code
Infrastructure as codeInfrastructure as code
Infrastructure as codedaisuke awaji
 
Kubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdf
Kubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdfKubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdf
Kubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdfSrinivasa Rao
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.catPablo Godel
 
Shakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud PlatformShakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud PlatformMinku Lee
 
Kubernetes Basic Operation
Kubernetes Basic OperationKubernetes Basic Operation
Kubernetes Basic OperationSimon Su
 
Deep dive in container service discovery
Deep dive in container service discoveryDeep dive in container service discovery
Deep dive in container service discoveryDocker, Inc.
 
Multinode kubernetes-cluster
Multinode kubernetes-clusterMultinode kubernetes-cluster
Multinode kubernetes-clusterRam Nath
 
Prometheus on NKS
Prometheus on NKSPrometheus on NKS
Prometheus on NKSJo Hoon
 
Kube Your Enthusiasm - Tyler Britten
Kube Your Enthusiasm - Tyler BrittenKube Your Enthusiasm - Tyler Britten
Kube Your Enthusiasm - Tyler BrittenVMware Tanzu
 
An Introduction to the Kubernetes API
An Introduction to the Kubernetes APIAn Introduction to the Kubernetes API
An Introduction to the Kubernetes APIStefan Schimanski
 
Build Your Own CaaS (Container as a Service)
Build Your Own CaaS (Container as a Service)Build Your Own CaaS (Container as a Service)
Build Your Own CaaS (Container as a Service)HungWei Chiu
 
Composer for busy developers - DPC13
Composer for busy developers - DPC13Composer for busy developers - DPC13
Composer for busy developers - DPC13Rafael Dohms
 

Ähnlich wie Kubernetes: Wie Chefkoch.de mit Containern arbeitet (20)

k8s practice 2023.pptx
k8s practice 2023.pptxk8s practice 2023.pptx
k8s practice 2023.pptx
 
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmet
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmetHow Honestbee Does CI/CD on Kubernetes - Vincent DeSmet
How Honestbee Does CI/CD on Kubernetes - Vincent DeSmet
 
kubernetes practice
kubernetes practicekubernetes practice
kubernetes practice
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
5 Kubernetes.pdf 5 Kubernetes.pdf 5 Kubernetes.pdf
5 Kubernetes.pdf 5 Kubernetes.pdf 5 Kubernetes.pdf5 Kubernetes.pdf 5 Kubernetes.pdf 5 Kubernetes.pdf
5 Kubernetes.pdf 5 Kubernetes.pdf 5 Kubernetes.pdf
 
Spring Into Kubernetes DFW
Spring Into Kubernetes DFWSpring Into Kubernetes DFW
Spring Into Kubernetes DFW
 
Kubernetes and its Infrastructure - a walkthrough from the paths of container...
Kubernetes and its Infrastructure - a walkthrough from the paths of container...Kubernetes and its Infrastructure - a walkthrough from the paths of container...
Kubernetes and its Infrastructure - a walkthrough from the paths of container...
 
Infrastructure as code
Infrastructure as codeInfrastructure as code
Infrastructure as code
 
Kubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdf
Kubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdfKubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdf
Kubernetes+-CKA-+0400+-+Application+Lifecycle+Management.pdf
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
 
Shakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud PlatformShakr - Container CI/CD with Google Cloud Platform
Shakr - Container CI/CD with Google Cloud Platform
 
Kubernetes Basic Operation
Kubernetes Basic OperationKubernetes Basic Operation
Kubernetes Basic Operation
 
Deep dive in container service discovery
Deep dive in container service discoveryDeep dive in container service discovery
Deep dive in container service discovery
 
Multinode kubernetes-cluster
Multinode kubernetes-clusterMultinode kubernetes-cluster
Multinode kubernetes-cluster
 
Prometheus on NKS
Prometheus on NKSPrometheus on NKS
Prometheus on NKS
 
Learning kubernetes
Learning kubernetesLearning kubernetes
Learning kubernetes
 
Kube Your Enthusiasm - Tyler Britten
Kube Your Enthusiasm - Tyler BrittenKube Your Enthusiasm - Tyler Britten
Kube Your Enthusiasm - Tyler Britten
 
An Introduction to the Kubernetes API
An Introduction to the Kubernetes APIAn Introduction to the Kubernetes API
An Introduction to the Kubernetes API
 
Build Your Own CaaS (Container as a Service)
Build Your Own CaaS (Container as a Service)Build Your Own CaaS (Container as a Service)
Build Your Own CaaS (Container as a Service)
 
Composer for busy developers - DPC13
Composer for busy developers - DPC13Composer for busy developers - DPC13
Composer for busy developers - DPC13
 

Mehr von Per Bernhardt

Event Carried State Transfer @ LeanIX
Event Carried State Transfer @ LeanIXEvent Carried State Transfer @ LeanIX
Event Carried State Transfer @ LeanIXPer Bernhardt
 
Communication in a Microservice Architecture (Ljubljana Backend Meetup 2021)
Communication in a Microservice Architecture (Ljubljana Backend Meetup 2021)Communication in a Microservice Architecture (Ljubljana Backend Meetup 2021)
Communication in a Microservice Architecture (Ljubljana Backend Meetup 2021)Per Bernhardt
 
Microservice Test Strategy (@Bonn Code Meetup)
Microservice Test Strategy (@Bonn Code Meetup)Microservice Test Strategy (@Bonn Code Meetup)
Microservice Test Strategy (@Bonn Code Meetup)Per Bernhardt
 
Communication in a Microservice Architecture
Communication in a Microservice ArchitectureCommunication in a Microservice Architecture
Communication in a Microservice ArchitecturePer Bernhardt
 
Contract Tests mit Pact
Contract Tests mit PactContract Tests mit Pact
Contract Tests mit PactPer Bernhardt
 
Chefkoch goes Drupal8
Chefkoch goes Drupal8Chefkoch goes Drupal8
Chefkoch goes Drupal8Per Bernhardt
 
Umzug eines Hochlast-Dienstes
Umzug eines Hochlast-DienstesUmzug eines Hochlast-Dienstes
Umzug eines Hochlast-DienstesPer Bernhardt
 
kubernetes @ chefkoch.de - Kubernetes Meetup Cologne
kubernetes @ chefkoch.de - Kubernetes Meetup Colognekubernetes @ chefkoch.de - Kubernetes Meetup Cologne
kubernetes @ chefkoch.de - Kubernetes Meetup ColognePer Bernhardt
 
Continiuous Integration and Delivery with Bamboo
Continiuous Integration and Delivery with BambooContiniuous Integration and Delivery with Bamboo
Continiuous Integration and Delivery with BambooPer Bernhardt
 
Anwendungsintegration mit Edge Side Includes
Anwendungsintegration mit Edge Side IncludesAnwendungsintegration mit Edge Side Includes
Anwendungsintegration mit Edge Side IncludesPer Bernhardt
 

Mehr von Per Bernhardt (11)

Die Rolle des CTO
Die Rolle des CTODie Rolle des CTO
Die Rolle des CTO
 
Event Carried State Transfer @ LeanIX
Event Carried State Transfer @ LeanIXEvent Carried State Transfer @ LeanIX
Event Carried State Transfer @ LeanIX
 
Communication in a Microservice Architecture (Ljubljana Backend Meetup 2021)
Communication in a Microservice Architecture (Ljubljana Backend Meetup 2021)Communication in a Microservice Architecture (Ljubljana Backend Meetup 2021)
Communication in a Microservice Architecture (Ljubljana Backend Meetup 2021)
 
Microservice Test Strategy (@Bonn Code Meetup)
Microservice Test Strategy (@Bonn Code Meetup)Microservice Test Strategy (@Bonn Code Meetup)
Microservice Test Strategy (@Bonn Code Meetup)
 
Communication in a Microservice Architecture
Communication in a Microservice ArchitectureCommunication in a Microservice Architecture
Communication in a Microservice Architecture
 
Contract Tests mit Pact
Contract Tests mit PactContract Tests mit Pact
Contract Tests mit Pact
 
Chefkoch goes Drupal8
Chefkoch goes Drupal8Chefkoch goes Drupal8
Chefkoch goes Drupal8
 
Umzug eines Hochlast-Dienstes
Umzug eines Hochlast-DienstesUmzug eines Hochlast-Dienstes
Umzug eines Hochlast-Dienstes
 
kubernetes @ chefkoch.de - Kubernetes Meetup Cologne
kubernetes @ chefkoch.de - Kubernetes Meetup Colognekubernetes @ chefkoch.de - Kubernetes Meetup Cologne
kubernetes @ chefkoch.de - Kubernetes Meetup Cologne
 
Continiuous Integration and Delivery with Bamboo
Continiuous Integration and Delivery with BambooContiniuous Integration and Delivery with Bamboo
Continiuous Integration and Delivery with Bamboo
 
Anwendungsintegration mit Edge Side Includes
Anwendungsintegration mit Edge Side IncludesAnwendungsintegration mit Edge Side Includes
Anwendungsintegration mit Edge Side Includes
 

Kürzlich hochgeladen

Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 

Kürzlich hochgeladen (20)

Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 

Kubernetes: Wie Chefkoch.de mit Containern arbeitet

  • 2. Mein Name ist Per http://perprogramming.de Ich bin ein Chefkoch http://www.chefkoch.de
  • 6. Agenda 1. Container? WTF? 2. Kubernetes 3. Herausforderungen
  • 7. Agenda 1. Container? WTF? 2. Kubernetes 3. Herausforderungen 4. Fazit
  • 8. Agenda 1. Container? WTF? 2. Kubernetes 3. Herausforderungen 5. Fragen?? 4. Fazit
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17. A LT
  • 18. N EU
  • 25.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 45. core@core-01 ~ $ kubectl --server=https://core01.fra.chefkoch.net:6443 get nodes NAME LABELS STATUS 10.10.0.100 kubernetes.io/hostname=10.10.0.100,name=core01.cgn Ready 10.10.0.101 kubernetes.io/hostname=10.10.0.101,name=core01.fra Ready 10.10.0.102 kubernetes.io/hostname=10.10.0.102,name=core02.fra Ready 10.10.0.104 kubernetes.io/hostname=10.10.0.104,name=core03.fra Ready 10.10.0.105 kubernetes.io/hostname=10.10.0.105,name=bigdata02.fra Ready 10.10.0.106 kubernetes.io/hostname=10.10.0.106,name=bigdata01.cgn Ready 10.10.0.107 kubernetes.io/hostname=10.10.0.107,name=bigdata01.fra Ready 10.10.0.108 kubernetes.io/hostname=10.10.0.108,name=core06.fra Ready 10.10.0.109 kubernetes.io/hostname=10.10.0.109,name=core05.fra Ready 10.10.0.110 kubernetes.io/hostname=10.10.0.110,name=core04.fra Ready
  • 47. core@core-01 ~ $ kubectl get namespaces NAME LABELS STATUS default <none> Active
  • 48. core@core-01 ~ $ kubectl get namespaces NAME LABELS STATUS default <none> Active core@core-01 ~ $ kubectl --namespace=default get all CONTROLLER CONTAINER(S) IMAGE(S) SELECTOR REPLICAS NAME LABELS SELECTOR IP(S) PORT(S) NAME READY STATUS RESTARTS AGE NAME LABELS STATUS VOLUME
  • 49. core@core-01 ~ $ kubectl config view apiVersion: v1 kind: Config clusters: - name: production
 cluster: server: https://core01.fra.chefkoch.net:6443 contexts: - name: foobar.production 
 context: cluster: production namespace: foobar user: john.doe users: - name: john.doe user: username: john.doe password: p4ssw0rd current-context: ""
  • 50. core@core-01 ~ $ kubectl config view apiVersion: v1 kind: Config clusters: - name: production
 cluster: server: https://core01.fra.chefkoch.net:6443 contexts: - name: foobar.production 
 context: cluster: production namespace: foobar user: john.doe users: - name: john.doe user: username: john.doe password: p4ssw0rd current-context: "" core@core-01 ~ $ kubectl --context=foobar.production get all
  • 51. core@core-01 ~ $ kubectl config view apiVersion: v1 kind: Config clusters: - name: production
 cluster: server: https://core01.fra.chefkoch.net:6443 contexts: - name: foobar.production 
 context: cluster: production namespace: foobar user: john.doe users: - name: john.doe user: username: john.doe password: p4ssw0rd current-context: "" core@core-01 ~ $ kubectl --context=foobar.production get all core@core-01 ~ $ kubectl --cluster=production get all
  • 52. core@core-01 ~ $ kubectl config view apiVersion: v1 kind: Config clusters: - name: production
 cluster: server: https://core01.fra.chefkoch.net:6443 contexts: - name: foobar.production 
 context: cluster: production namespace: foobar user: john.doe users: - name: john.doe user: username: john.doe password: p4ssw0rd current-context: "" core@core-01 ~ $ kubectl --context=foobar.production get all core@core-01 ~ $ kubectl --cluster=production get all core@core-01 ~ $ kubectl --username=john.doe --password=p4ssw0rd get all
  • 53. core@core-01 ~ $ kubectl config view apiVersion: v1 kind: Config clusters: - name: production
 cluster: server: https://core01.fra.chefkoch.net:6443 contexts: - name: foobar.production 
 context: cluster: production namespace: foobar user: john.doe users: - name: john.doe user: username: john.doe password: p4ssw0rd current-context: "" core@core-01 ~ $ kubectl config use-context foobar.production core@core-01 ~ $ kubectl --context=foobar.production get all core@core-01 ~ $ kubectl --cluster=production get all core@core-01 ~ $ kubectl --username=john.doe --password=p4ssw0rd get all
  • 54. Pods
  • 55. apiVersion: v1 kind: Pod metadata: name: my-symfony-app labels: name: my-symfony-app spec: 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
  • 56. core@core-01 ~ $ kubectl create -f my-symfony-app.yml
  • 57. core@core-01 ~ $ kubectl get pods NAME READY STATUS RESTARTS AGE my-symfony-app 2/2 Running 0 2s core@core-01 ~ $ kubectl create -f my-symfony-app.yml
  • 58. core@core-01 ~ $ kubectl get pods NAME READY STATUS RESTARTS AGE my-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
  • 59. core@core-01 ~ $ kubectl get pods NAME READY STATUS RESTARTS AGE my-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
  • 60. core@core-01 ~ $ kubectl get pods NAME READY STATUS RESTARTS AGE my-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 pods NAME 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
  • 62. Features, Features, Features! • Readiness-Probe, Liveness-Probe
  • 63. Features, Features, Features! • Readiness-Probe, Liveness-Probe • Livecycle-Hooks
  • 64. Features, Features, Features! • Readiness-Probe, Liveness-Probe • Livecycle-Hooks • ImagePull-Policy
  • 65. Features, Features, Features! • Readiness-Probe, Liveness-Probe • Livecycle-Hooks • ImagePull-Policy • Ressourcen-Limits
  • 66. Features, Features, Features! • Readiness-Probe, Liveness-Probe • Livecycle-Hooks • ImagePull-Policy • Ressourcen-Limits • Verschiedene Mounts
  • 67. Features, Features, Features! • Readiness-Probe, Liveness-Probe • Livecycle-Hooks • ImagePull-Policy • Ressourcen-Limits • Verschiedene Mounts • GCE
  • 68. Features, Features, Features! • Readiness-Probe, Liveness-Probe • Livecycle-Hooks • ImagePull-Policy • Ressourcen-Limits • Verschiedene Mounts • GCE • AWS EBS
  • 69. Features, Features, Features! • Readiness-Probe, Liveness-Probe • Livecycle-Hooks • ImagePull-Policy • Ressourcen-Limits • Verschiedene Mounts • GCE • AWS EBS • iSCSI
  • 70. Features, Features, Features! • Readiness-Probe, Liveness-Probe • Livecycle-Hooks • ImagePull-Policy • Ressourcen-Limits • Verschiedene Mounts • GCE • AWS EBS • iSCSI • NFS
  • 71. Features, Features, Features! • Readiness-Probe, Liveness-Probe • Livecycle-Hooks • ImagePull-Policy • Ressourcen-Limits • Verschiedene Mounts • GCE • AWS EBS • iSCSI • NFS • Glusterfs
  • 72. Features, Features, Features! • Readiness-Probe, Liveness-Probe • Livecycle-Hooks • ImagePull-Policy • Ressourcen-Limits • Verschiedene Mounts • GCE • AWS EBS • iSCSI • NFS • Glusterfs • Git-Repo
  • 74. apiVersion: v1 kind: ReplicationController metadata: name: my-symfony-app spec: selector: name: my-symfony-app replicas: 5 template: // Inhalt von my-symfony-app.yml my-symfony-app-rc.yml
  • 75. core@core-01 ~ $ kubectl create -f my-symfony-app-rc.yml
  • 76. core@core-01 ~ $ kubectl get pods NAME READY STATUS RESTARTS AGE my-symfony-app-jzd97 2/2 Running 0 2s my-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
  • 77. core@core-01 ~ $ kubectl get pods NAME READY STATUS RESTARTS AGE my-symfony-app-jzd97 2/2 Running 0 2s my-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
  • 78. core@core-01 ~ $ kubectl get pods NAME READY STATUS RESTARTS AGE my-symfony-app-jzd97 2/2 Running 0 2s my-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 pods NAME READY STATUS RESTARTS AGE my-symfony-app-9tbfb 2/2 Running 0 2s my-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
  • 79. core@core-01 ~ $ kubectl get pods NAME READY STATUS RESTARTS AGE my-symfony-app-jzd97 2/2 Running 0 2s my-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 pods NAME READY STATUS RESTARTS AGE my-symfony-app-9tbfb 2/2 Running 0 2s my-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
  • 80. core@core-01 ~ $ kubectl get pods NAME READY STATUS RESTARTS AGE my-symfony-app-jzd97 2/2 Running 0 2s my-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 pods NAME READY STATUS RESTARTS AGE my-symfony-app-9tbfb 2/2 Running 0 2s my-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 core@core-01 ~ $ kubectl get pods NAME READY STATUS RESTARTS AGE my-symfony-app-9tbfb 2/2 Running 0 10s my-symfony-app-ui6yv 2/2 Running 0 10s
  • 83. Features, Features, Features! • Rescheduling • Rolling Updates
  • 84. Features, Features, Features! • Rescheduling • Rolling Updates • Multiple Release Tracks
  • 86. apiVersion: v1 kind: Service metadata: name: my-symfony-app spec: selector: name: my-symfony-app ports: - port: 80 my-symfony-app-svc.yml
  • 87. core@core-01 ~ $ kubectl create -f my-symfony-app-svc.yml
  • 88. core@core-01 ~ $ kubectl get services NAME 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
  • 89. core@core-01 ~ $ kubectl get services NAME 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-app HTTP/1.1 200 OK Server: nginx/1.9.3 (Ubuntu) Date: Fri, 16 Oct 2015 06:46:35 GMT Content-Type: text/html Content-Length: 177 Connection: keep-alive
  • 92. Features, Features, Features! • Renaming • Load-Balancing
  • 93. Features, Features, Features! • Renaming • Load-Balancing • Node-Port
  • 94. Features, Features, Features! • Renaming • Load-Balancing • Node-Port • Static Endpoints
  • 95. Features, Features, Features! • Renaming • Load-Balancing • Node-Port • Static Endpoints • Bidirektionale Verbindungen
  • 96. Features, Features, Features! • Renaming • Load-Balancing • Node-Port • Static Endpoints • Bidirektionale Verbindungen • Das alles in Echtzeit!
  • 102.
  • 104. Bugs, Bugs, Bugs… • Namespace-Isolation
  • 105. Bugs, Bugs, Bugs… • Namespace-Isolation • Concurrent-Pull
  • 106. Bugs, Bugs, Bugs… • Namespace-Isolation • Concurrent-Pull • Orphan-Pull
  • 107. Bugs, Bugs, Bugs… • Namespace-Isolation • Concurrent-Pull • Orphan-Pull • Exec-Timeout
  • 108. Bugs, Bugs, Bugs… • Namespace-Isolation • Concurrent-Pull • Orphan-Pull • Exec-Timeout • …
  • 109.
  • 110.
  • 111.
  • 114. Fehlende Features • kubectl wait • Variablen-Expansion
  • 115. Fehlende Features • kubectl wait • Variablen-Expansion • …
  • 116. Fazit
  • 117.
  • 120. Container forcieren DevOps! Container forcieren CD! Orchestrierung ist komplex
  • 121. Container forcieren DevOps! Container forcieren CD! Tooling ist Bleeding Edge Orchestrierung ist komplex
  • 122. Container forcieren DevOps! Container forcieren CD! Tooling ist Bleeding Edge Orchestrierung ist komplex Wir vertrauen auf Kubernetes!
  • 123. ?Fragen http://chefkoch.jobs - We are hiring ;) http://perprogramming.de info@perprogramming.de Danke!