Kubernetes, Greek for helmsman and also known as “k8s” or “kube,” is a container-orchestration platform used to schedule and automate the deployment, management and scaling of containerized applications. It rivals VMs for delivering platform as a service that addresses many infrastructure- and operations-related tasks and issues around cloud-native development.
A container is an executable software unit in which application code is packaged — together with libraries and dependencies — so it can run anywhere on the desktop, traditional IT or in the cloud. Containers exploit a form of OS virtualization that lets applications share the OS by isolating processes and controlling access to CPU, memory and processes.
As containers proliferated, operations teams needed to schedule and automate container deployment, networking, scalability and availability. Kubernetes became the most widely adopted for its functionality, its ecosystem of open source-supporting tools and its portability across leading cloud providers, some of which offer fully managed Kubernetes services.
Clusters comprise nodes. Each node represents 1 compute host. Worker nodes in a cluster deploy, run and manage containerized apps. Pods share compute resources and network and are key to scaling. If a container in a pod gets too much traffic, Kubernetes replicates the pod. Deployments control the creation and state of the containerized app and keep it running.
As the number of containers in a cluster grows, the possible connection paths between them grow exponentially, making configuration and management complex. Istio on IBM Cloud, an open source service mesh layer for Kubernetes clusters, adds a sidecar container to each Kubernetes cluster. A sidecar configures, monitors and manages interactions between other containers.
Knative, an open source platform, sits on top of Kubernetes and provides two vital benefits for cloud-native development. It’s an easy access method to serverless computing and a way to build a container once and run it as a software service or serverless function. Knative transparently handles things like generating configuration files and writing CI/CD scripts.