Kubernetes

Kubernetes — also known as “k8s” or “kube” — is a container orchestration platform for scheduling and automating the deployment, management, and scaling of containerized applications.

Kubernetes is a portable, extensible, open source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available. Today, Kubernetes and the broader container ecosystem are maturing into a general-purpose computing platform and ecosystem that rivals — if not surpasses — virtual machines (VMs) as the basic building blocks of modern cloud infrastructure and applications.

Kubernetes

Kubernetes Components


A Kubernetes cluster consists of a set of worker machines, called nodes, that run containerized applications. Every cluster has at least one worker node. The worker node(s) host the Pods that are the components of the application workload. The control plane manages the worker nodes and the Pods in the cluster.


Improved—and seamless—portability

The control plane's components make global decisions about the cluster (for example, scheduling), as well as detecting and responding to cluster events

  • Kube-apiserver
  • Kube-scheduler
  • Etcd
  • Kube-controller-manager
Node Components

Node components run on every node, maintaining running pods and providing the Kubernetes runtime environment.

  • Kubelet
  • Kube-proxy

Kubernetes as a Service


Kubernetes as a Service (KaaS) makes it possible to operate Kubernetes, the world’s most popular container orchestrator, as a managed service. KaaS services are commonly provided in the public cloud, but some KaaS platforms can also be deployed on-premises.


Here are some of the most popular Kubernetes as a Service platforms--

Google Kubernetes Engine

Google Kubernetes Engine (GKE)

GKE was the first commercial Kubernetes as a Service offering, and is a respected and mature solution, built by Google which originally developed Kubernetes. Is part of the Google Cloud Platform (GCP). GKE lets you deploy, manage and monitor applications, services and persistent storage in managed Kubernetes clusters. It includes auto-scaling and offers auto-updates for Kubernetes.

Amazon Elastic Kubernetes Service

Amazon Elastic Kubernetes Service (EKS)

EKS is a service used to run managed Kubernetes on AWS. It can deploy clusters across multiple availability zones (AZ) with high availability. EKS integrates with AWS services such as IAM, CloudTrail, and App Mesh. Worker nodes can be deployed using Amazon EC2 or Amazon Fargate, which provides a serverless model with billing according to actual memory and CPU resources used.

Azure Kubernetes Service

Azure Kubernetes Service (AKS)

AKS is a fully managed service that lets you manage Kubernetes on Microsoft Azure resources. It allows you to deploy directly to Azure, Azure Stack, or Internet of Things (IoT) edge devices. You can integrate with existing Azure services such as Azure Dev Spaces, Visual Studio Code, Azure DevOps, and Azure Monitor.

Red Hat OpenShift

Red Hat OpenShift

OpenShift OpenShift Dedicated is a highly customizable managed service you can use to deploy Kubernetes to any cloud (other editions of the service are specific to AWS, Azure, or IBM Cloud). It supports multi-tenancy, has a built-in dedicated image registry, and provides extended support for CI/CD tooling. It is based on the open source OpenShift Origin project.

VMware Tanzu

VMware Tanzu

VMware Tanzu is a platform that enables organizations to build and manage Kubernetes environments, alongside traditional VMware workloads, with central control. It enables integrating Kubernetes with VMware technology like vSphere, vSAN and NSX, to manage VMware Kubernetes clusters within the same software defined data center (SDDC).

Tanzu has strong support for multi-cloud deployments, and provides enterprise-grade features like security, backup and utilization management.

Google Kubernetes Engine
Google Kubernetes Engine (GKE)

GKE was the first commercial Kubernetes as a Service offering, and is a respected and mature solution, built by Google which originally developed Kubernetes. Is part of the Google Cloud Platform (GCP). GKE lets you deploy, manage and monitor applications, services and persistent storage in managed Kubernetes clusters. It includes auto-scaling and offers auto-updates for Kubernetes.

Amazon Elastic Kubernetes Service
Amazon Elastic Kubernetes Service (EKS)

EKS is a service used to run managed Kubernetes on AWS. It can deploy clusters across multiple availability zones (AZ) with high availability. EKS integrates with AWS services such as IAM, CloudTrail, and App Mesh. Worker nodes can be deployed using Amazon EC2 or Amazon Fargate, which provides a serverless model with billing according to actual memory and CPU resources used.

Azure Kubernetes Service
Azure Kubernetes Service (AKS)

AKS is a fully managed service that lets you manage Kubernetes on Microsoft Azure resources. It allows you to deploy directly to Azure, Azure Stack, or Internet of Things (IoT) edge devices. You can integrate with existing Azure services such as Azure Dev Spaces, Visual Studio Code, Azure DevOps, and Azure Monitor.

Red Hat OpenShift
Red Hat OpenShift

OpenShift OpenShift Dedicated is a highly customizable managed service you can use to deploy Kubernetes to any cloud (other editions of the service are specific to AWS, Azure, or IBM Cloud). It supports multi-tenancy, has a built-in dedicated image registry, and provides extended support for CI/CD tooling. It is based on the open source OpenShift Origin project.

VVMware Tanzu
VVMware Tanzu

VMware Tanzu is a platform that enables organizations to build and manage Kubernetes environments, alongside traditional VMware workloads, with central control. It enables integrating Kubernetes with VMware technology like vSphere, vSAN and NSX, to manage VMware Kubernetes clusters within the same software defined data center (SDDC).

Tanzu has strong support for multi-cloud deployments, and provides enterprise-grade features like security, backup and utilization management.

Advantages of Kubernetes



Load balancing
Service discovery and load balancing

Kubernetes can expose a container using the DNS name or using their own IP address. If traffic to a container is high, Kubernetes is able to load balance and distribute the network traffic so that the deployment is stable.

Storage orchestration
Storage orchestration

Kubernetes allows you to automatically mount a storage system of your choice, such as local storages, public cloud providers, and more

Automated rollouts and rollbacks
Automated rollouts and rollbacks

You can describe the desired state for your deployed containers using Kubernetes, and it can change the actual state to the desired state at a controlled rate

Automatic bin packing
Automatic bin packing

You provide Kubernetes with a cluster of nodes that it can use to run containerized tasks. You tell Kubernetes how much CPU and memory (RAM) each container needs.

Self-healing
Self-healing

Kubernetes restarts containers that fail, replaces containers, kills containers that don't respond to your user-defined health check, and doesn't advertise them to clients until they are ready to serve.

configuration management
Secret and configuration management

Kubernetes lets you store and manage sensitive information, such as passwords, OAuth tokens, and SSH keys. You can deploy and update secrets and application configuration without rebuilding your container images, and without exposing secrets in your stack configuration.