4 Ways to Run Kubernetes in Production
Kubernetes is deployed in production environments as a container orchestration engine, as a platform-as-a-service (PaaS), and as core infrastructure for managing cloud native applications. These use cases are not mutually exclusive.
It is possible for operators to delegate complete application lifecycle management (ALM) to a PaaS layer based on Kubernetes. They may also use a standalone Kubernetes deployment to manage applications deployed using the existing CI/CD toolchain.
Customers building greenfield applications can leverage Kubernetes for managing the new breed of microservices-based cloud native applications through advanced scenarios such as rolling upgrades and canary deployments.
Customers evaluating Kubernetes or using it for production deployments can choose from a variety of distributions and flavors.
Below is a list of mainstream Kubernetes distributions available in the market:
The upstream, open source distribution of Kubernetes available in GitHub can be deployed in data centers, public clouds and private cloud environments. The codebase includes the core building blocks and the essential elements needed to run workloads on Kubernetes.
Kubernetes comes with a deployment tool called kubeadm, which provides a simple installation experience for configuring clusters based on CentOS, Red Hat Enterprise Linux, SUSE, Ubuntu and other Linux distributions.
Customers may also use automated deployment tools such as kops, kubespray and Rancher Kubernetes Engine to install and configure clusters. These tools offer basic to advanced levels of customization for configuring container runtimes, network and storage plugins.
The upstream distribution is free, transparent and a fully-configurable approach of installing Kubernetes. However, it demands a high level of expertise and skills from individuals and organizations planning to use Kubernetes.
Some of the vendors offer a customized and optimized flavor of Kubernetes, bundled with professional services and support. They follow a proven model of commercializing open source software through services.
Commercial distributions not only accelerate the configuration and deployment of Kubernetes clusters, they also promise patches, hotfixes, and seamless upgrades to newer versions of the platform.
Containers as a Service
Kubernetes is also available in the form of a fully hosted, managed platform. Whether it is an enterprise data center, co-located infrastructure facility, or a public cloud environment, the vendors offering Containers as a Service (CaaS) promise an end-to-end Kubernetes environment backed by a commercial service-level agreement (SLA).
Almost all the major cloud providers now have a CaaS offering. Alibaba Container Service for Kubernetes, Amazon EKS, Azure AKS, DigitalOcean Kubernetes, Google Kubernetes Engine, Huawei Cloud Container Engine and IBM Kubernetes Service are examples of CaaS in the public cloud.
Platform as a Service
Customers deploy PaaS primarily to standardize their development and deployment environments. By using a Kubernetes-based PaaS, they will be able to develop traditional line-of-business applications and greenfield applications. Kubernetes has been adopted by traditional PaaS vendors to deliver end-to-end platform capabilities to enterprise customers.
Built on top of core container orchestration capabilities, Kubernetes-based PaaS offerings deliver complete lifecycle management for containerized applications.