SlideShare a Scribd company logo
A Million Ways of Deploying
a Kubernetes Cluster
Jimmy Lu
Data Engineer, Linker Networks Inc.
slu@linkernetworks.com
Overview
• Why Million Ways?
• minikube
• Kubernetes The Hard Way
• hyperkube
• kube-up.sh
• kubeadm
• kops
• Configuration and Provisioning
Tools
• Enterprise Solutions
• Kubewizard
Why Million Ways?
• Kubernetes is open sourced
• Kubernetes is a complex system
• Similar to Hadoop or OpenStack ecosystems
• https://kubernetes.io/docs/setup/pick-right-solution/
• 40 solutions are listed in the page
• More to come
• Linker Networks is building our own solutions
• None of them suits our needs
• Kubewizard
minikube
• https://kubernetes.io/docs/getting-started-guides/minikube/
• brew cask install minikube && minikube start
• More difficult to setup on Windows (via Hyper-V)
https://goo.gl/owaoyY
• Running locally on your machine (obviously not for production)
• For the first taste of Kubernetes and Kubernetes development
• Very good for testing behaviors of different parameters of Kubernetes
components
• Lack of the distributed view of entire cluster
Kubernetes The Hard Way
• https://github.com/kelseyhightower/kubernetes-the-hard-way
• A Github repository created by Google engineer Kelsey Hightower
(@kelseyhightower)
• Manually configure the cluster step-by-step
• The tutorial is based on Google Cloud Engine
• The best way to learn Kubernetes
• Showing the distributed nature of a Kubernetes cluster
• HA for master nodes
• Authentication method by bootstrap tokens and certificates/keys
Kubernetes The Hard Way Cont.
• The latest version even demonstrates how to uses CRI-O as the container
engine
• Consistently updated
• More Kubernetes tutorials are on the Kelsey Hightower’s Github
• kubernetes-cluster-federation
• consul-on-kubernetes
• nomad-on-kubernetes
• Etc.
• Apparently not a good way to configure a large cluster
hyperkube
• Not really a way to deploy Kubernetes cluster
• A binary contains all Kubernetes components
• kube-apiserver
• kube-controller-manager
• kube-scheduler
• kubelet
• kube-proxy
• quay.io/coreos/hypercube kubelet --api-servers=http://localhost:8080
• Single endpoint to download the binary and make sure they are of
the same version
kube-up.sh
• Legacy tool for configuring a cluster
• Scripts interact with cloud platforms
• Supports many cloud providers. Some are deprecated and will be
removed soon
• curl -sS https://get.k8s.io | bash or execute the kube-up.sh directly
• You don’t have too many controls on how a cluster look like
A Million ways of Deploying a Kubernetes Cluster
kubeadm
• https://kubernetes.io/docs/setup/independent/create-cluster-
kubeadm/
• Officially developed and supported by Kubernetes developers
• Built by Golang, runs very fast
• kubeadm init on master nodes, kubeadm join on worker nodes
• Some good features out of the box
• Static pods, all Kubernetes components (excepts kubelet) are in the
containers
• Master isolation (by taint)
• Secured by all perspectives (RBAC, encrypted communication by TLS/SSL)
kubeadm cont.
• Versioned with Kubernetes release
• Very good tool for setting up small clusters quickly, which could be
useful for integration testing
• Still a work-in-progress
• All the control plan components are in the same node
• No HA configurations
• You have to write your own scripts for large scale deployment
• Limited configurable parameters
A Million ways of Deploying a Kubernetes Cluster
A Million ways of Deploying a Kubernetes Cluster
A Million ways of Deploying a Kubernetes Cluster
kops
• https://github.com/kubernetes/kops
• Specific to AWS
• Stores all the configurations files to S3
• Worker nodes are bundled with auto-scaling groups
• HA by default (master nodes are behind a ELB)
• Must have a domain name before running the setup
• Has it’s own object semantics and definition in YAML
Configuration and Provisioning Tools
• Scripts developed by Ansible, Chef, Terraform, SaltStack, etc.
• Great for deploying large clusters
• Good for different infrastructures (cloud, bare metal, on-premises)
• Could be easily found on Github
• Most of them are tutorials or specific to certain platforms, E.g.
CoreOS, AWS, etc.
• Most of the time, you have to modify the scripts to suit your needs
• kubespray -- https://github.com/kubernetes-incubator/kubespray
• https://github.com/kubernetes/contrib/tree/master/ansible
Enterprise solutions: CoreOS Tectonic
• https://coreos.com/tectonic
• License is required
• Has good cluster management user interface
• Has good installation user interface
• Baked by Terraform
• More features than just
Kubewizard
• Developed by Linker Networks
• Components
• Kubewizard-ansible: scripts to
• Kubewizard-cli: Command line tool for configuring the cluster
• Kubewizard-ui: User interface for configuring the cluster
• Opinionated
• Static pods
• Secured by default
• RBAC enabled
• CNI enabled
Kubewizard cont.
• But flexible enough to override all the configurations to deploy
customized Kubernetes clusters
• Trying to combine all the good parts of tools above mentioned
• Store configuration files externally
• Able to deploy large clusters
• HA
• Targeting on large scale and production-grade clusters
• Performance optimized
• Parallel execution
• Good CLI and Web user interface (still in progress)
A Million ways of Deploying a Kubernetes Cluster
iThome #Kubernetes Day
• https://day.ithome.com.tw/kubernetes/
• Two talks are from Linker Networks
• All the troubles you get into when setting up a Kubernetes cluster
• As the continuation of this session, I will talk about all issues we faced when
developing the Kubewizard
• Kubernetes Networking: building your own CNI plugin
• I will briefly talk about Kubernetes networking, and our intern, John Lin will
follow up talking about the concept of CNI and how to develop a CNI plugin

More Related Content

PPTX
All the troubles you get into when setting up a production ready Kubernetes c...
PPTX
Why kubernetes matters
PPTX
NetflixOSS for Triangle Devops Oct 2013
PPTX
Spinnaker on Kubernetes
PPTX
Introduction to helm
PDF
From Code to Kubernetes
PDF
Introduction to kubernetes
PDF
Introduction to Kubernetes RBAC
All the troubles you get into when setting up a production ready Kubernetes c...
Why kubernetes matters
NetflixOSS for Triangle Devops Oct 2013
Spinnaker on Kubernetes
Introduction to helm
From Code to Kubernetes
Introduction to kubernetes
Introduction to Kubernetes RBAC

What's hot (20)

PPT
Building Clustered Applications with Kubernetes and Docker
PPTX
Introduction to Kubernetes
PPTX
Webcast - Making kubernetes production ready
PDF
Setup Hybrid Clusters Using Kubernetes Federation
PDF
OpenStack on Kubernetes (BOS Summit / May 2017 update)
PPTX
Securing and Automating Kubernetes with Kyverno
PPTX
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
PDF
KUBERNETES AS A FRAMEWORK FOR WRITING DEVOPS & MICROSERVICES TOOLING
PDF
On Prem Container Cloud - Lessons Learned
PDF
Best Practices with Azure Kubernetes Services
PDF
DCEU 18: 5 Patterns for Success in Application Transformation
PPTX
Ultimate Guide to Microservice Architecture on Kubernetes
PDF
GlueCon kubernetes & container engine
PDF
Kubernetes One-Click Deployment: Hands-on Workshop (Munich)
PPTX
Canary Releases on Kubernetes w/ Spinnaker, Istio, and Prometheus
ODP
Enabling ceph-mgr to control Ceph services via Kubernetes
PDF
DCEU 18: App-in-a-Box with Docker Application Packages
PDF
Best practices in Deploying SUSE CaaS Platform v3
PDF
Kubernetes Networking 101
PDF
What's new in Kubernetes
Building Clustered Applications with Kubernetes and Docker
Introduction to Kubernetes
Webcast - Making kubernetes production ready
Setup Hybrid Clusters Using Kubernetes Federation
OpenStack on Kubernetes (BOS Summit / May 2017 update)
Securing and Automating Kubernetes with Kyverno
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
KUBERNETES AS A FRAMEWORK FOR WRITING DEVOPS & MICROSERVICES TOOLING
On Prem Container Cloud - Lessons Learned
Best Practices with Azure Kubernetes Services
DCEU 18: 5 Patterns for Success in Application Transformation
Ultimate Guide to Microservice Architecture on Kubernetes
GlueCon kubernetes & container engine
Kubernetes One-Click Deployment: Hands-on Workshop (Munich)
Canary Releases on Kubernetes w/ Spinnaker, Istio, and Prometheus
Enabling ceph-mgr to control Ceph services via Kubernetes
DCEU 18: App-in-a-Box with Docker Application Packages
Best practices in Deploying SUSE CaaS Platform v3
Kubernetes Networking 101
What's new in Kubernetes
Ad

Similar to A Million ways of Deploying a Kubernetes Cluster (20)

PDF
Achieving CI/CD with Kubernetes
PPTX
AKS Azure Kubernetes Services - Azure Nights melbourne feb 2018
PPTX
Kubernetes Manchester - 6th December 2018
PDF
Operating FoundationDB on Kubernetes
PPTX
Containers, Serverless and Functions in a nutshell
PDF
Portable CI/CD Environment as Code with Kubernetes, Kublr and Jenkins
PDF
Cluster api devopscon berlin
PDF
Kubernetes – An open platform for container orchestration
PPTX
GitOps_Without_K8s_Training_Updated_Ansible_Terraform_Docker.pptx
PDF
Automated Deployment and Configuration Engines. Ansible
PPTX
Cluster Lifecycle Landscape
PPTX
Kubernates : An Small introduction for Beginners by Rajiv Vishwkarma
PDF
Kubernetes on aws
PDF
Continuous Deployment with Kubernetes, Docker and GitLab CI
PPT
Sebastien goasguen cloud stack and docker
PPTX
Docker and kubernetes_introduction
PDF
Kubernetes Introduction
PPTX
Kubernetes Intro @HaufeDev
PPTX
Kubernetes Introduction
PPTX
AKS - Azure Kubernetes Services - kubernetes meetup may 2018
Achieving CI/CD with Kubernetes
AKS Azure Kubernetes Services - Azure Nights melbourne feb 2018
Kubernetes Manchester - 6th December 2018
Operating FoundationDB on Kubernetes
Containers, Serverless and Functions in a nutshell
Portable CI/CD Environment as Code with Kubernetes, Kublr and Jenkins
Cluster api devopscon berlin
Kubernetes – An open platform for container orchestration
GitOps_Without_K8s_Training_Updated_Ansible_Terraform_Docker.pptx
Automated Deployment and Configuration Engines. Ansible
Cluster Lifecycle Landscape
Kubernates : An Small introduction for Beginners by Rajiv Vishwkarma
Kubernetes on aws
Continuous Deployment with Kubernetes, Docker and GitLab CI
Sebastien goasguen cloud stack and docker
Docker and kubernetes_introduction
Kubernetes Introduction
Kubernetes Intro @HaufeDev
Kubernetes Introduction
AKS - Azure Kubernetes Services - kubernetes meetup may 2018
Ad

More from Jimmy Lu (20)

PPTX
Renaissance of JUnit - Introduction to JUnit 5
PPTX
Event sourcing with reactor and spring statemachine
PPTX
Bootify your spring application
PPTX
A Prototype of Brain Network Simulator for Spatiotemporal Dynamics of Alzheim...
PPTX
The Model of Spatiotemporal Dynamics of Alzheimer’s Disease
PPTX
The Models of Alzheimer's Disease Part II
PPTX
The Models of Alzheimer's Disease Part I
PPTX
The Models of Alzheimer's Disease Part III
PPTX
On the Development of a Brain Simulator
PPTX
Design the Brain Simulator
PPTX
Research Proposal and Milestone
PPTX
Reward
PPTX
On the Development of a Brain Simulator
PPTX
Mining the Parkinson's Telemonitoring Data Set
PPTX
Brian Simulator (a draft)
PPTX
Exploring Complex Networks
PPTX
Brain Network - Thalamocortical Motif
PPTX
How To Build A Personal Portal On Google App Engine With Django
PPTX
Brain Networks
PPTX
WECO Lab
Renaissance of JUnit - Introduction to JUnit 5
Event sourcing with reactor and spring statemachine
Bootify your spring application
A Prototype of Brain Network Simulator for Spatiotemporal Dynamics of Alzheim...
The Model of Spatiotemporal Dynamics of Alzheimer’s Disease
The Models of Alzheimer's Disease Part II
The Models of Alzheimer's Disease Part I
The Models of Alzheimer's Disease Part III
On the Development of a Brain Simulator
Design the Brain Simulator
Research Proposal and Milestone
Reward
On the Development of a Brain Simulator
Mining the Parkinson's Telemonitoring Data Set
Brian Simulator (a draft)
Exploring Complex Networks
Brain Network - Thalamocortical Motif
How To Build A Personal Portal On Google App Engine With Django
Brain Networks
WECO Lab

Recently uploaded (20)

PPTX
Weekly report ppt - harsh dattuprasad patel.pptx
PPTX
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
PDF
Designing Intelligence for the Shop Floor.pdf
DOCX
Modern SharePoint Intranet Templates That Boost Employee Engagement in 2025.docx
PDF
MCP Security Tutorial - Beginner to Advanced
PDF
Time Tracking Features That Teams and Organizations Actually Need
PDF
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
PDF
Cost to Outsource Software Development in 2025
PDF
Wondershare Recoverit Full Crack New Version (Latest 2025)
PDF
Autodesk AutoCAD Crack Free Download 2025
DOCX
How to Use SharePoint as an ISO-Compliant Document Management System
PDF
Ableton Live Suite for MacOS Crack Full Download (Latest 2025)
PDF
AI/ML Infra Meetup | Beyond S3's Basics: Architecting for AI-Native Data Access
PPTX
"Secure File Sharing Solutions on AWS".pptx
PPTX
Why Generative AI is the Future of Content, Code & Creativity?
PDF
AI/ML Infra Meetup | LLM Agents and Implementation Challenges
PPTX
Trending Python Topics for Data Visualization in 2025
PPTX
Introduction to Windows Operating System
PPTX
Patient Appointment Booking in Odoo with online payment
PDF
The Dynamic Duo Transforming Financial Accounting Systems Through Modern Expe...
Weekly report ppt - harsh dattuprasad patel.pptx
WiFi Honeypot Detecscfddssdffsedfseztor.pptx
Designing Intelligence for the Shop Floor.pdf
Modern SharePoint Intranet Templates That Boost Employee Engagement in 2025.docx
MCP Security Tutorial - Beginner to Advanced
Time Tracking Features That Teams and Organizations Actually Need
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
Cost to Outsource Software Development in 2025
Wondershare Recoverit Full Crack New Version (Latest 2025)
Autodesk AutoCAD Crack Free Download 2025
How to Use SharePoint as an ISO-Compliant Document Management System
Ableton Live Suite for MacOS Crack Full Download (Latest 2025)
AI/ML Infra Meetup | Beyond S3's Basics: Architecting for AI-Native Data Access
"Secure File Sharing Solutions on AWS".pptx
Why Generative AI is the Future of Content, Code & Creativity?
AI/ML Infra Meetup | LLM Agents and Implementation Challenges
Trending Python Topics for Data Visualization in 2025
Introduction to Windows Operating System
Patient Appointment Booking in Odoo with online payment
The Dynamic Duo Transforming Financial Accounting Systems Through Modern Expe...

A Million ways of Deploying a Kubernetes Cluster

  • 1. A Million Ways of Deploying a Kubernetes Cluster Jimmy Lu Data Engineer, Linker Networks Inc. [email protected]
  • 2. Overview • Why Million Ways? • minikube • Kubernetes The Hard Way • hyperkube • kube-up.sh • kubeadm • kops • Configuration and Provisioning Tools • Enterprise Solutions • Kubewizard
  • 3. Why Million Ways? • Kubernetes is open sourced • Kubernetes is a complex system • Similar to Hadoop or OpenStack ecosystems • https://kubernetes.io/docs/setup/pick-right-solution/ • 40 solutions are listed in the page • More to come • Linker Networks is building our own solutions • None of them suits our needs • Kubewizard
  • 4. minikube • https://kubernetes.io/docs/getting-started-guides/minikube/ • brew cask install minikube && minikube start • More difficult to setup on Windows (via Hyper-V) https://goo.gl/owaoyY • Running locally on your machine (obviously not for production) • For the first taste of Kubernetes and Kubernetes development • Very good for testing behaviors of different parameters of Kubernetes components • Lack of the distributed view of entire cluster
  • 5. Kubernetes The Hard Way • https://github.com/kelseyhightower/kubernetes-the-hard-way • A Github repository created by Google engineer Kelsey Hightower (@kelseyhightower) • Manually configure the cluster step-by-step • The tutorial is based on Google Cloud Engine • The best way to learn Kubernetes • Showing the distributed nature of a Kubernetes cluster • HA for master nodes • Authentication method by bootstrap tokens and certificates/keys
  • 6. Kubernetes The Hard Way Cont. • The latest version even demonstrates how to uses CRI-O as the container engine • Consistently updated • More Kubernetes tutorials are on the Kelsey Hightower’s Github • kubernetes-cluster-federation • consul-on-kubernetes • nomad-on-kubernetes • Etc. • Apparently not a good way to configure a large cluster
  • 7. hyperkube • Not really a way to deploy Kubernetes cluster • A binary contains all Kubernetes components • kube-apiserver • kube-controller-manager • kube-scheduler • kubelet • kube-proxy • quay.io/coreos/hypercube kubelet --api-servers=http://localhost:8080 • Single endpoint to download the binary and make sure they are of the same version
  • 8. kube-up.sh • Legacy tool for configuring a cluster • Scripts interact with cloud platforms • Supports many cloud providers. Some are deprecated and will be removed soon • curl -sS https://get.k8s.io | bash or execute the kube-up.sh directly • You don’t have too many controls on how a cluster look like
  • 10. kubeadm • https://kubernetes.io/docs/setup/independent/create-cluster- kubeadm/ • Officially developed and supported by Kubernetes developers • Built by Golang, runs very fast • kubeadm init on master nodes, kubeadm join on worker nodes • Some good features out of the box • Static pods, all Kubernetes components (excepts kubelet) are in the containers • Master isolation (by taint) • Secured by all perspectives (RBAC, encrypted communication by TLS/SSL)
  • 11. kubeadm cont. • Versioned with Kubernetes release • Very good tool for setting up small clusters quickly, which could be useful for integration testing • Still a work-in-progress • All the control plan components are in the same node • No HA configurations • You have to write your own scripts for large scale deployment • Limited configurable parameters
  • 15. kops • https://github.com/kubernetes/kops • Specific to AWS • Stores all the configurations files to S3 • Worker nodes are bundled with auto-scaling groups • HA by default (master nodes are behind a ELB) • Must have a domain name before running the setup • Has it’s own object semantics and definition in YAML
  • 16. Configuration and Provisioning Tools • Scripts developed by Ansible, Chef, Terraform, SaltStack, etc. • Great for deploying large clusters • Good for different infrastructures (cloud, bare metal, on-premises) • Could be easily found on Github • Most of them are tutorials or specific to certain platforms, E.g. CoreOS, AWS, etc. • Most of the time, you have to modify the scripts to suit your needs • kubespray -- https://github.com/kubernetes-incubator/kubespray • https://github.com/kubernetes/contrib/tree/master/ansible
  • 17. Enterprise solutions: CoreOS Tectonic • https://coreos.com/tectonic • License is required • Has good cluster management user interface • Has good installation user interface • Baked by Terraform • More features than just
  • 18. Kubewizard • Developed by Linker Networks • Components • Kubewizard-ansible: scripts to • Kubewizard-cli: Command line tool for configuring the cluster • Kubewizard-ui: User interface for configuring the cluster • Opinionated • Static pods • Secured by default • RBAC enabled • CNI enabled
  • 19. Kubewizard cont. • But flexible enough to override all the configurations to deploy customized Kubernetes clusters • Trying to combine all the good parts of tools above mentioned • Store configuration files externally • Able to deploy large clusters • HA • Targeting on large scale and production-grade clusters • Performance optimized • Parallel execution • Good CLI and Web user interface (still in progress)
  • 21. iThome #Kubernetes Day • https://day.ithome.com.tw/kubernetes/ • Two talks are from Linker Networks • All the troubles you get into when setting up a Kubernetes cluster • As the continuation of this session, I will talk about all issues we faced when developing the Kubewizard • Kubernetes Networking: building your own CNI plugin • I will briefly talk about Kubernetes networking, and our intern, John Lin will follow up talking about the concept of CNI and how to develop a CNI plugin