SlideShare a Scribd company logo
Kubernetes
Love at first sight?
7, June 2018
Joost Hofman (Lead Developer @ Albert Heijn IT Online)
Milo van der zee (Senior Developer @Albert Heijn IT Online)
Agenda
How?
Kubernetes
Why at AH?
Relational problems Is it real love?
Questions
kubectl get
Kubernetes
is an open-source system for automating deployment, scaling,
and management of containerized applications.
kubectl get
Kubernetes - Searches
kubectl get
Kubernetes
kubectl get
Service
POD POD
1 … n1 … n
Kubernetes
kubectl get
Operator /
Developer
Kubernetes Master
API Server Controller Manager
Scheduler
ETCD
Kubernetes Node
Kubelet kube-proxy
Pod Pod Pod Pod…
Kubernetes Node
Kubelet kube-proxy
Pod Pod Pod Pod…Up to 5000
Users
Plugin Network - Calico
user@host $ kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8snode2098 Ready,SchedulingDisabled master 12d v1.8.4+coreos.0
k8snode2099 Ready,SchedulingDisabled master 12d v1.8.4+coreos.0
k8snode2100 Ready,SchedulingDisabled master 12d v1.8.4+coreos.0
k8snode2101 Ready node 12d v1.8.4+coreos.0
k8snode2102 Ready node 12d v1.8.4+coreos.0
k8snode2103 Ready node 12d v1.8.4+coreos.0
k8snode2104 Ready node 12d v1.8.4+coreos.0
k8snode2105 Ready node 12d v1.8.4+coreos.0
k8snode2107 Ready node 12d v1.8.4+coreos.0
k8snode2108 Ready node 12d v1.8.4+coreos.0
k8snode2109 Ready node 12d v1.8.4+coreos.0
k8snode2110 Ready node 12d v1.8.4+coreos.0
k8snode2111 Ready node 12d v1.8.4+coreos.0
Kubernetes
user@host $ kubectl get pods -o wide
NAME READY STATUS IP NODE
shoppinglist-widget-3162246403-q7c1x 1/1 Running 10.233.106.55 k8snode1657
subscription-service-8cc4c97fb-dh9zz 1/1 Running 10.233.87.218 k8snode1656
subscription-service-8cc4c97fb-t7wrj 1/1 Running 10.233.73.169 k8snode1651
taxonomy-neo4j-neo4j-core-0 1/1 Running 10.233.124.123 k8snode1814
taxonomy-neo4j-neo4j-core-1 1/1 Running 10.233.73.147 k8snode1651
taxonomy-neo4j-neo4j-core-2 1/1 Running 10.233.79.109 k8snode1813
taxonomy-service-7b4fb7f8d5-c6mvb 1/1 Running 10.233.79.105 k8snode1813
taxonomy-service-7b4fb7f8d5-h2hjk 1/1 Running 10.233.68.145 k8snode1655
gateway-3060515939-57r22 1/1 Running 10.233.124.98 k8snode1814
gateway-3060515939-9lqzk 1/1 Running 10.233.68.185 k8snode1655
gateway-3060515939-fkt9k 1/1 Running 10.233.71.29 k8snode1654
gateway-3060515939-ls9pv 1/1 Running 10.233.79.101 k8snode1813
Kubernetes
# kubectl -n online-prd describe pod gateway-3060515939-57r22
Name: gateway-3060515939-57r22
Namespace: online-prd
Node: k8snode1814/150.83.153.243
Start Time: Wed, 14 Feb 2018 13:12:03 +0100
Labels: name=gateway
Status: Running
IP: 10.233.124.98
Containers:
gateway:
Image: regisry-docker.online.ah.nl:443/ah-open-api-gateway:0.1.2
Port: <none>
Pods – kubectl describe pod api gateway
# kubectl describe svc gateway
Name: gateway
Namespace: online-prd
Labels: run=gateway
Annotations: kubectl.kubernetes.io/last-applied-
configuration={"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"ru
n":"gateway"},"name":"gateway","namespace":"online-prd"},"spec":{"ports":...
Selector: run=gateway
Type: ClusterIP
IP: 10.233.52.234
Port: <unset> 8080/TCP
TargetPort: 8080/TCP
Endpoints: 10.233.124.98:8080,10.233.68.185:8080,10.233.71.29:8080 + 1 more...
Session Affinity: None
Events: <none>
Service - kubectl describe svc api gateway
-A KUBE-SERVICES -d 10.233.52.234/32 -p tcp -m tcp
--dport 443 -j SVC-JFMNS
-A SVC-JFMNS --mode random --probability 0.25 -j KUBE-SEP-JPX2Q
-A SVC-JFMNS --mode random --probability 0.33 -j KUBE-SEP-KUJYT
-A SVC-JFMNS --mode random --probability 0.5 -j KUBE-SEP-HTGFR
-A SVC-JFMNS --mode random -j KUBE-SEP-JP5GT
-A SEP-JPX2Q -p tcp -m recent
-j DNAT --to-destination 143.54.22.4:6443
kubectl get
api service – iptables
Why @ Albert Heijn?
kubectl get
2015
Monolith
Binary coupling
Scalability problems
Growth issues
CI/CD impossible
Downtime
Scalable
Decoupling
Rolling updates
Services
CI/CD to the max
Isolation of code
Zero downtime
Technology agnostic
NOW and future
Why @ Albert Heijn?
kubectl get
… on a modern, scalable, automated platform
Scalable architecture and technology
Commodity
hardware
Virtualization
Virtual hardware
Container management platform
- Manual
- Within months
- Semi-automated
- Within weeks
- Fully automated
- Within minutes
Containers
On Premise VS Cloud
kubectl get
No cloud options in 2016 and 2017
How?
kubectl get
How?
kubectl get
A HTTP call to appietoday.nl
kubectl get
Users
Loadbalancer
Nginx - Ingress
Frontend (service)
Frontend (pod)
API Gateway (service)
API Gateway (pod)
API (service)
API (pod)
IDP (service)
IDP (pod)
Our setup?
kubectl get
PlatformServicesAPI GatewayFrontend
65+ services /
components
5 Clusters
50+ nodes
850+ Docker containers
Continuous delivery
Continuous delivery –
Automated from
development to
production
Authorization
Authentication
Throttling
Routing
Automate platform
deployment with Ansible
Relational problems: Communication and Storage.
kubectl get
Relational problems: Storage.
kubectl get
On premise Storage
vSphere volumes
Host path
NFS
Relational problems: Storage.
kubectl get
On premise Storage
GlusterFS
Relational problems: Postgres on Gluster.
kubectl get
pg_restore: [archiver (db)] Error from TOC entry 53398; 0 16503 TABLE
DATA l1aaux_sci sdmcleod
pg_restore: [archiver (db)] COPY failed for table "l1aaux_sci": ERROR:
unexpected data beyond EOF in block 9391 of relation base/16386/17043
HINT: This has been seen to occur with buggy kernels; consider
updating your system.
CONTEXT: COPY l1aaux_sci, line 319329: "1854661 N
1.05156717906094999 1378796678.44843268 2012-02-01
07:04:39.5+00 2012-02-01 07:04:38.4484..."
pg_restore: [archiver (db)] Error from TOC entry 53399; 0 16528 TABLE
DATA l1afts_dbl sdmcleod
pg_restore: [archiver (db)] COPY failed for table "l1afts_dbl": ERROR:
unexpected data beyond EOF in block 10097 of relation
base/16386/17068
HINT: This has been seen to occur with buggy kernels; consider
updating your system.
Relational problems: Postgres on Gluster.
postgres source code: src/backend/storage/buffer/bufmgr.c
kubectl get
/*
* We get here only in the corner case where we are trying to extend
* the relation but we found a pre-existing buffer marked BM_VALID.
* This can happen because mdread doesn't complain about reads beyond
* EOF (when zero_damaged_pages is ON) and so a previous attempt to
* read a block beyond EOF could have left a "valid" zero-filled
* buffer. Unfortunately, we have also seen this case occurring
* because of buggy Linux kernels that sometimes return an
* lseek(SEEK_END) result that doesn't account for a recent write. In
* that situation, the pre-existing buffer would contain valid data
* that we don't want to overwrite. Since the legitimate case should
* always have left a zero-filled buffer, complain if not PageIsNew.
*/
bufBlock = isLocalBuf ? LocalBufHdrGetBlock(bufHdr) : BufHdrGetBlock(bufHdr);
if (!PageIsNew((Page) bufBlock))
ereport(ERROR,
(errmsg("unexpected data beyond EOF in block %u of relation %s",
blockNum, relpath(smgr->smgr_rnode, forkNum)),
errhint("This has been seen to occur with buggy kernels; consider updating your system.")));
Relation problems: Containers drop
kubectl get
Relation problems: Communication.
kubectl getKubernetes Node
Network
Test (Pod)
DS
Kube DNS (service)
Kubernetes Master
Network
Test (Pod)
DS
Kube DNS (pod)
Kubernetes Node
Network
Test (Pod)
DS
Kube DNS (pod)
Kubernetes gives more benefits than doubts on premise
kubectl get
A lot of open source tools around
Helm packages
Fast delivery of software
Auto healing
Very very stable (Only got called out of bed once at night in 2017)
Happy developers
Enabler for DevOps
Etc..
Open source tools that boosts our relationship
kubectl get
Projects that boosts our relationship
kubectl get
Kubespray saved months of work setting up Kubernetes on premise.
Easily deploying production-ready Kubernetes clusters.
Projects that boosts our relationship
kubectl get
KUBEADM
Projects that boosts our relationship
kubectl get
Helm makes upgrading and maintaining our applications
predictable and super easy.
Package manager for Kubernetes
Love
kubectl get
Joost Milo
Questions?
kubectl get

More Related Content

What's hot

Making cloud native platform by kubernetes
Making cloud native platform by kubernetesMaking cloud native platform by kubernetes
Making cloud native platform by kubernetes
어형 이
 
Packet Walk(s) In Kubernetes
Packet Walk(s) In KubernetesPacket Walk(s) In Kubernetes
Packet Walk(s) In Kubernetes
Don Jayakody
 
10 ways to shoot yourself in the foot with kubernetes, #9 will surprise you! ...
10 ways to shoot yourself in the foot with kubernetes, #9 will surprise you! ...10 ways to shoot yourself in the foot with kubernetes, #9 will surprise you! ...
10 ways to shoot yourself in the foot with kubernetes, #9 will surprise you! ...
Laurent Bernaille
 
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Henning Jacobs
 
Bare Metal Kubernetes - More Containers, Less Overhead
Bare Metal Kubernetes  - More Containers, Less OverheadBare Metal Kubernetes  - More Containers, Less Overhead
Bare Metal Kubernetes - More Containers, Less Overhead
Dustin Kirkland
 
KubeCon EU 2016: Secure, Cloud-Native Networking with Project Calico
KubeCon EU 2016: Secure, Cloud-Native Networking with Project CalicoKubeCon EU 2016: Secure, Cloud-Native Networking with Project Calico
KubeCon EU 2016: Secure, Cloud-Native Networking with Project Calico
KubeAcademy
 
iptables and Kubernetes
iptables and Kubernetesiptables and Kubernetes
iptables and Kubernetes
HungWei Chiu
 
Docker with BGP - OpenDNS
Docker with BGP - OpenDNSDocker with BGP - OpenDNS
Docker with BGP - OpenDNS
bacongobbler
 
Kubernetes Failure Stories, or: How to Crash Your Cluster - ContainerDays EU ...
Kubernetes Failure Stories, or: How to Crash Your Cluster - ContainerDays EU ...Kubernetes Failure Stories, or: How to Crash Your Cluster - ContainerDays EU ...
Kubernetes Failure Stories, or: How to Crash Your Cluster - ContainerDays EU ...
Henning Jacobs
 
[En] IPVS for Docker Containers
[En] IPVS for Docker Containers[En] IPVS for Docker Containers
[En] IPVS for Docker Containers
Andrey Sibirev
 
Kubernetes Scheduler deep dive
Kubernetes Scheduler deep diveKubernetes Scheduler deep dive
Kubernetes Scheduler deep dive
DONGJIN KIM
 
Seastar at Linux Foundation Collaboration Summit
Seastar at Linux Foundation Collaboration SummitSeastar at Linux Foundation Collaboration Summit
Seastar at Linux Foundation Collaboration Summit
Don Marti
 
IP Virtual Server(IPVS) 101
IP Virtual Server(IPVS) 101IP Virtual Server(IPVS) 101
IP Virtual Server(IPVS) 101
HungWei Chiu
 
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...
Henning Jacobs
 
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
Igalia
 
Kubernetes
KubernetesKubernetes
Kubernetes
DONGJIN KIM
 
Seastar @ NYCC++UG
Seastar @ NYCC++UGSeastar @ NYCC++UG
Seastar @ NYCC++UG
Avi Kivity
 
Kubernetes: Beyond Baby Steps
Kubernetes: Beyond Baby StepsKubernetes: Beyond Baby Steps
Kubernetes: Beyond Baby Steps
DigitalOcean
 
Load Balancing 101
Load Balancing 101Load Balancing 101
Load Balancing 101
HungWei Chiu
 
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipelineKubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
KubeAcademy
 

What's hot (20)

Making cloud native platform by kubernetes
Making cloud native platform by kubernetesMaking cloud native platform by kubernetes
Making cloud native platform by kubernetes
 
Packet Walk(s) In Kubernetes
Packet Walk(s) In KubernetesPacket Walk(s) In Kubernetes
Packet Walk(s) In Kubernetes
 
10 ways to shoot yourself in the foot with kubernetes, #9 will surprise you! ...
10 ways to shoot yourself in the foot with kubernetes, #9 will surprise you! ...10 ways to shoot yourself in the foot with kubernetes, #9 will surprise you! ...
10 ways to shoot yourself in the foot with kubernetes, #9 will surprise you! ...
 
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
 
Bare Metal Kubernetes - More Containers, Less Overhead
Bare Metal Kubernetes  - More Containers, Less OverheadBare Metal Kubernetes  - More Containers, Less Overhead
Bare Metal Kubernetes - More Containers, Less Overhead
 
KubeCon EU 2016: Secure, Cloud-Native Networking with Project Calico
KubeCon EU 2016: Secure, Cloud-Native Networking with Project CalicoKubeCon EU 2016: Secure, Cloud-Native Networking with Project Calico
KubeCon EU 2016: Secure, Cloud-Native Networking with Project Calico
 
iptables and Kubernetes
iptables and Kubernetesiptables and Kubernetes
iptables and Kubernetes
 
Docker with BGP - OpenDNS
Docker with BGP - OpenDNSDocker with BGP - OpenDNS
Docker with BGP - OpenDNS
 
Kubernetes Failure Stories, or: How to Crash Your Cluster - ContainerDays EU ...
Kubernetes Failure Stories, or: How to Crash Your Cluster - ContainerDays EU ...Kubernetes Failure Stories, or: How to Crash Your Cluster - ContainerDays EU ...
Kubernetes Failure Stories, or: How to Crash Your Cluster - ContainerDays EU ...
 
[En] IPVS for Docker Containers
[En] IPVS for Docker Containers[En] IPVS for Docker Containers
[En] IPVS for Docker Containers
 
Kubernetes Scheduler deep dive
Kubernetes Scheduler deep diveKubernetes Scheduler deep dive
Kubernetes Scheduler deep dive
 
Seastar at Linux Foundation Collaboration Summit
Seastar at Linux Foundation Collaboration SummitSeastar at Linux Foundation Collaboration Summit
Seastar at Linux Foundation Collaboration Summit
 
IP Virtual Server(IPVS) 101
IP Virtual Server(IPVS) 101IP Virtual Server(IPVS) 101
IP Virtual Server(IPVS) 101
 
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - Cont...
 
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSD...
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Seastar @ NYCC++UG
Seastar @ NYCC++UGSeastar @ NYCC++UG
Seastar @ NYCC++UG
 
Kubernetes: Beyond Baby Steps
Kubernetes: Beyond Baby StepsKubernetes: Beyond Baby Steps
Kubernetes: Beyond Baby Steps
 
Load Balancing 101
Load Balancing 101Load Balancing 101
Load Balancing 101
 
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipelineKubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
 

Similar to Kubernetes: love at first sight?

Kubernetes - Starting with 1.2
Kubernetes  - Starting with 1.2Kubernetes  - Starting with 1.2
Kubernetes - Starting with 1.2
William Stewart
 
Kubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of ContainersKubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of Containers
Kel Cecil
 
OSS Japan 2019 service mesh bridging Kubernetes and legacy
OSS Japan 2019 service mesh bridging Kubernetes and legacyOSS Japan 2019 service mesh bridging Kubernetes and legacy
OSS Japan 2019 service mesh bridging Kubernetes and legacy
Steve Wong
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17
Ryan Jarvinen
 
Data weekender deploying prod grade sql 2019 big data clusters
Data weekender deploying prod grade sql 2019 big data clustersData weekender deploying prod grade sql 2019 big data clusters
Data weekender deploying prod grade sql 2019 big data clusters
Chris Adkin
 
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
 
Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...
Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...
Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...
Paris Open Source Summit
 
k8s practice 2023.pptx
k8s practice 2023.pptxk8s practice 2023.pptx
k8s practice 2023.pptx
wonyong hwang
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
Eueung Mulyana
 
Method of NUMA-Aware Resource Management for Kubernetes 5G NFV Cluster
Method of NUMA-Aware Resource Management for Kubernetes 5G NFV ClusterMethod of NUMA-Aware Resource Management for Kubernetes 5G NFV Cluster
Method of NUMA-Aware Resource Management for Kubernetes 5G NFV Cluster
byonggon chun
 
Why I love Kubernetes Failure Stories and you should too - GOTO Berlin
Why I love Kubernetes Failure Stories and you should too - GOTO BerlinWhy I love Kubernetes Failure Stories and you should too - GOTO Berlin
Why I love Kubernetes Failure Stories and you should too - GOTO Berlin
Henning Jacobs
 
Kubernetes extensibility
Kubernetes extensibilityKubernetes extensibility
Kubernetes extensibility
Docker, Inc.
 
Deep Learning and Gene Computing Acceleration with Alluxio in Kubernetes
Deep Learning and Gene Computing Acceleration with Alluxio in KubernetesDeep Learning and Gene Computing Acceleration with Alluxio in Kubernetes
Deep Learning and Gene Computing Acceleration with Alluxio in Kubernetes
Alluxio, Inc.
 
JDO 2019: What you should be aware of before setting up kubernetes on premise...
JDO 2019: What you should be aware of before setting up kubernetes on premise...JDO 2019: What you should be aware of before setting up kubernetes on premise...
JDO 2019: What you should be aware of before setting up kubernetes on premise...
PROIDEA
 
Understanding kube proxy in ipvs mode
Understanding kube proxy in ipvs modeUnderstanding kube proxy in ipvs mode
Understanding kube proxy in ipvs mode
Victor Morales
 
KubeCon EU 2016: A Practical Guide to Container Scheduling
KubeCon EU 2016: A Practical Guide to Container SchedulingKubeCon EU 2016: A Practical Guide to Container Scheduling
KubeCon EU 2016: A Practical Guide to Container Scheduling
KubeAcademy
 
Linux kernel bug hunting
Linux kernel bug huntingLinux kernel bug hunting
Linux kernel bug hunting
Andrea Righi
 
Kubernetes Basis: Pods, Deployments, and Services
Kubernetes Basis: Pods, Deployments, and ServicesKubernetes Basis: Pods, Deployments, and Services
Kubernetes Basis: Pods, Deployments, and Services
Jian-Kai Wang
 
20170705 kubernetes with calico
20170705 kubernetes with calico20170705 kubernetes with calico
20170705 kubernetes with calico
Isaac Tseng
 
Dayta AI Seminar - Kubernetes, Docker and AI on Cloud
Dayta AI Seminar - Kubernetes, Docker and AI on CloudDayta AI Seminar - Kubernetes, Docker and AI on Cloud
Dayta AI Seminar - Kubernetes, Docker and AI on Cloud
Jung-Hong Kim
 

Similar to Kubernetes: love at first sight? (20)

Kubernetes - Starting with 1.2
Kubernetes  - Starting with 1.2Kubernetes  - Starting with 1.2
Kubernetes - Starting with 1.2
 
Kubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of ContainersKubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of Containers
 
OSS Japan 2019 service mesh bridging Kubernetes and legacy
OSS Japan 2019 service mesh bridging Kubernetes and legacyOSS Japan 2019 service mesh bridging Kubernetes and legacy
OSS Japan 2019 service mesh bridging Kubernetes and legacy
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17
 
Data weekender deploying prod grade sql 2019 big data clusters
Data weekender deploying prod grade sql 2019 big data clustersData weekender deploying prod grade sql 2019 big data clusters
Data weekender deploying prod grade sql 2019 big data clusters
 
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)
 
Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...
Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...
Keynote #Tech - Google : aperçu de la gestion des services distribués chez Go...
 
k8s practice 2023.pptx
k8s practice 2023.pptxk8s practice 2023.pptx
k8s practice 2023.pptx
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
Method of NUMA-Aware Resource Management for Kubernetes 5G NFV Cluster
Method of NUMA-Aware Resource Management for Kubernetes 5G NFV ClusterMethod of NUMA-Aware Resource Management for Kubernetes 5G NFV Cluster
Method of NUMA-Aware Resource Management for Kubernetes 5G NFV Cluster
 
Why I love Kubernetes Failure Stories and you should too - GOTO Berlin
Why I love Kubernetes Failure Stories and you should too - GOTO BerlinWhy I love Kubernetes Failure Stories and you should too - GOTO Berlin
Why I love Kubernetes Failure Stories and you should too - GOTO Berlin
 
Kubernetes extensibility
Kubernetes extensibilityKubernetes extensibility
Kubernetes extensibility
 
Deep Learning and Gene Computing Acceleration with Alluxio in Kubernetes
Deep Learning and Gene Computing Acceleration with Alluxio in KubernetesDeep Learning and Gene Computing Acceleration with Alluxio in Kubernetes
Deep Learning and Gene Computing Acceleration with Alluxio in Kubernetes
 
JDO 2019: What you should be aware of before setting up kubernetes on premise...
JDO 2019: What you should be aware of before setting up kubernetes on premise...JDO 2019: What you should be aware of before setting up kubernetes on premise...
JDO 2019: What you should be aware of before setting up kubernetes on premise...
 
Understanding kube proxy in ipvs mode
Understanding kube proxy in ipvs modeUnderstanding kube proxy in ipvs mode
Understanding kube proxy in ipvs mode
 
KubeCon EU 2016: A Practical Guide to Container Scheduling
KubeCon EU 2016: A Practical Guide to Container SchedulingKubeCon EU 2016: A Practical Guide to Container Scheduling
KubeCon EU 2016: A Practical Guide to Container Scheduling
 
Linux kernel bug hunting
Linux kernel bug huntingLinux kernel bug hunting
Linux kernel bug hunting
 
Kubernetes Basis: Pods, Deployments, and Services
Kubernetes Basis: Pods, Deployments, and ServicesKubernetes Basis: Pods, Deployments, and Services
Kubernetes Basis: Pods, Deployments, and Services
 
20170705 kubernetes with calico
20170705 kubernetes with calico20170705 kubernetes with calico
20170705 kubernetes with calico
 
Dayta AI Seminar - Kubernetes, Docker and AI on Cloud
Dayta AI Seminar - Kubernetes, Docker and AI on CloudDayta AI Seminar - Kubernetes, Docker and AI on Cloud
Dayta AI Seminar - Kubernetes, Docker and AI on Cloud
 

More from Bol.com Techlab

The hitchhiker’s guide to Prometheus
The hitchhiker’s guide to PrometheusThe hitchhiker’s guide to Prometheus
The hitchhiker’s guide to Prometheus
Bol.com Techlab
 
Test long and prosper
Test long and prosperTest long and prosper
Test long and prosper
Bol.com Techlab
 
The Reactive Rollercoaster
The Reactive RollercoasterThe Reactive Rollercoaster
The Reactive Rollercoaster
Bol.com Techlab
 
Best painkiller for Java headache
Best painkiller for Java headacheBest painkiller for Java headache
Best painkiller for Java headache
Bol.com Techlab
 
Organizing a conference in 80 days
Organizing a conference in 80 daysOrganizing a conference in 80 days
Organizing a conference in 80 days
Bol.com Techlab
 
Three steps to untangle data traffic jams
Three steps to untangle data traffic jamsThree steps to untangle data traffic jams
Three steps to untangle data traffic jams
Bol.com Techlab
 
Understanding Operating Systems by breaking them
Understanding Operating Systems by breaking themUnderstanding Operating Systems by breaking them
Understanding Operating Systems by breaking them
Bol.com Techlab
 
How to train your dragon
How to train your dragonHow to train your dragon
How to train your dragon
Bol.com Techlab
 
The hitchhiker’s guide to Prometheus
The hitchhiker’s guide to PrometheusThe hitchhiker’s guide to Prometheus
The hitchhiker’s guide to Prometheus
Bol.com Techlab
 
Software for drafting a cold beer
Software for drafting a cold beerSoftware for drafting a cold beer
Software for drafting a cold beer
Bol.com Techlab
 
Going to the cloud: Forget EVERYTHING you know!
Going to the cloud: Forget EVERYTHING you know!Going to the cloud: Forget EVERYTHING you know!
Going to the cloud: Forget EVERYTHING you know!
Bol.com Techlab
 
How to create your presentation in an iterative way
How to create your presentation in an iterative wayHow to create your presentation in an iterative way
How to create your presentation in an iterative way
Bol.com Techlab
 
Wax on, wax off
Wax on, wax offWax on, wax off
Wax on, wax off
Bol.com Techlab
 
Jupyter and Pandas to the rescue!
Jupyter and Pandas to the rescue!Jupyter and Pandas to the rescue!
Jupyter and Pandas to the rescue!
Bol.com Techlab
 
How the best of Design and Development come together
How the best of Design and Development come togetherHow the best of Design and Development come together
How the best of Design and Development come together
Bol.com Techlab
 
The addition to your team you never knew you needed
The addition to your team you never knew you neededThe addition to your team you never knew you needed
The addition to your team you never knew you needed
Bol.com Techlab
 
Gravitational waves: A new era in astronomy
Gravitational waves: A new era in astronomyGravitational waves: A new era in astronomy
Gravitational waves: A new era in astronomy
Bol.com Techlab
 
Consumer Driven Contract Testing
Consumer Driven Contract TestingConsumer Driven Contract Testing
Consumer Driven Contract Testing
Bol.com Techlab
 
I want to go fast! - Exposing performance bottlenecks
I want to go fast! - Exposing performance bottlenecksI want to go fast! - Exposing performance bottlenecks
I want to go fast! - Exposing performance bottlenecks
Bol.com Techlab
 
Blockchain: the magical database in the cloud?
Blockchain: the magical database in the cloud?Blockchain: the magical database in the cloud?
Blockchain: the magical database in the cloud?
Bol.com Techlab
 

More from Bol.com Techlab (20)

The hitchhiker’s guide to Prometheus
The hitchhiker’s guide to PrometheusThe hitchhiker’s guide to Prometheus
The hitchhiker’s guide to Prometheus
 
Test long and prosper
Test long and prosperTest long and prosper
Test long and prosper
 
The Reactive Rollercoaster
The Reactive RollercoasterThe Reactive Rollercoaster
The Reactive Rollercoaster
 
Best painkiller for Java headache
Best painkiller for Java headacheBest painkiller for Java headache
Best painkiller for Java headache
 
Organizing a conference in 80 days
Organizing a conference in 80 daysOrganizing a conference in 80 days
Organizing a conference in 80 days
 
Three steps to untangle data traffic jams
Three steps to untangle data traffic jamsThree steps to untangle data traffic jams
Three steps to untangle data traffic jams
 
Understanding Operating Systems by breaking them
Understanding Operating Systems by breaking themUnderstanding Operating Systems by breaking them
Understanding Operating Systems by breaking them
 
How to train your dragon
How to train your dragonHow to train your dragon
How to train your dragon
 
The hitchhiker’s guide to Prometheus
The hitchhiker’s guide to PrometheusThe hitchhiker’s guide to Prometheus
The hitchhiker’s guide to Prometheus
 
Software for drafting a cold beer
Software for drafting a cold beerSoftware for drafting a cold beer
Software for drafting a cold beer
 
Going to the cloud: Forget EVERYTHING you know!
Going to the cloud: Forget EVERYTHING you know!Going to the cloud: Forget EVERYTHING you know!
Going to the cloud: Forget EVERYTHING you know!
 
How to create your presentation in an iterative way
How to create your presentation in an iterative wayHow to create your presentation in an iterative way
How to create your presentation in an iterative way
 
Wax on, wax off
Wax on, wax offWax on, wax off
Wax on, wax off
 
Jupyter and Pandas to the rescue!
Jupyter and Pandas to the rescue!Jupyter and Pandas to the rescue!
Jupyter and Pandas to the rescue!
 
How the best of Design and Development come together
How the best of Design and Development come togetherHow the best of Design and Development come together
How the best of Design and Development come together
 
The addition to your team you never knew you needed
The addition to your team you never knew you neededThe addition to your team you never knew you needed
The addition to your team you never knew you needed
 
Gravitational waves: A new era in astronomy
Gravitational waves: A new era in astronomyGravitational waves: A new era in astronomy
Gravitational waves: A new era in astronomy
 
Consumer Driven Contract Testing
Consumer Driven Contract TestingConsumer Driven Contract Testing
Consumer Driven Contract Testing
 
I want to go fast! - Exposing performance bottlenecks
I want to go fast! - Exposing performance bottlenecksI want to go fast! - Exposing performance bottlenecks
I want to go fast! - Exposing performance bottlenecks
 
Blockchain: the magical database in the cloud?
Blockchain: the magical database in the cloud?Blockchain: the magical database in the cloud?
Blockchain: the magical database in the cloud?
 

Recently uploaded

PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Zilliz
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 

Recently uploaded (20)

PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 

Kubernetes: love at first sight?

  • 1. Kubernetes Love at first sight? 7, June 2018 Joost Hofman (Lead Developer @ Albert Heijn IT Online) Milo van der zee (Senior Developer @Albert Heijn IT Online)
  • 2. Agenda How? Kubernetes Why at AH? Relational problems Is it real love? Questions kubectl get
  • 3. Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. kubectl get
  • 6. Kubernetes kubectl get Operator / Developer Kubernetes Master API Server Controller Manager Scheduler ETCD Kubernetes Node Kubelet kube-proxy Pod Pod Pod Pod… Kubernetes Node Kubelet kube-proxy Pod Pod Pod Pod…Up to 5000 Users Plugin Network - Calico
  • 7. user@host $ kubectl get nodes NAME STATUS ROLES AGE VERSION k8snode2098 Ready,SchedulingDisabled master 12d v1.8.4+coreos.0 k8snode2099 Ready,SchedulingDisabled master 12d v1.8.4+coreos.0 k8snode2100 Ready,SchedulingDisabled master 12d v1.8.4+coreos.0 k8snode2101 Ready node 12d v1.8.4+coreos.0 k8snode2102 Ready node 12d v1.8.4+coreos.0 k8snode2103 Ready node 12d v1.8.4+coreos.0 k8snode2104 Ready node 12d v1.8.4+coreos.0 k8snode2105 Ready node 12d v1.8.4+coreos.0 k8snode2107 Ready node 12d v1.8.4+coreos.0 k8snode2108 Ready node 12d v1.8.4+coreos.0 k8snode2109 Ready node 12d v1.8.4+coreos.0 k8snode2110 Ready node 12d v1.8.4+coreos.0 k8snode2111 Ready node 12d v1.8.4+coreos.0 Kubernetes
  • 8. user@host $ kubectl get pods -o wide NAME READY STATUS IP NODE shoppinglist-widget-3162246403-q7c1x 1/1 Running 10.233.106.55 k8snode1657 subscription-service-8cc4c97fb-dh9zz 1/1 Running 10.233.87.218 k8snode1656 subscription-service-8cc4c97fb-t7wrj 1/1 Running 10.233.73.169 k8snode1651 taxonomy-neo4j-neo4j-core-0 1/1 Running 10.233.124.123 k8snode1814 taxonomy-neo4j-neo4j-core-1 1/1 Running 10.233.73.147 k8snode1651 taxonomy-neo4j-neo4j-core-2 1/1 Running 10.233.79.109 k8snode1813 taxonomy-service-7b4fb7f8d5-c6mvb 1/1 Running 10.233.79.105 k8snode1813 taxonomy-service-7b4fb7f8d5-h2hjk 1/1 Running 10.233.68.145 k8snode1655 gateway-3060515939-57r22 1/1 Running 10.233.124.98 k8snode1814 gateway-3060515939-9lqzk 1/1 Running 10.233.68.185 k8snode1655 gateway-3060515939-fkt9k 1/1 Running 10.233.71.29 k8snode1654 gateway-3060515939-ls9pv 1/1 Running 10.233.79.101 k8snode1813 Kubernetes
  • 9. # kubectl -n online-prd describe pod gateway-3060515939-57r22 Name: gateway-3060515939-57r22 Namespace: online-prd Node: k8snode1814/150.83.153.243 Start Time: Wed, 14 Feb 2018 13:12:03 +0100 Labels: name=gateway Status: Running IP: 10.233.124.98 Containers: gateway: Image: regisry-docker.online.ah.nl:443/ah-open-api-gateway:0.1.2 Port: <none> Pods – kubectl describe pod api gateway
  • 10. # kubectl describe svc gateway Name: gateway Namespace: online-prd Labels: run=gateway Annotations: kubectl.kubernetes.io/last-applied- configuration={"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"ru n":"gateway"},"name":"gateway","namespace":"online-prd"},"spec":{"ports":... Selector: run=gateway Type: ClusterIP IP: 10.233.52.234 Port: <unset> 8080/TCP TargetPort: 8080/TCP Endpoints: 10.233.124.98:8080,10.233.68.185:8080,10.233.71.29:8080 + 1 more... Session Affinity: None Events: <none> Service - kubectl describe svc api gateway
  • 11. -A KUBE-SERVICES -d 10.233.52.234/32 -p tcp -m tcp --dport 443 -j SVC-JFMNS -A SVC-JFMNS --mode random --probability 0.25 -j KUBE-SEP-JPX2Q -A SVC-JFMNS --mode random --probability 0.33 -j KUBE-SEP-KUJYT -A SVC-JFMNS --mode random --probability 0.5 -j KUBE-SEP-HTGFR -A SVC-JFMNS --mode random -j KUBE-SEP-JP5GT -A SEP-JPX2Q -p tcp -m recent -j DNAT --to-destination 143.54.22.4:6443 kubectl get api service – iptables
  • 12. Why @ Albert Heijn? kubectl get 2015 Monolith Binary coupling Scalability problems Growth issues CI/CD impossible Downtime Scalable Decoupling Rolling updates Services CI/CD to the max Isolation of code Zero downtime Technology agnostic NOW and future
  • 13. Why @ Albert Heijn? kubectl get … on a modern, scalable, automated platform Scalable architecture and technology Commodity hardware Virtualization Virtual hardware Container management platform - Manual - Within months - Semi-automated - Within weeks - Fully automated - Within minutes Containers
  • 14. On Premise VS Cloud kubectl get No cloud options in 2016 and 2017
  • 17. A HTTP call to appietoday.nl kubectl get Users Loadbalancer Nginx - Ingress Frontend (service) Frontend (pod) API Gateway (service) API Gateway (pod) API (service) API (pod) IDP (service) IDP (pod)
  • 18. Our setup? kubectl get PlatformServicesAPI GatewayFrontend 65+ services / components 5 Clusters 50+ nodes 850+ Docker containers Continuous delivery Continuous delivery – Automated from development to production Authorization Authentication Throttling Routing Automate platform deployment with Ansible
  • 19. Relational problems: Communication and Storage. kubectl get
  • 20. Relational problems: Storage. kubectl get On premise Storage vSphere volumes Host path NFS
  • 21. Relational problems: Storage. kubectl get On premise Storage GlusterFS
  • 22. Relational problems: Postgres on Gluster. kubectl get pg_restore: [archiver (db)] Error from TOC entry 53398; 0 16503 TABLE DATA l1aaux_sci sdmcleod pg_restore: [archiver (db)] COPY failed for table "l1aaux_sci": ERROR: unexpected data beyond EOF in block 9391 of relation base/16386/17043 HINT: This has been seen to occur with buggy kernels; consider updating your system. CONTEXT: COPY l1aaux_sci, line 319329: "1854661 N 1.05156717906094999 1378796678.44843268 2012-02-01 07:04:39.5+00 2012-02-01 07:04:38.4484..." pg_restore: [archiver (db)] Error from TOC entry 53399; 0 16528 TABLE DATA l1afts_dbl sdmcleod pg_restore: [archiver (db)] COPY failed for table "l1afts_dbl": ERROR: unexpected data beyond EOF in block 10097 of relation base/16386/17068 HINT: This has been seen to occur with buggy kernels; consider updating your system.
  • 23. Relational problems: Postgres on Gluster. postgres source code: src/backend/storage/buffer/bufmgr.c kubectl get /* * We get here only in the corner case where we are trying to extend * the relation but we found a pre-existing buffer marked BM_VALID. * This can happen because mdread doesn't complain about reads beyond * EOF (when zero_damaged_pages is ON) and so a previous attempt to * read a block beyond EOF could have left a "valid" zero-filled * buffer. Unfortunately, we have also seen this case occurring * because of buggy Linux kernels that sometimes return an * lseek(SEEK_END) result that doesn't account for a recent write. In * that situation, the pre-existing buffer would contain valid data * that we don't want to overwrite. Since the legitimate case should * always have left a zero-filled buffer, complain if not PageIsNew. */ bufBlock = isLocalBuf ? LocalBufHdrGetBlock(bufHdr) : BufHdrGetBlock(bufHdr); if (!PageIsNew((Page) bufBlock)) ereport(ERROR, (errmsg("unexpected data beyond EOF in block %u of relation %s", blockNum, relpath(smgr->smgr_rnode, forkNum)), errhint("This has been seen to occur with buggy kernels; consider updating your system.")));
  • 24. Relation problems: Containers drop kubectl get
  • 25. Relation problems: Communication. kubectl getKubernetes Node Network Test (Pod) DS Kube DNS (service) Kubernetes Master Network Test (Pod) DS Kube DNS (pod) Kubernetes Node Network Test (Pod) DS Kube DNS (pod)
  • 26. Kubernetes gives more benefits than doubts on premise kubectl get A lot of open source tools around Helm packages Fast delivery of software Auto healing Very very stable (Only got called out of bed once at night in 2017) Happy developers Enabler for DevOps Etc..
  • 27. Open source tools that boosts our relationship kubectl get
  • 28. Projects that boosts our relationship kubectl get Kubespray saved months of work setting up Kubernetes on premise. Easily deploying production-ready Kubernetes clusters.
  • 29. Projects that boosts our relationship kubectl get KUBEADM
  • 30. Projects that boosts our relationship kubectl get Helm makes upgrading and maintaining our applications predictable and super easy. Package manager for Kubernetes