SlideShare a Scribd company logo
KUBERNETES @ BE-MOBILE
Pieter Callewaert – Teamlead Devops
DATA AGGREGATOR
KUBERNETES @ BE-MOBILE 2
Be-Mobile
mobility
database
Floating car data
• GPS data
• Smartphone data
• Telco data
Road sensors
• Cameras
• Radars
• Loops
Crowd sourced
• Drivers
• Social media
• Police
• Emergency vehicles
Other data
• Public transport
• Car & bike sharing
• Vehicles & bike parking, fuel
• Traffic emission & noise zones
• Toll
Sourcesfrom>20countries
WHO WE ARE
KUBERNETES @ BE-MOBILE 3
Smart Tolling &
Map Matching
Mobility
as a Service
Mobility Monitoring
& Analysis
Traffic
Management
Smart ParkingMobility Payments
Platform
Connected Vehicle
Platforms
Traveler
Information
Smart
mobility
BEFORE
KUBERNETE
S
MANUAL DEPLOYMENT
➞ Deployments were done manually on the servers
• Growing amount of countries where Be-Mobile is active
• Each country needs the same basic set of applications to be set up
• Growing amount of developers
• Meaning more applications to be deployed
• But, all deployments done by the DevOps-team
➞ Time to deployment increased due to the growth
➞ Management of the applications was getting complex
➞ Human errors might occur
KUBERNETES @ BE-MOBILE 5
PUPPET DEPLOYMENT
Dependencies problem: correct version of NodeJS, Java, Mono,…
• Programming the deployment of the applications by configuration
• Roll-outs of new countries and applications were much faster
• Helped avoiding human errors
KUBERNETES @ BE-MOBILE 6
PUPPET+DOCKER DEPLOYMENT
• Isolated environments for an application
• Contains all necessities for the application
• E.g.: website + webserver / Java application + Java framework
• No more need for ‘type-specific servers’
• Different types of applications
can all run on the same server
• Easy to migrate a container or scale
over multiple servers
KUBERNETES @ BE-MOBILE 7
HOWEVER… NEW BOTTLENECKS
• Chaining multiple applications
• Time consuming
• Error sensitive
• Crashes
• Manual interventions
• Deployments
• Faster, but still a backlog of deployments
KUBERNETES @ BE-MOBILE 8
WELCOME
KUBERNETE
S
WHAT IS KUBERNETES
• Google project (Borg) made open-source
• Further developed by a strong community
• Orchestration of containers
• Namespaces
• Self-healing
• Allows us to create deployment chains
KUBERNETES @ BE-MOBILE 10
ORCHESTRATION IN KUBERNETES
• Multiple servers are combined into a cluster
• Kubernetes picks a server to deploy an container to
• By checking the container resource needs (CPU/memory)
• By checking the servers resource availability
• Containers can be scaled or made high available very easy
• Different ways to do a deployment
• E.g.: rolling update, recreate
KUBERNETES @ BE-MOBILE 11
SELF-HEALING WITH KUBERNETES
• When a container no longer responds
• Health checks detect this (if configured)
• Container gets destroyed and restarted
• When a container crashes
• Container gets restarted
• When a server crashes
• Move containers running on the crashed server to another one
➞ Faster recovery time!
KUBERNETES @ BE-MOBILE 12
STARTING WITH KUBERNETES
First experience: The Sockshop demo from the kubernetes.io site (on minikube)
KUBERNETES @ BE-MOBILE 13
PRODUCTION DEPLOYMENT
Installing kubernetes on bare metal!
 A lot of deployment guides are focused on cloud environments
Started with kargo (now known as kubespray). Was our first production cluster.
Very alpha, updating between versions of kubernetes or kargo was very hard.
Then we tried with Kismatic
Easy and well documented installation
”Community” support is great, but only people from Apprenda are working on it
Is still our current installation method.
KUBERNETES @ BE-MOBILE 14
DISTRIBUTE
D
STORAGE
OPTION 1: GLUSTERFS
First experience with distributed storage systems
Installed automatic with Kismatic
Pros:
• Easy to manage/setup
Cons:
• We had to create our Persistent Volumes ourselves
• For some reason, not scalable when creating a lot of volumes
KUBERNETES @ BE-MOBILE 16
OPTION 2: CEPH
Deployed with Ansible
Pros:
• It just works.
• And really fast!
• StorageClass support in Kubernetes
Cons:
• Steep learning curve
• More complex architecture (compared to GlusterFS)
KUBERNETES @ BE-MOBILE 17
KUBERNETE
S
TODAY
WHAT DO WE DEPLOY ON KUBERNETES?
What we do not deploy on Kubernetes :
• Kafka
• Cassandra
• MongoDB
• Ceph
• Elastic Search
• Redis*
What do we deploy on Kubernetes:
• Everything else.
KUBERNETES @ BE-MOBILE 19
INSTALLATION SERVERS: ANSIBLE
• Installing one server was OK, installing 10 servers is slow, repetitive and boring.
• Automatic server installations
• Partitioning
• Basic installation of the operating system
• Configuration of firewall rules
• Deployment of core components (Kubernetes/Ceph)
KUBERNETES @ BE-MOBILE 20
CLUSTERS TODAY
• More than 1 year of production
• We migrated once a full Kubernetes cluster (switch from Kargo to Kismatic)
• Largest cluster surpassed 100 nodes (6.9 TB memory, 1000+ cores)
• Multiple clusters: test cluster, QA clusters, staging cluster,..
KUBERNETES @ BE-MOBILE 21
CONTINOUS DEPLOYMENT
KUBERNETES @ BE-MOBILE 22
VMAP DEPLOYMENTS
KUBERNETES @ BE-MOBILE 23
PROJECT DEPLOYMENT
KUBERNETES @ BE-MOBILE 24
CONTINOUS DEPLOYMENT: OTHER METHODS
KUBERNETES @ BE-MOBILE 25
• QA environments (e.g. Tolling Be-Mobile Acceptance)
• Self deploying applications
KUBERNETE
S
TOOLS
KUBERNETES PROXY MANGEMENT
KUBERNETES @ BE-MOBILE 27
BE-MOBILE LOGVIEWER
KUBERNETES @ BE-MOBILE 28
BE-MOBILE KUBETOKEN
• Inspired on Atlassian kubetoken (https://github.com/atlassian/kubetoken)
• Integrates with Hashicorp Vault
• Uses PKI backend to sign certificates, LDAP as auth backend.
KUBERNETES @ BE-MOBILE 29
LESSONS
LEARNED
NGINX INGRESS CONTROLLER AND WEBSOCKETS
Ingress controller getting unresponsive after a while
A lot of nginx processes still running
Perfect blog that describes the problem:
http://danielfm.me/posts/painless-nginx-ingress.html
KUBERNETES @ BE-MOBILE 31
CERTIFICATES EXPIRED
KUBERNETES @ BE-MOBILE 32
BE-MOBILE RECRUITING
We’re always looking for passionate talents!
http://www.be-mobile.com/careers/
PRESENTATION TITLE 33
info@be-mobile.com ⎹ www.be-mobile.com

More Related Content

What's hot

Adopting containers and kubernetes in production
Adopting containers and kubernetes in productionAdopting containers and kubernetes in production
Adopting containers and kubernetes in production
Ta Ching Chen
 
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...
ShapeBlue
 
Stateful Applications On the Cloud: A PayPal Journey
Stateful Applications On the Cloud: A PayPal JourneyStateful Applications On the Cloud: A PayPal Journey
Stateful Applications On the Cloud: A PayPal Journey
Tesora
 
Microservices Using Docker Containers for Magento 2
Microservices Using Docker Containers for Magento 2Microservices Using Docker Containers for Magento 2
Microservices Using Docker Containers for Magento 2
Schogini Systems Pvt Ltd
 
Building Cloud Native Software
Building Cloud Native SoftwareBuilding Cloud Native Software
Building Cloud Native Software
Paul Fremantle
 
Kubernetes and elixir
Kubernetes and elixirKubernetes and elixir
Kubernetes and elixir
Jeffrey Chan
 
Container Conf 2017: Rancher Kubernetes
Container Conf 2017: Rancher KubernetesContainer Conf 2017: Rancher Kubernetes
Container Conf 2017: Rancher Kubernetes
Vishal Biyani
 
New stuff in CloudStack!
New stuff in CloudStack!New stuff in CloudStack!
New stuff in CloudStack!
ShapeBlue
 
Define your Future with SUSE
Define your Future with SUSEDefine your Future with SUSE
Define your Future with SUSE
SUSE
 
KubeCon EU 2016 Keynote: Kubernetes State of the Union
KubeCon EU 2016 Keynote: Kubernetes State of the UnionKubeCon EU 2016 Keynote: Kubernetes State of the Union
KubeCon EU 2016 Keynote: Kubernetes State of the Union
KubeAcademy
 
Xen Cloud Platform by Tim Mackey
Xen Cloud Platform by Tim MackeyXen Cloud Platform by Tim Mackey
Xen Cloud Platform by Tim Mackey
buildacloud
 
Kubernetes on OpenStack @eBay
Kubernetes on OpenStack @eBayKubernetes on OpenStack @eBay
Kubernetes on OpenStack @eBay
Sriram Subramanian
 
DEPLOYING A DOCKERIZED DISTRIBUTED APPLICATION IN MESOS
DEPLOYING A DOCKERIZED DISTRIBUTED APPLICATION IN MESOSDEPLOYING A DOCKERIZED DISTRIBUTED APPLICATION IN MESOS
DEPLOYING A DOCKERIZED DISTRIBUTED APPLICATION IN MESOS
Julia Mateo
 
Ceph for Storing MeerKAT Radio Telescope Data
Ceph for Storing MeerKAT Radio Telescope DataCeph for Storing MeerKAT Radio Telescope Data
Ceph for Storing MeerKAT Radio Telescope Data
ShapeBlue
 
Giles Sirett: Introduction and CloudStack news
Giles Sirett: Introduction and CloudStack news   Giles Sirett: Introduction and CloudStack news
Giles Sirett: Introduction and CloudStack news
ShapeBlue
 
Kube journey 2017-04-19
Kube journey   2017-04-19Kube journey   2017-04-19
Kube journey 2017-04-19
Doug Davis
 
stackconf 2021 | How we finally migrated an eCommerce-Platform to GCP
stackconf 2021 | How we finally migrated an eCommerce-Platform to GCPstackconf 2021 | How we finally migrated an eCommerce-Platform to GCP
stackconf 2021 | How we finally migrated an eCommerce-Platform to GCP
NETWAYS
 
JELASTIC IS THE PIONEER AND VISIONARY IN THE CLOUD INDUSTRY
JELASTIC IS THE PIONEER AND VISIONARY IN THE CLOUD INDUSTRYJELASTIC IS THE PIONEER AND VISIONARY IN THE CLOUD INDUSTRY
JELASTIC IS THE PIONEER AND VISIONARY IN THE CLOUD INDUSTRY
Ruslan Synytsky
 
Cumulus Networks Overview
Cumulus Networks OverviewCumulus Networks Overview
Cumulus Networks Overview
Adam Lorts
 
Adventures in Research
Adventures in ResearchAdventures in Research
Adventures in Research
NETWAYS
 

What's hot (20)

Adopting containers and kubernetes in production
Adopting containers and kubernetes in productionAdopting containers and kubernetes in production
Adopting containers and kubernetes in production
 
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...
KVM High Availability Regardless of Storage - Gabriel Brascher, VP of Apache ...
 
Stateful Applications On the Cloud: A PayPal Journey
Stateful Applications On the Cloud: A PayPal JourneyStateful Applications On the Cloud: A PayPal Journey
Stateful Applications On the Cloud: A PayPal Journey
 
Microservices Using Docker Containers for Magento 2
Microservices Using Docker Containers for Magento 2Microservices Using Docker Containers for Magento 2
Microservices Using Docker Containers for Magento 2
 
Building Cloud Native Software
Building Cloud Native SoftwareBuilding Cloud Native Software
Building Cloud Native Software
 
Kubernetes and elixir
Kubernetes and elixirKubernetes and elixir
Kubernetes and elixir
 
Container Conf 2017: Rancher Kubernetes
Container Conf 2017: Rancher KubernetesContainer Conf 2017: Rancher Kubernetes
Container Conf 2017: Rancher Kubernetes
 
New stuff in CloudStack!
New stuff in CloudStack!New stuff in CloudStack!
New stuff in CloudStack!
 
Define your Future with SUSE
Define your Future with SUSEDefine your Future with SUSE
Define your Future with SUSE
 
KubeCon EU 2016 Keynote: Kubernetes State of the Union
KubeCon EU 2016 Keynote: Kubernetes State of the UnionKubeCon EU 2016 Keynote: Kubernetes State of the Union
KubeCon EU 2016 Keynote: Kubernetes State of the Union
 
Xen Cloud Platform by Tim Mackey
Xen Cloud Platform by Tim MackeyXen Cloud Platform by Tim Mackey
Xen Cloud Platform by Tim Mackey
 
Kubernetes on OpenStack @eBay
Kubernetes on OpenStack @eBayKubernetes on OpenStack @eBay
Kubernetes on OpenStack @eBay
 
DEPLOYING A DOCKERIZED DISTRIBUTED APPLICATION IN MESOS
DEPLOYING A DOCKERIZED DISTRIBUTED APPLICATION IN MESOSDEPLOYING A DOCKERIZED DISTRIBUTED APPLICATION IN MESOS
DEPLOYING A DOCKERIZED DISTRIBUTED APPLICATION IN MESOS
 
Ceph for Storing MeerKAT Radio Telescope Data
Ceph for Storing MeerKAT Radio Telescope DataCeph for Storing MeerKAT Radio Telescope Data
Ceph for Storing MeerKAT Radio Telescope Data
 
Giles Sirett: Introduction and CloudStack news
Giles Sirett: Introduction and CloudStack news   Giles Sirett: Introduction and CloudStack news
Giles Sirett: Introduction and CloudStack news
 
Kube journey 2017-04-19
Kube journey   2017-04-19Kube journey   2017-04-19
Kube journey 2017-04-19
 
stackconf 2021 | How we finally migrated an eCommerce-Platform to GCP
stackconf 2021 | How we finally migrated an eCommerce-Platform to GCPstackconf 2021 | How we finally migrated an eCommerce-Platform to GCP
stackconf 2021 | How we finally migrated an eCommerce-Platform to GCP
 
JELASTIC IS THE PIONEER AND VISIONARY IN THE CLOUD INDUSTRY
JELASTIC IS THE PIONEER AND VISIONARY IN THE CLOUD INDUSTRYJELASTIC IS THE PIONEER AND VISIONARY IN THE CLOUD INDUSTRY
JELASTIC IS THE PIONEER AND VISIONARY IN THE CLOUD INDUSTRY
 
Cumulus Networks Overview
Cumulus Networks OverviewCumulus Networks Overview
Cumulus Networks Overview
 
Adventures in Research
Adventures in ResearchAdventures in Research
Adventures in Research
 

Similar to Kubernetes @ Be-Mobile

DevOps Fest 2019. Stanislav Kolenkin. Сonnecting pool Kubernetes clusters: Fe...
DevOps Fest 2019. Stanislav Kolenkin. Сonnecting pool Kubernetes clusters: Fe...DevOps Fest 2019. Stanislav Kolenkin. Сonnecting pool Kubernetes clusters: Fe...
DevOps Fest 2019. Stanislav Kolenkin. Сonnecting pool Kubernetes clusters: Fe...
DevOps_Fest
 
Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...
Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...
Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...
Tony Erwin
 
KubeCon EU 2016: Heroku to Kubernetes
KubeCon EU 2016: Heroku to KubernetesKubeCon EU 2016: Heroku to Kubernetes
KubeCon EU 2016: Heroku to Kubernetes
KubeAcademy
 
Arkena from heroku_to_k8s
Arkena from heroku_to_k8sArkena from heroku_to_k8s
Arkena from heroku_to_k8s
Smaïne KAHLOUCH
 
DEVNET-1183 OpenShift + Kubernetes + Docker
DEVNET-1183	OpenShift + Kubernetes + DockerDEVNET-1183	OpenShift + Kubernetes + Docker
DEVNET-1183 OpenShift + Kubernetes + Docker
Cisco DevNet
 
APPLICATIONS AND CONTAINERS AT SCALE: OpenShift + Kubernetes + Docker
APPLICATIONS AND CONTAINERS AT SCALE: OpenShift + Kubernetes + DockerAPPLICATIONS AND CONTAINERS AT SCALE: OpenShift + Kubernetes + Docker
APPLICATIONS AND CONTAINERS AT SCALE: OpenShift + Kubernetes + Docker
Steven Pousty
 
Data harmonycloudpowerpointclientfacing
Data harmonycloudpowerpointclientfacingData harmonycloudpowerpointclientfacing
Data harmonycloudpowerpointclientfacing
Access Innovations, Inc.
 
Kubernetes for All
Kubernetes for AllKubernetes for All
Kubernetes for All
William Jimenez
 
Webinar- Tea for the Tillerman
Webinar- Tea for the TillermanWebinar- Tea for the Tillerman
Webinar- Tea for the Tillerman
Cumulus Networks
 
Kubernetes as Orchestrator for A10 Lightning Controller
Kubernetes as Orchestrator for A10 Lightning ControllerKubernetes as Orchestrator for A10 Lightning Controller
Kubernetes as Orchestrator for A10 Lightning Controller
Akshay Mathur
 
How to build the Cloud Native applications the way you want – not the way the...
How to build the Cloud Native applications the way you want – not the way the...How to build the Cloud Native applications the way you want – not the way the...
How to build the Cloud Native applications the way you want – not the way the...
Eficode
 
KuberNETes - meetup
KuberNETes - meetupKuberNETes - meetup
KuberNETes - meetup
Nathan Ness
 
Kubernates : An Small introduction for Beginners by Rajiv Vishwkarma
Kubernates : An Small introduction for Beginners by Rajiv VishwkarmaKubernates : An Small introduction for Beginners by Rajiv Vishwkarma
Kubernates : An Small introduction for Beginners by Rajiv Vishwkarma
Rajiv Vishwkarma
 
Container management with docker & kubernetes
Container management with docker & kubernetesContainer management with docker & kubernetes
Container management with docker & kubernetes
Kasun Rajapakse
 
Kubernetes at NU.nl (Kubernetes meetup 2019-09-05)
Kubernetes at NU.nl   (Kubernetes meetup 2019-09-05)Kubernetes at NU.nl   (Kubernetes meetup 2019-09-05)
Kubernetes at NU.nl (Kubernetes meetup 2019-09-05)
Tibo Beijen
 
Why kubernetes matters
Why kubernetes mattersWhy kubernetes matters
Why kubernetes matters
Platform9
 
Federation of Kubernetes Clusters (Ubernetes) KubeCon 2015 slides - Quinton H...
Federation of Kubernetes Clusters (Ubernetes) KubeCon 2015 slides - Quinton H...Federation of Kubernetes Clusters (Ubernetes) KubeCon 2015 slides - Quinton H...
Federation of Kubernetes Clusters (Ubernetes) KubeCon 2015 slides - Quinton H...
Quinton Hoole
 
Federation of Kubernetes Clusters (a.k.a. "Ubernetes") - KubeCon 2015 slides ...
Federation of Kubernetes Clusters (a.k.a. "Ubernetes") - KubeCon 2015 slides ...Federation of Kubernetes Clusters (a.k.a. "Ubernetes") - KubeCon 2015 slides ...
Federation of Kubernetes Clusters (a.k.a. "Ubernetes") - KubeCon 2015 slides ...
Quinton Hoole
 
Elastic Kubernetes Services (EKS)
Elastic Kubernetes Services (EKS)Elastic Kubernetes Services (EKS)
Elastic Kubernetes Services (EKS)
sriram_rajan
 
Container Monitoring Best Practices Using AWS and InfluxData by Gunnar Aasen
Container Monitoring Best Practices Using AWS and InfluxData by Gunnar AasenContainer Monitoring Best Practices Using AWS and InfluxData by Gunnar Aasen
Container Monitoring Best Practices Using AWS and InfluxData by Gunnar Aasen
InfluxData
 

Similar to Kubernetes @ Be-Mobile (20)

DevOps Fest 2019. Stanislav Kolenkin. Сonnecting pool Kubernetes clusters: Fe...
DevOps Fest 2019. Stanislav Kolenkin. Сonnecting pool Kubernetes clusters: Fe...DevOps Fest 2019. Stanislav Kolenkin. Сonnecting pool Kubernetes clusters: Fe...
DevOps Fest 2019. Stanislav Kolenkin. Сonnecting pool Kubernetes clusters: Fe...
 
Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...
Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...
Migration of an Enterprise UI Microservice System from Cloud Foundry to Kuber...
 
KubeCon EU 2016: Heroku to Kubernetes
KubeCon EU 2016: Heroku to KubernetesKubeCon EU 2016: Heroku to Kubernetes
KubeCon EU 2016: Heroku to Kubernetes
 
Arkena from heroku_to_k8s
Arkena from heroku_to_k8sArkena from heroku_to_k8s
Arkena from heroku_to_k8s
 
DEVNET-1183 OpenShift + Kubernetes + Docker
DEVNET-1183	OpenShift + Kubernetes + DockerDEVNET-1183	OpenShift + Kubernetes + Docker
DEVNET-1183 OpenShift + Kubernetes + Docker
 
APPLICATIONS AND CONTAINERS AT SCALE: OpenShift + Kubernetes + Docker
APPLICATIONS AND CONTAINERS AT SCALE: OpenShift + Kubernetes + DockerAPPLICATIONS AND CONTAINERS AT SCALE: OpenShift + Kubernetes + Docker
APPLICATIONS AND CONTAINERS AT SCALE: OpenShift + Kubernetes + Docker
 
Data harmonycloudpowerpointclientfacing
Data harmonycloudpowerpointclientfacingData harmonycloudpowerpointclientfacing
Data harmonycloudpowerpointclientfacing
 
Kubernetes for All
Kubernetes for AllKubernetes for All
Kubernetes for All
 
Webinar- Tea for the Tillerman
Webinar- Tea for the TillermanWebinar- Tea for the Tillerman
Webinar- Tea for the Tillerman
 
Kubernetes as Orchestrator for A10 Lightning Controller
Kubernetes as Orchestrator for A10 Lightning ControllerKubernetes as Orchestrator for A10 Lightning Controller
Kubernetes as Orchestrator for A10 Lightning Controller
 
How to build the Cloud Native applications the way you want – not the way the...
How to build the Cloud Native applications the way you want – not the way the...How to build the Cloud Native applications the way you want – not the way the...
How to build the Cloud Native applications the way you want – not the way the...
 
KuberNETes - meetup
KuberNETes - meetupKuberNETes - meetup
KuberNETes - meetup
 
Kubernates : An Small introduction for Beginners by Rajiv Vishwkarma
Kubernates : An Small introduction for Beginners by Rajiv VishwkarmaKubernates : An Small introduction for Beginners by Rajiv Vishwkarma
Kubernates : An Small introduction for Beginners by Rajiv Vishwkarma
 
Container management with docker & kubernetes
Container management with docker & kubernetesContainer management with docker & kubernetes
Container management with docker & kubernetes
 
Kubernetes at NU.nl (Kubernetes meetup 2019-09-05)
Kubernetes at NU.nl   (Kubernetes meetup 2019-09-05)Kubernetes at NU.nl   (Kubernetes meetup 2019-09-05)
Kubernetes at NU.nl (Kubernetes meetup 2019-09-05)
 
Why kubernetes matters
Why kubernetes mattersWhy kubernetes matters
Why kubernetes matters
 
Federation of Kubernetes Clusters (Ubernetes) KubeCon 2015 slides - Quinton H...
Federation of Kubernetes Clusters (Ubernetes) KubeCon 2015 slides - Quinton H...Federation of Kubernetes Clusters (Ubernetes) KubeCon 2015 slides - Quinton H...
Federation of Kubernetes Clusters (Ubernetes) KubeCon 2015 slides - Quinton H...
 
Federation of Kubernetes Clusters (a.k.a. "Ubernetes") - KubeCon 2015 slides ...
Federation of Kubernetes Clusters (a.k.a. "Ubernetes") - KubeCon 2015 slides ...Federation of Kubernetes Clusters (a.k.a. "Ubernetes") - KubeCon 2015 slides ...
Federation of Kubernetes Clusters (a.k.a. "Ubernetes") - KubeCon 2015 slides ...
 
Elastic Kubernetes Services (EKS)
Elastic Kubernetes Services (EKS)Elastic Kubernetes Services (EKS)
Elastic Kubernetes Services (EKS)
 
Container Monitoring Best Practices Using AWS and InfluxData by Gunnar Aasen
Container Monitoring Best Practices Using AWS and InfluxData by Gunnar AasenContainer Monitoring Best Practices Using AWS and InfluxData by Gunnar Aasen
Container Monitoring Best Practices Using AWS and InfluxData by Gunnar Aasen
 

Recently uploaded

みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
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
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
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
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
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
 
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
 
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
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 

Recently uploaded (20)

みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
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
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
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
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
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
 
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
 
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
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 

Kubernetes @ Be-Mobile

  • 1. KUBERNETES @ BE-MOBILE Pieter Callewaert – Teamlead Devops
  • 2. DATA AGGREGATOR KUBERNETES @ BE-MOBILE 2 Be-Mobile mobility database Floating car data • GPS data • Smartphone data • Telco data Road sensors • Cameras • Radars • Loops Crowd sourced • Drivers • Social media • Police • Emergency vehicles Other data • Public transport • Car & bike sharing • Vehicles & bike parking, fuel • Traffic emission & noise zones • Toll Sourcesfrom>20countries
  • 3. WHO WE ARE KUBERNETES @ BE-MOBILE 3 Smart Tolling & Map Matching Mobility as a Service Mobility Monitoring & Analysis Traffic Management Smart ParkingMobility Payments Platform Connected Vehicle Platforms Traveler Information Smart mobility
  • 5. MANUAL DEPLOYMENT ➞ Deployments were done manually on the servers • Growing amount of countries where Be-Mobile is active • Each country needs the same basic set of applications to be set up • Growing amount of developers • Meaning more applications to be deployed • But, all deployments done by the DevOps-team ➞ Time to deployment increased due to the growth ➞ Management of the applications was getting complex ➞ Human errors might occur KUBERNETES @ BE-MOBILE 5
  • 6. PUPPET DEPLOYMENT Dependencies problem: correct version of NodeJS, Java, Mono,… • Programming the deployment of the applications by configuration • Roll-outs of new countries and applications were much faster • Helped avoiding human errors KUBERNETES @ BE-MOBILE 6
  • 7. PUPPET+DOCKER DEPLOYMENT • Isolated environments for an application • Contains all necessities for the application • E.g.: website + webserver / Java application + Java framework • No more need for ‘type-specific servers’ • Different types of applications can all run on the same server • Easy to migrate a container or scale over multiple servers KUBERNETES @ BE-MOBILE 7
  • 8. HOWEVER… NEW BOTTLENECKS • Chaining multiple applications • Time consuming • Error sensitive • Crashes • Manual interventions • Deployments • Faster, but still a backlog of deployments KUBERNETES @ BE-MOBILE 8
  • 10. WHAT IS KUBERNETES • Google project (Borg) made open-source • Further developed by a strong community • Orchestration of containers • Namespaces • Self-healing • Allows us to create deployment chains KUBERNETES @ BE-MOBILE 10
  • 11. ORCHESTRATION IN KUBERNETES • Multiple servers are combined into a cluster • Kubernetes picks a server to deploy an container to • By checking the container resource needs (CPU/memory) • By checking the servers resource availability • Containers can be scaled or made high available very easy • Different ways to do a deployment • E.g.: rolling update, recreate KUBERNETES @ BE-MOBILE 11
  • 12. SELF-HEALING WITH KUBERNETES • When a container no longer responds • Health checks detect this (if configured) • Container gets destroyed and restarted • When a container crashes • Container gets restarted • When a server crashes • Move containers running on the crashed server to another one ➞ Faster recovery time! KUBERNETES @ BE-MOBILE 12
  • 13. STARTING WITH KUBERNETES First experience: The Sockshop demo from the kubernetes.io site (on minikube) KUBERNETES @ BE-MOBILE 13
  • 14. PRODUCTION DEPLOYMENT Installing kubernetes on bare metal!  A lot of deployment guides are focused on cloud environments Started with kargo (now known as kubespray). Was our first production cluster. Very alpha, updating between versions of kubernetes or kargo was very hard. Then we tried with Kismatic Easy and well documented installation ”Community” support is great, but only people from Apprenda are working on it Is still our current installation method. KUBERNETES @ BE-MOBILE 14
  • 16. OPTION 1: GLUSTERFS First experience with distributed storage systems Installed automatic with Kismatic Pros: • Easy to manage/setup Cons: • We had to create our Persistent Volumes ourselves • For some reason, not scalable when creating a lot of volumes KUBERNETES @ BE-MOBILE 16
  • 17. OPTION 2: CEPH Deployed with Ansible Pros: • It just works. • And really fast! • StorageClass support in Kubernetes Cons: • Steep learning curve • More complex architecture (compared to GlusterFS) KUBERNETES @ BE-MOBILE 17
  • 19. WHAT DO WE DEPLOY ON KUBERNETES? What we do not deploy on Kubernetes : • Kafka • Cassandra • MongoDB • Ceph • Elastic Search • Redis* What do we deploy on Kubernetes: • Everything else. KUBERNETES @ BE-MOBILE 19
  • 20. INSTALLATION SERVERS: ANSIBLE • Installing one server was OK, installing 10 servers is slow, repetitive and boring. • Automatic server installations • Partitioning • Basic installation of the operating system • Configuration of firewall rules • Deployment of core components (Kubernetes/Ceph) KUBERNETES @ BE-MOBILE 20
  • 21. CLUSTERS TODAY • More than 1 year of production • We migrated once a full Kubernetes cluster (switch from Kargo to Kismatic) • Largest cluster surpassed 100 nodes (6.9 TB memory, 1000+ cores) • Multiple clusters: test cluster, QA clusters, staging cluster,.. KUBERNETES @ BE-MOBILE 21
  • 25. CONTINOUS DEPLOYMENT: OTHER METHODS KUBERNETES @ BE-MOBILE 25 • QA environments (e.g. Tolling Be-Mobile Acceptance) • Self deploying applications
  • 29. BE-MOBILE KUBETOKEN • Inspired on Atlassian kubetoken (https://github.com/atlassian/kubetoken) • Integrates with Hashicorp Vault • Uses PKI backend to sign certificates, LDAP as auth backend. KUBERNETES @ BE-MOBILE 29
  • 31. NGINX INGRESS CONTROLLER AND WEBSOCKETS Ingress controller getting unresponsive after a while A lot of nginx processes still running Perfect blog that describes the problem: http://danielfm.me/posts/painless-nginx-ingress.html KUBERNETES @ BE-MOBILE 31
  • 33. BE-MOBILE RECRUITING We’re always looking for passionate talents! http://www.be-mobile.com/careers/ PRESENTATION TITLE 33

Editor's Notes

  1. Welkomstwoord / wat zal er besproken worden Introductie mezelf / team (verantwoordelijkheid van devops team: infrastructuur, shared applicaties en GPS data) Eerste meetup Be-Mobile
  2. Be-Mobile is opgericht in 2007 met Touring als meerderheids aandeelhouder, sinds 2 jaar is nu Proximus aandeelhouder geworden - Verzamelen data van alle soorten bronnen (black box, smartphone data, social media, politie) Verkeers data Zo verzamelen we 20 miljard GPS posities per dag
  3. Welke diensten leveren we dan aan: Verkeersinformatie met media bedrijven RDS TMC/connected Analyse tools voor steden op historische data Parking (4411) en parkeergeleidingssytemen Traffic management (verkeers geleidings sytemen bij evenementen) Tolheffing
  4. Organisch gegroeid, diversiteit in technology stacks (.NET, mvc, java, nodejs, golang,…)
  5. Manueel deployment Veel meer landen, elk met hun basis set aan applicaties Meer en meer ontwikkelaars, dus ook meer applicaties die moeten uitgerold worden Via devops team Wachttijden Complex applicatiebeheer Menselijke fouten
  6. HIER BESLIST GEEN VM, WAAROM Automatisatie Programmeren eigenlijk hoe applicaties en servers moeten geinstalleerd worden Stijle leercurve Roll-out van nieuwe landen gingen pakken sneller Ook nieuwe applicaties gingen sneller
  7. Application dependencies mee in package (java framework, webserver,..) Geen nood aan specifieke java servers, web servers,.. Servers minder complex, gewoon docker containers draaien Applicatie schalen of migreren is pakken eenvoudiger
  8. Automatisatie brengt nieuwe bottle necks bloot Minder bezig houden met servers, meer bezig houden met koppelen van applicaties Nog altijd vrij foutgevoelig Bij crashes moesten we manueel tussenkomen Server crash: what to do Snellere deployments, maar nog altijd een backlog Service discovery met consul, maar gematigd succes
  9. 3 jaar geleden Open-Source gemaakt Community omvat ook bedrijven als RedHat, GitHub en Google Orchestration = beheer van de containers Namespaces = samenplaatsen van containers en configuraties, kan gemakkelijk verwijderd worden
  10. K8s = laag over de servers Vroeger: zelf server kiezen om iets te deployen Nu: Kubernetes laten weten dat we een container willen deployen, K8s will take care of it Vb rolling updates: web container Vb recreate: Icarus+ with state Hier zou ik aangeven dat we eigenlijk geen concept meer hebben van een server, maar dat we een overkoepelende interface hebben waar we kunnen aangeven dat een container moet draaien met bepaalde parameters
  11. - Health checks Vroeger: alles manueel recoveren -> veel werk en tijdrovend
  12. Nood aan state
  13. Deze systemen zijn al cluster/ha based systemen Performance redenen Redis is een uitzonderding, hangt er van af hoe belangrijk de persistence is Uitzondering is voor QA/staging omgevingen, waar we bewust de flexibel willen zijn en dat persistence/perfomance ondermaats is
  14. Automatisatie startte pas vanaf we de automatisatie tool installeerde Installeren van server viel mee van tijd.. Voor 1 server Extra automatisatie tool die ons toelaat gewoon het IP adres meegeven en de rol van server. Cluster van 10 server herinstalleren en terug operationeel hebben in <10 minuten
  15. Meer dan 1 jaar in productie Verschillende clusters, waaronder het grootste nu meer dan 100 servers bevat. Reden van verschillende clusters: QA cluster, staging cluster, test cluster
  16. Developer pusht code Buildserver compileert de applicatie Buildserver maakt de container voor de applicatie Slack notification “Deploy to Kubernetes?” Approval van teamlead of DevOps
  17. VMAP deployments: Basis componenten voor een basemap uitrollen
  18. Project deloyments: Pipedrives Alle configuratie zit samen op 1 plaats Tool leest de configuratie en geeft deze door aan Kubernetes om te deployen QA: Mogelijkheid om heel snel omgevingen op te starten en te verwijderen Geen achterblijvende test-files Meerdere environments naast elkaar draaien Beheer ligt volledig bij QA (en Devs) C-ITS Eigen deployment-systeem ontwikkeld door Backend
  19. QA: Mogelijkheid om heel snel omgevingen op te starten en te verwijderen Geen achterblijvende test-files Meerdere environments naast elkaar draaien Beheer ligt volledig bij QA (en Devs) C-ITS Eigen deployment-systeem ontwikkeld door Backend
  20. Nieuw deze maand Communicatie met kube-api gebeurt via kubectl en tls certificates, vault genereert certfificaten Eigen kubetoken programma die kubeconfig goed zet