FAUN — Developer Community 🐾

We help developers learn and grow by keeping them up with what matters. 👉 www.faun.dev

Follow publication

Kubernetes Deployment -Which tool?

--

Deploying the Kubernetes cluster manually can be a daunting task and generally not recommended. To simplify and facilitate the deployment process there are some tools, ones that are widely used are kops, kubeadm, kubespray.

All of these are managed, developed, and supported by the Kubernetes community, we will discuss each of the three and when and why to use them.

Kubespray gives a simple and easy way to install a multi-master, production-ready HA cluster for deploying any business-critical applications. Kubespray is using Ansible playbooks, inventory, provisioning tools, to deploy Kubernetes. It can be used to deploy k8s clusters on cloud or on-premise. Kubespray provides:

  • support for deployments on AWS, Google Compute Engine, Microsoft Azure, OpenStack, and bare metal
  • a composable architecture with a choice from six network plugins
  • kubeadm under the hood
  • a highly available cluster
  • composable attributes
  • Container Linux by CoreOS
  • Debian Jessie, Stretch, Wheezy, Ubuntu 16.04, 18.04, CentOS/RHEL 7
  • continuous-integration tests

kops helps users to create, destroy, upgrade, and maintain production-grade, highly available, Kubernetes clusters from the command line. AWS (Amazon Web Services) is currently officially supported, with GCE in beta support, and VMware vSphere in alpha, and other platforms planned. It is maintained by the core Kubernetes team, which is one of the biggest advantages of kops.

  • Automates the provisioning of Kubernetes clusters in AWS and GCE (beta), VMware vSphere (alpha).
  • Deploys Highly Available (HA) Kubernetes Masters
  • Built on a state-sync model for dry-runs and automatic idempotency
  • Ability to generate Terraform
  • Supports custom Kubernetes add-ons
  • Command-line autocompletion
  • YAML Manifest Based API Configuration
  • Templating and dry-run modes for creating Manifests
  • Choose from eight different CNI Networking providers out-of-the-box
  • Supports upgrading from Kube-up
  • Capability to add containers, as hooks, and files to nodes via a cluster manifest

Check this guide to install Kubernetes on AWS using Kops.

Kubeadm

Kubeadm automates the installation and configuration of Kubernetes components such as the API server, Controller Manager, and Kube DNS. It does not, however, create users or handle the installation of operating-system-level dependencies and their configuration. kubeadm was designed to simplify Kubernetes bootstrapping and installation of cluster add-ons. Kubeadm is a good choice for Kubernetes bare-metal installations or as a complement to any other tooling a user may employ during a manual setup.

According to the official docs, kubeadm can be used in the following scenarios:

  • to try out Kubernetes for the first time
  • to deploy a cluster or test an app if already skilled in Kubernetes
  • to be exploited as a building block in complex systems with some other installers

The full picture of which direction we’re taking is described in this blog post. Please also refer to the latest milestones in this repo.

Kubespray vs Kops vs Kubeadm

Kubespray runs on bare metal and most clouds, using Ansible as its substrate for provisioning and orchestration. Kubespray is a good choice if you are familiar with Ansible, existing Ansible deployments, or the desire to run a Kubernetes cluster across multiple platforms.

Kops is more tightly integrated with the unique features of the clouds it supports so it could be a better choice if you know that you will only be using one platform for the foreseeable future. Kops performs the provisioning and orchestration itself, and as such is less flexible in deployment platforms

Kubeadm provides domain Knowledge of Kubernetes clusters’ life cycle management, including self-hosted layouts, dynamic discovery services, and so on. Kubespray however, does generic configuration management tasks from the “OS operators” ansible world, plus some initial K8s clustering (with networking plugins included) and control plane bootstrapping.

Follow us on Twitter 🐦 and Facebook 👥 and Instagram 📷 and join our Facebook and Linkedin Groups 💬.

To join our community Slack team chat 🗣️ read our weekly Faun topics 🗞️, and connect with the community 📣 click here⬇

If this post was helpful, please click the clap 👏 button below a few times to show your support for the author! ⬇

Sign up to discover human stories that deepen your understanding of the world.

--

--

Published in FAUN — Developer Community 🐾

We help developers learn and grow by keeping them up with what matters. 👉 www.faun.dev

No responses yet

Write a response