SlideShare a Scribd company logo
Challenges of Kubernetes On-
premise Deployment
Sa Pham - RnD Department BizFly Cloud
Challenges
● Expose service type Load Balancer
● Persistent Volume
● Deployment tools
Common Apps deployment patterns on
Kubernetes
With stateless application, we use kind
Deployment to create multiple pods
and Service to expose the application
We have 3 types of Service
● NodePort
● ClusterIP
● Load Balancer
Service type Load Balancer?
On Cloud Environment, With Load
Balancer Service type, Kubernetes
will create a new Load Balancer
for that service.
For example: Open port 443 on
Load Balancer and forward to port
30000 on worker nodes. Kube-
proxy will forward request from
port 30000 to correct pod.
How Load balancers are provisioned?
Before, cloud providers have
to contribute to kubernetes
source code to work with their
cloud -> In-tree Providers
How Load balancers are provisioned?
Later, Cloud Controller Manager
(CCM) is decoupled from
kubernetes source code.
When service Load Balancer is
created, CCM call to Cloud to
create Load Balancer and Pool,
Listener of Load Balancer.
How Load balancers are provisioned?
On bare-metal environment ?
Load Balancer on Bare Metal Environment
Fortunately, most of our applications using HTTP to communicate from
outside. We use Nginx-Ingress for Layer 7 Load Balancer and Haproxy For
Layer 4 Load Balancer.
Our architecture
- Use host-based routing and
path based routing at ingress
Common Apps deployment patterns on
Kubernetes
Some applications (database,
cache, ...) require Persistent
Volume, then we use kind
StatefulSet for these
applications.
Requirements: Persistent
Volume with Storage Backend
(Storage class)
How Persistent Volumes are provisioned?
On Cloud Environment, Cloud providers have
Block Storage Service and File System
Service. We can use them to provide
Persistent Volume for Kubernetes
Container Storage Interface (CSI) was born.
How Persistent Volumes are provisioned?What is Container Storage Interface?
How Persistent Volumes are provisioned?
CSI on Cloud Environment and Bare metal Environment
How Persistent Volumes are provisioned?
CSI Driver List: Drivers - Kubernetes CSI Developer
Documentation
CSI Drivers
What will we do if there is no existing CSI driver for our Storage?
- Use Ember CSI - embercsi/ember-csi: Multi-vendor CSI plugin supporting over 80 storage drivers
- Write a new one. - How to write a Container Storage Interface (CSI) plugin · Fatih Arslan
Ember CSI using Cinder drivers to work with storage backend
A lot of storage backends are supported by Cinder community
CSI Drivers
We are using Ember CSI as
CSI Driver for our SAN
Storage.
Cons:
- Multiple pools, multiple
deployments
Storage backend for Kubernetes on-premise
Some applications with old
architectures,
- Store data on local disk
- Use NFS for shared storage
How did we run on kubernetes ?
Storage backend for Kubernetes on-premise
Cephfs performance on our cluster
We used tocdo.net script to test on a kubernetes pod.
Deployment tools and manage kubernetes
With managed kubernetes service (such as GKE, AKS, EKS, ..), we don't have to
manage kubernetes master node.
And easy to add a new node.
On Premise
We need a tool which can
- quick deploy a new cluster
- easy to control the cluster
- easy to add a new node to cluster
- Infrastructure as code (IaC)
- Separate etcd cluster
Deployment tools and manage kubernetes
Too many deployment tools for on-premise kubernetes.
- Kubeadm
- RKE
- Kubespray
- Kubernetes the hard way
- ...
RKE
Cluster.yml example
Then, rke up
Challenges of Kubernetes On-premise Deployment

More Related Content

PDF
CKA Certified Kubernetes Administrator Notes
PPTX
Everything You Need To Know About Persistent Storage in Kubernetes
PDF
What Is Helm
PDF
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
PPTX
Azure kubernetes service (aks)
PDF
(Draft) Kubernetes - A Comprehensive Overview
PDF
Common issues with Apache Kafka® Producer
PDF
Kubernetes 101
CKA Certified Kubernetes Administrator Notes
Everything You Need To Know About Persistent Storage in Kubernetes
What Is Helm
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
Azure kubernetes service (aks)
(Draft) Kubernetes - A Comprehensive Overview
Common issues with Apache Kafka® Producer
Kubernetes 101

What's hot (20)

PDF
Kubernetes Application Deployment with Helm - A beginner Guide!
PDF
Room 3 - 1 - Nguyễn Xuân Trường Lâm - Zero touch on-premise storage infrastru...
PPTX
Kubernetes for Beginners: An Introductory Guide
ODP
Kubernetes Architecture
PDF
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
PDF
Kubernetes and Prometheus
PDF
Hands-On Introduction to Kubernetes at LISA17
PDF
Kubernetes a comprehensive overview
PPTX
Azure AKS
PDF
20220224台中演講k8s
PDF
Container Security Deep Dive & Kubernetes
PDF
Introduction to kubernetes
PPTX
Kubernetes Introduction
PPTX
Kubernetes 101
PDF
Free GitOps Workshop + Intro to Kubernetes & GitOps
PDF
Argocd up and running
PDF
Apache Kafka & Kafka Connectを に使ったデータ連携パターン(改めETLの実装)
PDF
[Container Plumbing Days 2023] Why was nerdctl made?
PDF
Kubernetes: A Short Introduction (2019)
PDF
DevJam 2019 - Introduction to Kubernetes
Kubernetes Application Deployment with Helm - A beginner Guide!
Room 3 - 1 - Nguyễn Xuân Trường Lâm - Zero touch on-premise storage infrastru...
Kubernetes for Beginners: An Introductory Guide
Kubernetes Architecture
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes and Prometheus
Hands-On Introduction to Kubernetes at LISA17
Kubernetes a comprehensive overview
Azure AKS
20220224台中演講k8s
Container Security Deep Dive & Kubernetes
Introduction to kubernetes
Kubernetes Introduction
Kubernetes 101
Free GitOps Workshop + Intro to Kubernetes & GitOps
Argocd up and running
Apache Kafka & Kafka Connectを に使ったデータ連携パターン(改めETLの実装)
[Container Plumbing Days 2023] Why was nerdctl made?
Kubernetes: A Short Introduction (2019)
DevJam 2019 - Introduction to Kubernetes
Ad

Similar to Challenges of Kubernetes On-premise Deployment (20)

PDF
Aws + kubernetes = ❤︎
PPTX
KubernetSADASDASDASDSADASDASDASDASDes.pptx
PPTX
Kubernetes: від знайомства до використання у CI/CD
PPTX
MongoDB Ops Manager and Kubernetes - James Broadhead
PPTX
dockerSAW
PDF
Kubernetes on AWS
PDF
Kubernetes on AWS
PPTX
Bitbucket Pipelines - Powered by Kubernetes
PDF
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
PPTX
Kubernetes #1 intro
PPTX
Multi-Cloud Orchestration for Kubernetes with Cloudify - Webinar Presentation
PDF
stackconf 2024 | Ignite: Is rust good for Kubernetes by Natalie Serebryakova ...
PDF
Multi-Cloud Orchestration for Kubernetes with Cloudify
PPTX
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
PDF
OSS Japan 2019 service mesh bridging Kubernetes and legacy
PDF
Kubernetes and bluemix
PPTX
Introduction to Kubernetes
PDF
Building and running Spring Cloud-based microservices on AWS ECS
PPTX
Kubernetes-Fundamentals.pptx
PDF
6 Things You Need to Know to Safely Run Kubernetes
Aws + kubernetes = ❤︎
KubernetSADASDASDASDSADASDASDASDASDes.pptx
Kubernetes: від знайомства до використання у CI/CD
MongoDB Ops Manager and Kubernetes - James Broadhead
dockerSAW
Kubernetes on AWS
Kubernetes on AWS
Bitbucket Pipelines - Powered by Kubernetes
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
Kubernetes #1 intro
Multi-Cloud Orchestration for Kubernetes with Cloudify - Webinar Presentation
stackconf 2024 | Ignite: Is rust good for Kubernetes by Natalie Serebryakova ...
Multi-Cloud Orchestration for Kubernetes with Cloudify
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
OSS Japan 2019 service mesh bridging Kubernetes and legacy
Kubernetes and bluemix
Introduction to Kubernetes
Building and running Spring Cloud-based microservices on AWS ECS
Kubernetes-Fundamentals.pptx
6 Things You Need to Know to Safely Run Kubernetes
Ad

More from Vietnam Open Infrastructure User Group (20)

PDF
Room 3 - 5 - Nguyễn Văn Hoàn - 101 Bugs, issues when I work with Ceph
PDF
Room 2 - 3 - Nguyễn Hoài Nam & Nguyễn Việt Hùng - Terraform & Pulumi Comparin...
PDF
Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...
PDF
Room 3 - 4 - Lê Quang Hiếu - How to be a cool dad: Leverage DIY Home Automati...
PDF
Room 3 - 2 - Trần Tuấn Anh - Defending Software Supply Chain Security in Bank...
PPTX
Room 3 - 7 - Nguyễn Như Phúc Huy - Vitastor: a fast and simple Ceph-like bloc...
PPTX
Room 2 - 2 - Giang Thiên Phú - Kinh nghiệm tối ưu mongodb với database hơn 10...
PDF
Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...
PPTX
Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...
PDF
Room 2 - 7 - Lã Mạnh Hà - Agile + DevOps = A great combination
PPTX
Room 2 - 1 - Phạm Quang Minh - A real DevOps culture in practice
PDF
Room 2 - 5 - Seong Soo - NHN Cloud - Upstream contribution mentoring program ...
PDF
Room 1 - 2 - Nguyễn Văn Thắng & Dzung Nguyen - Proxmox VE và ZFS over iscsi
PPTX
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
PPTX
Room 1 - 3 - Lê Anh Tuấn - Build a High Performance Identification at GHTK wi...
PPTX
Room 1 - 7 - Lê Quốc Đạt - Upgrading network of Openstack to SDN with Tungste...
PDF
Room 1 - 5 - Thủy Đặng - Load balancing k8s services on baremetal with Cilium...
PDF
Room 1 - 4 - Phạm Tường Chiến & Trần Văn Thắng - Deliver managed Kubernetes C...
PDF
Room 1 - 1 - Benoit TELLIER - On premise email inbound service with Apache James
PDF
Phiên sáng - 05 - Chia sẻ về Open Infrastructure trên thế giới
Room 3 - 5 - Nguyễn Văn Hoàn - 101 Bugs, issues when I work with Ceph
Room 2 - 3 - Nguyễn Hoài Nam & Nguyễn Việt Hùng - Terraform & Pulumi Comparin...
Room 3 - 6 - Nguyễn Văn Thắng & Dzung Nguyen - Ứng dụng openzfs làm lưu trữ t...
Room 3 - 4 - Lê Quang Hiếu - How to be a cool dad: Leverage DIY Home Automati...
Room 3 - 2 - Trần Tuấn Anh - Defending Software Supply Chain Security in Bank...
Room 3 - 7 - Nguyễn Như Phúc Huy - Vitastor: a fast and simple Ceph-like bloc...
Room 2 - 2 - Giang Thiên Phú - Kinh nghiệm tối ưu mongodb với database hơn 10...
Room 2 - 6 - Đinh Tuấn Phong - Migrate opensource database to Kubernetes easi...
Room 2 - 4 - Juncheng Anthony Lin - Redhat - A Practical Approach to Traditio...
Room 2 - 7 - Lã Mạnh Hà - Agile + DevOps = A great combination
Room 2 - 1 - Phạm Quang Minh - A real DevOps culture in practice
Room 2 - 5 - Seong Soo - NHN Cloud - Upstream contribution mentoring program ...
Room 1 - 2 - Nguyễn Văn Thắng & Dzung Nguyen - Proxmox VE và ZFS over iscsi
Room 1 - 6 - Trần Quốc Sang - Autoscaling for multi cloud platform based on S...
Room 1 - 3 - Lê Anh Tuấn - Build a High Performance Identification at GHTK wi...
Room 1 - 7 - Lê Quốc Đạt - Upgrading network of Openstack to SDN with Tungste...
Room 1 - 5 - Thủy Đặng - Load balancing k8s services on baremetal with Cilium...
Room 1 - 4 - Phạm Tường Chiến & Trần Văn Thắng - Deliver managed Kubernetes C...
Room 1 - 1 - Benoit TELLIER - On premise email inbound service with Apache James
Phiên sáng - 05 - Chia sẻ về Open Infrastructure trên thế giới

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Electronic commerce courselecture one. Pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Modernizing your data center with Dell and AMD
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Big Data Technologies - Introduction.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
MYSQL Presentation for SQL database connectivity
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Encapsulation theory and applications.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Electronic commerce courselecture one. Pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Modernizing your data center with Dell and AMD
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Machine learning based COVID-19 study performance prediction
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Encapsulation_ Review paper, used for researhc scholars
Network Security Unit 5.pdf for BCA BBA.
Spectral efficient network and resource selection model in 5G networks
The Rise and Fall of 3GPP – Time for a Sabbatical?
Understanding_Digital_Forensics_Presentation.pptx
Big Data Technologies - Introduction.pptx
Review of recent advances in non-invasive hemoglobin estimation
Dropbox Q2 2025 Financial Results & Investor Presentation
MYSQL Presentation for SQL database connectivity
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Encapsulation theory and applications.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication

Challenges of Kubernetes On-premise Deployment

  • 1. Challenges of Kubernetes On- premise Deployment Sa Pham - RnD Department BizFly Cloud
  • 2. Challenges ● Expose service type Load Balancer ● Persistent Volume ● Deployment tools
  • 3. Common Apps deployment patterns on Kubernetes With stateless application, we use kind Deployment to create multiple pods and Service to expose the application We have 3 types of Service ● NodePort ● ClusterIP ● Load Balancer
  • 4. Service type Load Balancer? On Cloud Environment, With Load Balancer Service type, Kubernetes will create a new Load Balancer for that service. For example: Open port 443 on Load Balancer and forward to port 30000 on worker nodes. Kube- proxy will forward request from port 30000 to correct pod.
  • 5. How Load balancers are provisioned? Before, cloud providers have to contribute to kubernetes source code to work with their cloud -> In-tree Providers
  • 6. How Load balancers are provisioned? Later, Cloud Controller Manager (CCM) is decoupled from kubernetes source code. When service Load Balancer is created, CCM call to Cloud to create Load Balancer and Pool, Listener of Load Balancer.
  • 7. How Load balancers are provisioned? On bare-metal environment ?
  • 8. Load Balancer on Bare Metal Environment Fortunately, most of our applications using HTTP to communicate from outside. We use Nginx-Ingress for Layer 7 Load Balancer and Haproxy For Layer 4 Load Balancer.
  • 9. Our architecture - Use host-based routing and path based routing at ingress
  • 10. Common Apps deployment patterns on Kubernetes Some applications (database, cache, ...) require Persistent Volume, then we use kind StatefulSet for these applications. Requirements: Persistent Volume with Storage Backend (Storage class)
  • 11. How Persistent Volumes are provisioned? On Cloud Environment, Cloud providers have Block Storage Service and File System Service. We can use them to provide Persistent Volume for Kubernetes Container Storage Interface (CSI) was born.
  • 12. How Persistent Volumes are provisioned?What is Container Storage Interface?
  • 13. How Persistent Volumes are provisioned? CSI on Cloud Environment and Bare metal Environment
  • 14. How Persistent Volumes are provisioned? CSI Driver List: Drivers - Kubernetes CSI Developer Documentation
  • 15. CSI Drivers What will we do if there is no existing CSI driver for our Storage? - Use Ember CSI - embercsi/ember-csi: Multi-vendor CSI plugin supporting over 80 storage drivers - Write a new one. - How to write a Container Storage Interface (CSI) plugin · Fatih Arslan Ember CSI using Cinder drivers to work with storage backend A lot of storage backends are supported by Cinder community
  • 16. CSI Drivers We are using Ember CSI as CSI Driver for our SAN Storage. Cons: - Multiple pools, multiple deployments
  • 17. Storage backend for Kubernetes on-premise Some applications with old architectures, - Store data on local disk - Use NFS for shared storage How did we run on kubernetes ?
  • 18. Storage backend for Kubernetes on-premise Cephfs performance on our cluster We used tocdo.net script to test on a kubernetes pod.
  • 19. Deployment tools and manage kubernetes With managed kubernetes service (such as GKE, AKS, EKS, ..), we don't have to manage kubernetes master node. And easy to add a new node.
  • 20. On Premise We need a tool which can - quick deploy a new cluster - easy to control the cluster - easy to add a new node to cluster - Infrastructure as code (IaC) - Separate etcd cluster
  • 21. Deployment tools and manage kubernetes Too many deployment tools for on-premise kubernetes. - Kubeadm - RKE - Kubespray - Kubernetes the hard way - ...