TheNewStack Book1 2 TheStateOfTheKubernetesEcosystem SecondEdition PDF
TheNewStack Book1 2 TheStateOfTheKubernetesEcosystem SecondEdition PDF
Kubernetes
Ecosystem
SECOND EDITION
The New Stack
Ebook Team:
Supporting Team:
20200724
Table of Contents
Sponsors & Partners ........................................................................................................................ 4
Credits ................................................................................................................................................... 6
Introduction .........................................................................................................................................7
DataStax: Self-Service Architectures & the Kubernetes Operator for Cassandra ...... 42
Closing ................................................................................................................................................ 77
Disclosure ..........................................................................................................................................80
DataStax is the company behind the massively scalable, highly available, cloud-
native NoSQL data platform built on Apache Cassandra. DataStax gives users and
enterprises the freedom to run data in any cloud at global scale with zero
Dynatrace is the leader in Software Intelligence, purpose built for the enterprise
cloud. It’s the only AI-assisted, full stack and completely automated intelligence
platform that provides deep insight into dynamic, web-scale, hybrid cloud
ecosystems. That’s why the world’s leading brands trust Dynatrace to deliver
further the education and advancement of cloud native computing. The vendor-
neutral events feature domain experts and key maintainers behind popular projects
sure transformations are done right. Container Solutions has offices in Amsterdam,
TriggerMesh provides a real-time cloud native integration platform that allows you
to build applications that are event-driven and composed of services from multiple
Ambassador for the Cloud Native Computing Foundation, and also one of the first
Developers. His previous experience includes Microsoft, AWS, Gigaom Research and
Alcatel-Lucent.
Analytics and Information Security. In 1999, he created the Internet Public Policy
white papers and advice about technology-related public policy issues. Lawrence
works with writers to identify data to develop actionable insights based on primary
and secondary research. He currently uses these skills to create content for thought
leadership and peer evangelism programs. Lawrence earned a Master of Public Policy
concept behind Kubernetes, a project that had emerged out of Google earlier that
Kubernetes was named after the ancient Greek term for the helm of a ship. It was
a technology architecture that spoke to a shift that had been building for several
years prior to 2015, with the rise of internet-scale businesses. Docker was still
popular, but the community was starting to explore ideas around container
orchestration. In June 2015, a new organization called the Cloud Native Computing
Scale-out architectures had arrived. Docker was the first mega open source project.
Kubernetes became the next project to watch, growing over the next few years into
became one of the most significant open source projects of the past 20 years. Some
In 2017, to document the movement, The New Stack published our first ebook about
Since 2018, the community has changed so much and developed so fast that the
first edition was starting to show its age. It needed updating and a new perspective
to reflect the Kubernetes community of today and the direction it’s going.
Kubernetes and cloud native technologies are reflected in the popularity of the
KubeCon + CloudNativeCon event, which saw attendance increase from about 1,000
people in 2016 to 4,000 people at the 2017 North America show. Last fall, the
KubeCon event in San Diego surpassed 10,000 attendees. In 2020, KubeCon will be a
At the time of publishing, everyone is home and COVID-19 keeps open source
participation a virtual exercise. But Kubernetes’ growth continues ... as does the
consolidation.
The CNCF landscape currently has a market cap of $17.8 trillion, representing 570
investment is in the overall community. There have also been some notable
runtime Tectonic, sold to Red Hat for $250 million. In late 2019, VMware bought
Heptio, the company founded by Joe Beda and Craig McLuckie, who along with
Brendan Burns led the original team at Google that developed Kubernetes. Burns
had also left Google by then, to pursue work at Microsoft. The deal to purchase
Heptio was worth a reported $450 million. In May of 2019, Palo Alto Networks
Also last May, VMware acquired Bitnami. Earlier this year, VMware announced the
purchase of Pivotal, which had led the commercialization of Cloud Foundry, the
open source Platform as a Service. In July of 2020, just prior to the publishing of
this ebook, SUSE acquired Rancher Labs for a reported $600 million.
It’s now more understood that Kubernetes requires an underlying pool of resources
for compute, storage and networking that can be run via on-premises
In this ebook, The New Stack provides a grounding in the basics of Kubernetes. The
computing, adoption patterns and its role as a universal aspect of a company’s core
infrastructure.
Container management platforms are the focus of the second chapter of the ebook.
A variety of platforms are offered now by vendors and cloud services. But they all
underlying architecture for platforms suited for enterprise data centers, cloud
The second chapter of the ebook also details the role of cloud native technologies in
particular, Kubernetes.
Microservices use components that run across multiple containers. But what is the
means for application management? It’s one of the big questions still challenging
components together in a manner that allows not only the building of the
application, but also the management of the service throughout its life cycle.
The ebook’s author, Janakiram MSV, argues that the Container as a Service (CaaS)
model now defines the cloud native stack. But it’s complex and difficult to manage.
chaos, but with engineering practices that allow for microservices to run in
at-scale development and management. They are thriving. But really, almost
And that really sums up the challenge that the Kubernetes community faces as it
moves from its hopeful beginnings, to its ongoing development as a platform that
is relevant not just to large enterprise operations, but to mid-sized and small
operations, too.
It’s the culture that is still the gap. Developers need a way to easily package
services. Another challenge is that policy and security matters are still largely
There is great promise for Kubernetes, as well as parts of the ecosystem still in
Kubernetes is the undisputed control plane now, questions remain about the data
plane. And while service mesh capabilities allow for better traffic management,
But it’s the concepts associated with observability that have us most excited.
architecture. It was made to react. But we can’t react anymore. The world requires
Thanks for downloading this ebook and please feel free to reach out any time.
Alex Williams
@alexwilliams
provisioned and consumed by businesses. The second half of the last decade
operating system.
for running multiple isolated Linux processes (containers) on a host using a single
Linux kernel. The Linux kernel leverages cgroups for resource control, linux
unit (CPU), memory, block I/O and network — all without the need for launching
virtual machines.
Unlike virtual machines, containers don’t depend on a hypervisor. They share the
underlying operating system services at the kernel level. Linux containers are
smaller in size, start at regular process start-up speed, scale rapidly, and, most
importantly, they are portable. A container built on Ubuntu can be quickly deployed
Linux (LXC), FreeBSD (Jails) and Solaris (Zones) — it was Docker, Inc. that made
and deployment.
The combination of IaaS and containers in the public cloud promised unmatched
scale and agility to organizations. The ability to launch tens — in some cases even
CPU and memory resources of each virtual machine (VM). Containers deployed in
the public cloud made it possible to run web-scale workloads at an affordable cost.
The potent combination of IaaS and containers became the secret sauce of
web-scale startups.
While Docker, Inc. delivered the container runtime and tools to manage the life
the release of Docker Swarm by Docker, Inc. and DC/OS from D2iQ (formerly
Mesosphere).
Well before containers became popular among developers, Google was running
2014, Joe Beda (one of the creators of Kubernetes) claimed that Google was
launching over two billion containers in a week. The secret to Google’s ability to
manage containers at that scale was its internal data center management tool, Borg.
containers at scale, called Kubernetes. It was a flavor of Borg that was less
opinionated. Google incorporated the best ideas from Borg into Kubernetes, while
also addressing the pain points that users had identified with Borg over the years.
In 2015, Kubernetes 1.0 was contributed to The Linux Foundation, which then
formed the Cloud Native Computing Foundation (CNCF) to manage and govern the
Where did Docker fit into this picture? Docker’s purpose was to simplify building
modern applications. The developer installed the Docker Engine on her workstation
and then used Docker application programming interfaces (APIs) and tools to
manage the life cycle of containerized applications. Docker built Compose and
Swarm as an extension to the core Docker Engine, making it possible to use the
But it was Google that took the next step, by making it possible to run different
as the industry and open source community put their support behind the
it is more suited for large-scale systems with hundreds of nodes. Mesos was
Spark and Kafka. Container orchestration came much later in the form of the
containerization in mind and an ability to run on small and large clusters with the
Docker, Inc. has also embraced Kubernetes as the preferred container orchestration
Given its simplicity, accessibility and ability to scale, Kubernetes went on to become
the most preferred container management platform. Indeed, it is one of the fastest-
growing open source projects in the history of computing. Modern applications and
greenfield applications increasingly use Kubernetes, which has led to the rise of
enterprise container management platforms like Google Anthos, Red Hat OpenShift
Service offerings in the public cloud, such as Amazon Elastic Kubernetes Service,
Kubernetes users continue to face security and cultural change challenges. They
must also adapt to new developments, like the use of service mesh, which often
Service mesh aims to improve application traffic control, observability and security
for distributed systems. Let’s take a look at the CNCF’s annual survey data.
evident in the numbers. In 2017, 64% of the 550-plus respondents to CNCF’s annual
had expanded to a wider group that were evaluating Kubernetes and manifested
itself in more than 2,400 survey participants. In 2019, 78% of the 1,300-plus
What came first, the chicken or the egg? Increased container adoption originally
typically running more containers, but their response to container proliferation has
been uneven.
Kubernetes deployments with more than five clusters continue to rise, going from
34% in 2017 to 39% in 2019, as shown in figure 1.1 below. In fact, over half of this
FIG 1.1: Larger deployments are more prevalent. The percentage of Kubernetes users with more
than five clusters rose from 34% in 2017 to 39% in 2019.
70% 66.1%
62.7%
60.9%
60%
1-5 Clusters
50%
>5 Clusters
39.1%
40% 37.3%
33.9%
30%
0
2017 2018 2019
THE STATE OF THE KUBERNETES ECOSYSTEM, SECOND EDITION 15
Source: The New Stack's analysis of CNCF's 2017, 2018 and 2019 surveys.
Q. What are your challenges in using / deploying containers?
Please select all that apply. Data only includes respondents that have at least one Kubernetes cluster.
2017, n=454; 2018, n=1475; 2019, n=1197. © 2020
CHAPTER 01: KUBERNETES, THE OPERATING SYSTEM FOR THE CLOUD
62% in 2019.
Takeaways:
● Large companies are the biggest adopters and they tend to go with their
● The scale of container usage has increased, but organizations with five or fewer
solutions are being used. The emerging tools are more likely to be evaluated to
address challenges, but customers also tend to stick with their existing vendor
relationships.
Figure 1.2 below shows that employee count is associated with large Kubernetes
FIG 1.2: Sixty-one percent of Kubernetes users at organizations with 5,000 or more employees
have more than five clusters. The study average is 39%.
61.0%
29.7% 31.3%
23.9% 22.3%
14.8%
XS S SM M ML L XL
(less than 10) (10-49) (50-99) (100-499) (500-999) (1,000-4,999) (5,000+)
Source: The New Stack's analysis of CNCF's 2019 survey. Q. If you use Kubernetes, how many production clusters do you have?
Less than 10, n=81; 10-49, n=142; 50-99, n=121; 100-499, n=239; 500-999, n=80; 1,000-4,999, n=170; 5,000 or more, n=364. © 2020
CHAPTER 01: KUBERNETES, THE OPERATING SYSTEM FOR THE CLOUD
Kubernetes users at organizations with 5,000 or more employees have more than
five clusters.
Casting the net a bit wider, organizations with at least a thousand employees are
more likely to have more than five clusters, going from 51% in 2017 to 56% in 2019.
These figures are relevant because companies with large Kubernetes deployments
Organizations with five or fewer clusters are facing challenges as they try to
● High availability.
● A declarative model for most orchestration tools, reducing friction for more
autonomous management.
Namespace 3 Namespace n
Application Application Application
Namespace 1 Namespace 2
Application Application Application
VM VM VM VM VM VM VM
Physical Infrastructure
FIG 1.3: The resource layers of a system, from the perspective of the container orchestration
engine.
IaaS is chosen by operators for control and automation. Developers prefer PaaS for
its flexibility, scale and productivity. Container orchestration tools bring the best of
workflow seamless. Developers could create a container image, run a container, and
develop code in that container to deploy it in local data centers or public cloud
The production environment is often quite different from the local environment of
and the cluster of nodes supporting them is no easy task. Orchestration is the
The distributed nature of cloud computing brought with it a paradigm shift in how
treating a container more like a unit of livestock than a favorite animal — helped
Both containers and the infrastructure they run on are immutable — a paradigm
servers built from a common image with the appropriate changes are provisioned
to replace the old ones. This approach is comparable to managing cattle at a dairy
farm.
On the other hand, traditional servers and even virtual machines are not treated as
immutable — they are more like pets and therefore not disposable. So their
maintenance cost is high, because they constantly need the attention of the
operations team.
Putting this notion into practice, containers at scale extended and refined the
● Scheduling.
● Resource management.
● Service discovery.
● Health checks.
● Autoscaling.
infrastructure companies.
services — each one designed for a single task. Each microservice is packaged as a
The rise of Kubernetes has resulted in the creation of new market segments based
building container-native products and services. The next chapter highlights some
of the building blocks of cloud native platforms and startups from this emerging
ecosystem.
Kubernetes Architecture
A contemporary application, packaged as a set of containers and deployed as
containers across hosts. It must treat the underlying compute, storage and
capable of taking advantage of the resources exposed to it, including CPU cores,
Kubernetes (see figure 1.4) is an open source distributed system that abstracts the
applications at scale. An application, managed through the entirety of its life cycle
into a single unit. An efficient cluster manager layer lets Kubernetes effectively
figure below. Once the Kubernetes infrastructure is fully configured, DevOps teams
can focus on managing the deployed workloads instead of dealing with the
Kubernetes Infrastructure
CLUSTER
Users Applications
Worker Node Worker Node Worker Node Worker Node Worker Node
1 2 3 4 5
Worker Node Worker Node Worker Node Worker Node Worker Node
6 7 8 9 n
resources, monitoring the health of the infrastructure, and even maintaining the
Like any other mature distributed system, Kubernetes has two layers consisting of
the head nodes and worker nodes (see figure 1.5). The head nodes typically run the
control plane responsible for scheduling and managing the life cycle of workloads.
The worker nodes act as the workhorses that run applications. The collection of
The DevOps teams managing the cluster talk to the control plane’s API via the
Kubernetes Architecture
Image Registry
UI Worker Node 1
User
Interface
Worker Node 2
API Kubernetes
Application Head Node
Programming
Interface
Worker Node 3
CLI
Command
Line
Interface
Worker Node n
THE STATE OF THE KUBERNETES ECOSYSTEM, SECOND EDITION 22
applications running on the worker nodes. The applications are composed of one or
Control Plane
The control plane runs the Kubernetes components that provide the core
workloads, managing the cluster, and directing communications across the entire
system. As depicted in figure 1.5, the head node monitors the containers running in
each node as well as the health of all the registered nodes. Container images,
which act as the deployable artifacts, must be available to the Kubernetes cluster
through a private or public image registry. The nodes that are responsible for
scheduling and running the applications access the images from the registry via
As figure 1.6 shows, the Kubernetes head node runs the following components that
etcd
Developed by CoreOS, which was later acquired by Red Hat, etcd is a persistent,
configuration data. It represents the overall state of the cluster at any given point
of time, acting as the single source of truth. Various other components and services
watch for changes to the etcd store to maintain the desired state of an application.
That state is defined by a declarative policy; in effect, a document that states the
optimum environment for that application, so the orchestrator can work to attain
that environment. This policy defines how the orchestrator addresses the various
The etcd database is accessible only through the API server. Any component of the
cluster which needs to read or write to etcd does it through the API server.
Kubernetes
Head Node
I Worker Node
er
face
LI
mand
ne Worker Node
face
API Server
The API server exposes the Kubernetes API by means of JSON over HTTP, providing
the representational state transfer (REST) interface for the orchestrator’s internal
and external endpoints. The CLI, the web user interface (UI), or another tool may
issue a request to the API server. The server processes and validates the request,
and then updates the state of the API objects in etcd. This enables clients to
Scheduler
The scheduler selects the node on which each workload should run based on its
the pod isn’t exceeding its allocation. It maintains and tracks resource
constraints and policy directives; for example, quality of service (QoS), affinity/
anti-affinity requirements and data locality. An operations team may define the
instructions for provisioning and allocating the right set of resources to each
workload.
Controller-Manager
The part of Kubernetes’ architecture which gives it its versatility is the controller-
is to ensure that the cluster maintains the desired application state all the time
shared state of the cluster through the API server and makes changes attempting to
The controller maintains the stable state of nodes and pods by constantly
monitoring the health of the cluster and the workloads deployed on that cluster. For
example, when a node becomes unhealthy, the pods running on that node may
become inaccessible. In such a case, it’s the job of the controller to schedule the
same number of new pods in a different node. This activity ensures that the cluster
Kubernetes comes with a set of built-in controllers that run inside the controller-
manager. These controllers offer primitives that are aligned with a certain class of
jobs. Developers and operators can take advantage of these primitives while
Worker Nodes
The node is the workhorse of the Kubernetes cluster, responsible for running
discovery; and optional add-ons. Its purpose is to expose compute, networking and
Docker, plus an agent (kubelet) that communicates with the head node. A node may
Image Registry
Worker Node 1, 2, 3, n
Pod Pod
Pod
Kubernetes Pod
Head Node Pod Pod
Pod
Pod
Pod Pod
be a virtual machine (VM) running in a cloud or a bare-metal server inside the data
center.
Container Runtime
The container runtime is responsible for managing the life cycle of each container
running in the node. After a pod is scheduled on the node, the runtime pulls the
images specified by the pod from the registry. When a pod is terminated, the
runtime kills the containers that belong to the pod. Kubernetes may communicate
The OCI is a standard that defines the runtime specification and image specification,
Kubelet
The kubelet is the Kubernetes agent whose responsibility is to interact with the
maintaining containers.
Each kubelet also monitors the state of the pods. When a pod does not meet the
desired state as defined by the deployment, it may be restarted on the same node.
The node’s status is transmitted to the head node every few seconds via heartbeat
messages. If the head node detects a node failure, the replication controller
observes this state change and schedules the pods on other healthy nodes.
Kube-Proxy
The kube-proxy component is implemented as a network proxy and a load
balancer that orchestrates the network to route requests to the appropriate pods. It
routes traffic to the appropriate pod based on the associated service name and the
Logging Layer
The orchestrator makes frequent use of logging as a means for gathering resource
usage and performance metrics for containers on each node, such as CPU, memory,
file, and network usage. The Cloud Native Computing Foundation hosts a software
component that provides a unified logging layer for use with Kubernetes or other
Add-Ons
Kubernetes supports additional services in the form of add-ons. These optional
services, such as the dashboard, are deployed like other applications, but are
integrated with other core components on the node, such as the logging layer and
kube-proxy. For example, the dashboard add-on pulls the metrics from the
kubelet to display rich visualizations of resource utilization. The DNS add-on,
Workloads
While the control plane and the worker nodes form the core cluster infrastructure,
typically used to logically separate one application from the other. They act as a
logical cluster by providing a well-defined boundary and scope for all resources and
Pods
A pod is the basic execution unit of a Kubernetes application. It is the smallest and
simplest unit in the Kubernetes object model. A pod is also the smallest schedulable
The pod serves as the core unit of workload management for Kubernetes, acting as
the logical boundary for containers sharing the same execution context and
resources. Grouping related containers into pods makes up for the configurational
communication (IPC) for communication, and that may share the storage and
— for instance, a web server container and a cache container — they may easily be
packaged in a single pod. A pod may be scaled out either manually, or through a
policy defined by a feature called Horizontal Pod Autoscaling (HPA). Through this
method, the number of pods that are a part of the deployment is increased
developers focus on their code, operators can concentrate on the broader picture of
deciding which related containers may be stitched together into a functional unit.
The result is the optimal amount of portability, since a pod is just a manifest of one
Controllers
In Kubernetes, controllers augment pods by adding additional capabilities, such as
state is always maintained by tracking the health of the pods participating in the
of replica pods running at any given time, as defined by the desired state.
replica count of two, Kubernetes ensures that at least two pods are always running,
which brings fault tolerance. Even when deploying the pod with just one replica, it
pod specification.
A statefulset is similar to a deployment, but is meant for pods that need persistence
and a well-defined identifier and guaranteed order of creation. For workloads such
workloads that need to be highly available, such as Cassandra, Kafka, SQL Server
To force a pod to run on every node of the cluster, a DaemonSet controller can be
worker nodes, it becomes an ideal candidate to configure and prepare the nodes for
the workload. For example, if an existing network file system (NFS) or Gluster file
are good candidates to be used as a DaemonSet, to ensure that each node runs the
monitoring agent.
For batch processing and scheduling jobs, pods can be packaged for a run-to-
completion job or a cron job. A job creates one or more pods and ensures that a
completion execute the job and exit, while a cron job will run a job based on the
Controllers define the life cycle of pods based on the workload characteristics and
Any API object in Kubernetes, including a node or a pod, may have key-value pairs
as labels and annotations. Service discovery takes advantage of the labels and
services, which associate a set of pods with a specific criterion. Any pod whose
labels match the selector defined in the service manifest will automatically be
cluster. But there is no guarantee that the pod’s IP address will remain the same
throughout its life cycle. Kubernetes may relocate or reinstantiate pods at runtime,
To compensate for this uncertainty, services ensure that traffic is always routed to
the appropriate pod within the cluster, regardless of the node on which it is
scheduled. Each service exposes an IP address, and may also expose a DNS
endpoint — both of which will never change. Internal or external consumers that
need to communicate with a set of pods will use the service’s IP address, or its
more generally known DNS endpoint. In this way, the service acts as the glue for
A deployment relies upon labels and selectors for determining which pods will
participate in a scaling operation. Any pod whose label matches the selector
defined by the service will be exposed at its endpoint. A service then provides basic
A selector is a kind of criterion used to query Kubernetes objects that match a label
value. This powerful technique enables loose coupling of objects. New objects may
be generated whose labels match the selectors’ value. Labels and selectors form the
an operation applies.
deployment always runs the desired number of pods. Each ReplicaSet maintains a
deployment, new pods created by that operation will instantly begin receiving
traffic.
1. ClusterIP: Meant for pods to communicate with each other within the cluster.
2. NodePort: Used to expose a service on the same port across all the nodes of a
to the appropriate node on each pod. This is typically used for services with
external consumers.
Layer 4 (L4) and Layer 7 (L7) load balancers. This scheme is often used with
When multiple services need to share the same load balancer or an external
Kubernetes. It lets multiple microservices of the same application use the same
Kubernetes, nodes represent the compute building block, which provides those
foundational resources to pods running in the clusters. The network and storage
Kubernetes.
configure. It is typically used together with a cloud provider that sets up routing
Kubernetes can support a host of plugins based on the Container Network Interface
(CNI) specification, which defines the network connectivity of containers and deals
with the network resources when the container is deleted. There are many
implementations of CNI, including Calico, Cil3ium, Contiv, Weave Net and more.
specification, which makes it possible to extend the network topology and subnets
to Kubernetes clusters.
that enforce strict routing policies by isolating pods. They bring firewall-like rules
storage by creating the persistent volumes from existing network attached storage
(NAS), storage area network (SAN), direct attached storage (DAS), solid state drives
(SSDs), non-volatile mercury express (NVMe) or flash disk arrays. Developers and
DevOps teams get a chunk of persistent volumes through the persistent volume
Kubernetes comes with storage primitives to expose storage from existing nodes.
One such primitive is a volume type that makes the underlying storage accessible
to pods. Examples of volume types include emptyDir and hostPath. They are
used for specific use cases: emptyDir is for scratch space and hostPath makes
local volumes available to pods. But they don’t have high availability and fault
tolerance due to the tight coupling with the node. Overlay storage (see figure 1.8)
layers pool storage volumes from block devices, NAS and SAN to expose external
workloads. Block storage from public cloud providers, distributed file systems based
on NFS and GlusterFS, and a few commercial storage platforms have plugins
administrators create storage classes for each type of storage engine based on their
performance and speed. Persistent volumes and claims can be created from these
storage classes for different types of workloads. For example, a relational database
THE STATE
DASOF THE KUBERNETES
/ BLOCK STORAGE ECOSYSTEM, SECOND EDITION
DAS / BLOCK STORAGE 34
management system (RDBMS) may be associated with a storage class with higher
(CMS) may target a distributed storage engine through a different storage class.
Similar to CNI, the Kubernetes community has defined specifications for storage
workloads.
Additional worker nodes can be easily added to an existing cluster with almost no
The idea of grouping a related set of containers together as a pod and treating it as
co-locating a web server and cache containers in the same pod reduces latency and
improves performance. Containers within the pod share the same execution
context, enabling them to use the interprocess communication, which reduces the
overhead.
Pods that belong to the same ReplicaSet and deployment scale rapidly. It just takes
a few seconds to scale a deployment to hundreds of pods. The pods are scheduled
on the nodes based on the resource ability and the desired state of configuration.
Autoscaler to add and remove nodes to the cluster. Combined with HPA, this
technique can efficiently manage dynamic autoscaling of both the workload as well
as the infrastructure.
The lightweight networking stack and service discovery of Kubernetes are designed
for scale. They can handle tens of thousands of endpoints exposed by services for
Adopting Kubernetes
Kubernetes is deployed in production environments as a container orchestration
applications. These use cases are not mutually exclusive. It is possible for operators
greenfield applications can leverage Kubernetes for managing the new breed of
Upstream Distribution
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
Kubernetes comes with a deployment tool called kubeadm, which provides a simple
Customers may also use automated deployment tools such as kops, kubespray and
Rancher Kubernetes Engine to install and configure clusters. These tools offer basic
Commercial Distributions
Some of the vendors offer a customized and optimized flavor of Kubernetes,
bundled with professional services and support. They follow a proven model of
Kubernetes clusters, they also promise patches, hot fixes, and seamless upgrades to
Canonical, D2iQ, HPE, Mirantis, Rancher and VMware are some of the vendors
Containers as a Service
Kubernetes is also available in the form of a fully hosted, managed platform.
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
Mirantis, NetApp and Platform 9 offer CaaS for data center and private cloud
environments.
Platform as a Service
Customers deploy PaaS primarily to standardize their development and deployment
Red Hat OpenShift and VMware Tanzu Kubernetes Grid are examples of PaaS
extensible. It can solve many of the problems that exist in traditional distributed
systems.
Kubernetes is fast becoming the preferred control plane for scheduling and
environments.
From bare-metal servers to virtual machines to the internet of things (IoT) devices
to managed cloud services, Kubernetes has gone beyond containers and pods to
Crossplane
Crossplane aims to standardize infrastructure and application management using
with existing tools and systems, and makes it easy to set policies, quotas and track
reports.
databases, and even managed services in the public cloud. DevOps can declare
external resources using the same YAML specification, along with the native
non-Kubernetes resources.
K3s
K3s from Rancher is a certified Kubernetes distribution designed for production
computing deployments.
K3s can be deployed on the most virtual machine in the public cloud, or even on a
K3s is bringing Kubernetes to the edge computing layer by making it accessible and
lightweight.
KubeEdge
At KubeCon+CloudNativeCon 2018 in Seattle, Huawei presented KubeEdge, the
edge platform based on Huawei IoT PaaS. A large part of IEF has been modified and
open sourced for KubeEdge. Available in version 1.3, KubeEdge is stable and
addresses the key use cases related to IoT and edge. It can be installed on a
KubeVirt
KubeVirt, a virtual machine management add-on for Kubernetes, is aimed at
OpenShift clusters. It extends Kubernetes by adding resource types for VMs and
VMs run within regular Kubernetes pods, where they have access to standard pod
networking and storage, and can be managed using standard Kubernetes tools such
as kubectl.
Virtual Kubelet
Microsoft’s Virtual Kubelet project is the most interesting extension of the Kubelet
agent and Kubernetes API. The Virtual Kubelet is an agent that runs in an external
environment which is registered as a node within the Kubernetes cluster. The agent
creates a node resource through the Kubernetes API. By leveraging the concepts of
native API.
Virtual Kubelet works with Azure Container Instances, Azure IoT Edge, and AWS
evolved to become the operating system of the cloud and the edge. Kubernetes is
the foundation of modern infrastructure across the data center, hybrid cloud, public
The next chapter explores the growing ecosystem of Kubernetes and the cloud
native industry.
Kathryn Erickson and Patrick McFadin from the cloud native, NoSQL data
departments.
observability use cases for operators and developers, what value telemetry
This chapter provides a big picture view of cloud native technologies, followed by a
From the operating system to the developer experience, we will dissect the stack to
take a closer look at the leading open source projects and commercial offerings
Note that this chapter does not cover anything outside of the Kubernetes core. For
particular, Databases as a Service (DBaaS) have grown in influence over the past
several years, to include products such as Amazon Aurora, Azure SQL Database,
MongoDB Atlas and Redis Cloud Essentials. However, the database is not a core
building block of the cloud native stack; rather, it is a workload. The key component
enabling databases and stateful workloads is storage, a core part of the cloud native
software stack to deploy applications as microservices, packaging each part into its
resource utilization.
One of the key attributes of cloud native is portability, which is possible only when
the lowest common denominator of infrastructure and also the foundation of the
While Kubernetes is an important element of the cloud native stack, developers and
DevOps engineers need additional software to deploy, scale and manage modern
applications. Platform vendors such as Red Hat and VMware offer end-to-end
Services (AWS), Google Cloud Platform (GCP) and Microsoft Azure — offer
network infrastructure.
With CaaS as the common fabric across the data center and public cloud,
organizations can build hybrid applications that securely connect internal assets to
the public cloud. CaaS is fast becoming an enabler of the hybrid cloud and
● DevOps processes: Integration with proven DevOps practices that ensure the
potential violations.
resources and applications by capturing metrics, events, logs and traces from
platform is composed of multiple building blocks. Some of these building blocks are
available as open source projects, while others are commercial offerings sold by
The bottom-most layer represents the physical infrastructure of the cluster in the
form of compute, storage and network components. The platform adds various
Developer Experience
Container-Optimized OS
Containers redefined the role of an operating system (OS). With much of the heavy
lifting moving to container runtimes, an OS has become a thin layer that provides
access to physical resources. This shift has resulted in a new breed of operating
footprint. It contains the most essential components that are required to run the
container runtime. Choosing the right COS goes a long way in maintaining the CaaS
deployment.
Customers can choose between Fedora CoreOS from Red Hat, Talos from Talos
Systems, Flatcar Container Linux from Kinvolk GmbH., or RancherOS from Rancher
Labs (in the process of being acquired by SUSE as of July 2020) to deploy the COS.
Most of the vendors offer an optional commercial subscription plan that includes
Container Runtime
The container runtime is responsible for managing the life cycle of a container,
In 2015, the Open Container Initiative (OCI) was launched by The Linux Foundation
-- -- CRI-O Incubation
to bring parity among the container runtime implementations. The OCI currently
defines two specifications: the Runtime Specification (runtime-spec) and the Image
According to the OCI website, the Runtime Specification outlines how to run a
implementation would download an OCI Image and then unpack that image into an
The Image Format Specification defines how to create an OCI Image — which will
The containerd project has evolved as an industry standard for the container
Docker Engine (now Docker-CE) is one of the most popular container runtimes
isolation by running pods in dedicated VMs. Apart from these, other choices
Container-Native Storage
Commercial Vendor Open Source CNCF Status
Products Projects
StorageOS StorageOS -- --
Trident NetApp -- --
disparate mediums.
Even though Kubernetes can use traditional, distributed file systems such as
The cloud native ecosystem has defined specifications for storage through the
Ceph, Longhorn, OpenEBS and Rook are some container-native storage open source
OpenShift Container Storage, Robin by Robin System and StorageOS are commercial
Traditional vendors such as NetApp, Pure Storage and VMware also provide storage
We’ll be looking at data from the 2019 CNCF survey about current and future
Kubernetes adoption plans, along with the container challenges facing Kubernetes
users. The results showed that early technology adoption was influenced by then-
Many Kubernetes users included their current storage and cloud vendors on their
cloud native shortlists. Users appeared to have trouble shortening that list. All 38 of
With the rise of managed Kubernetes, cloud providers exposed block storage
through storage classes and dynamic provisioning. Customers could attach Amazon
Elastic Block Store (EBS) volumes on AWS, Azure managed disks, Google Persistent
Disks and to Kubernetes worker nodes running in AWS, GCP and Microsoft Azure.
When asked about the cloud native storage they utilize (see figure 2.2 below),
Amazon EBS, Google Persistent Disk and Azure Disk Storage were cited as the most
Ceph 15.4
Gluster 11
MinIO 8.4
NetApp 8.2
Rook 3.4
OpenEBS 2.5
Portworx 2
Elastifile (Google) 1
Diamanti 1
FIG 2.2: File systems like Ceph are often seen as competitive to cloud storage, versus offerings
from more traditional storage companies.
access the block storage offered by the cloud provider. While widely adopted, block
storage from big cloud providers was not designed specifically for Kubernetes
workloads.
Next up on the list were Ceph, CSI and Gluster, with 37% of Gluster users also using
Ceph. Ceph and Gluster are distributed file systems that add a persistence layer
across multiple nodes. However, they are not well integrated into Kubernetes tools
and workflow, so storage administrators may find them more difficult to maintain
and configure.
Lower on the list were offerings from established storage-focused companies like
Dell EMC, NetApp and Pure Storage. Initially Kubernetes had integrated volume
upstream Kubernetes distribution became bloated, meaning that any minor update
complain of storage challenges. For example, 46% of Pure Storage customers had
average Kubernetes user. There was hope on the horizon though, as 13% utilized
the Container Storage Interface (CSI). CSI became generally available for Kubernetes
CSI was on the minds of people evaluating new options to address their current
container storage challenges. While overall only 13% of Kubernetes users were
considering CSI, that jumped to 22% among those that had storage challenges.
While established companies were being considered by some, open source projects
were top of mind among those looking for new storage options (see figure 2.3).
Compared to the average respondent, the 26.6% of Kubernetes users who were
storage-challenged were more likely to evaluate Rook (25.9% vs 15.9%), Ceph (23.4%
vs 14.4%), Gluster (14.6% vs 9.1%), OpenEBS (14.6% vs 9.2%) and MinIO (12.8% vs
9.4%). These open source efforts were notably not driven by a need to sell hardware.
For both traditional storage companies and the newer breed of uniquely cloud
native storage offerings, users were more likely to cite storage challenges. However,
addressing the concerns of their customers. While many users of newer offerings
— like MayaData’s OpenEBS, Minio and Portworx — indicated they had storage
challenges, they were likely referring to problems they had connecting legacy
datastores.
*Rook 15.9
*Ceph 14.4
*Container Storage Interface (CSI) 12.8
*MinIO 9.4
Azure Disk Storage 9.2
*OpenEBS 9.2
*Gluster 9.1
Amazon Elastic Block Store (EBS) 8.3
Google Persistent Disk 7.3
Portworx 7.3
NetApp 5.7
*OpenStack Swift 5.7
Dell EMC® 5.5
Pure Storage 5.4
Elastifile (Google) 5.1
HPE Storage 5
Diamanti 5
FIG 2.3: Further analysis of Kubernetes users who cited storage challenges (data not shown)
reveals that consideration of Rook, Ceph, and OpenEBS is 50% higher among those with storage
challenges. All three have CSI drivers.
of-breed solutions. As time goes on, it will be interesting to evaluate how effective
the new players will be. It could impact the ability of cloud and traditional storage
Container-Native Networking
Similar to container-native storage, the container-native network abstracts the
Kubernetes can support a host of plugins based on the Container Network Interface
(CNI) specification, which defines the network connectivity of containers and deals
with the network resources when the container is deleted. The CNI project is a part
and nodes.
Choosing the right networking stack is critical to maintain and secure the CaaS
platform. Customers can select the stack from open source projects including
Cilium, Contiv, Flannel, Project Calico, Tungsten Fabric and Weave Net. On the
Managed CaaS offerings from public cloud vendors come with tight integration of
the existing virtual networking stack. For example, AWS has a CNI plugin for
Amazon Elastic Kubernetes Service (EKS) based on Amazon Virtual Private Cloud
(VPC), while Microsoft has built Azure Virtual Network Container Networking
Let’s return now to data from the 2019 CNCF survey, this time in reference to
networking.
Networking is a challenge that has declined over the years, although Kubernetes
users continued to assess ingress providers. In fact, while a Kubernetes user had
an average of 1.5 ingress providers, the 28% of respondents who cited networking
Kubernetes stacks — but by itself, it wasn’t able to address the needs of all users.
Adoption of HAProxy and Envoy was lower, but rose among those with networking
challenges.
This suggests that newer market entrants were adopted to address problems.
protocols they support and whether or not they include an API gateway.
FIG 2.4: Although involved with ingress, using NGINX with Kubernetes has little impact on net-
working challenges.
NGINX 66.1
HAProxy 23.4
Envoy 20.6
Traefik 16.8
F5 10.4
None 7.9
OpenResty 3.1
StackRox StackRox -- --
container images, and performing regular risk profiling and threat detection.
points in the infrastructure, analyze for anomalies, and encrypt and authorize
traffic flowing between microservices using secure protocols like mutual Transport
Layer Security (mTLS). Calico Enterprise by Tigera is one of the leading zero-trust
A secure container platform implements the below techniques to ensure that the
● A secure container platform uses trusted images that are signed and verified.
This feature is tightly integrated with the container registry component that
Aqua, Prisma Cloud, and StackRox provide commercial solutions for securing
containers and Kubernetes infrastructure. Snyk provides both commercial and open
source solutions.
application containers.
anomalous activity in cloud native applications. Falco audits a system at the most
fundamental level: the kernel. Falco then enriches this data with other input
streams, such as container runtime metrics and Kubernetes metrics, to alert users
Open Policy Agent (OPA), another CNCF incubating project, provides a unified
toolset and framework for policies across the stack. OPA provides a high-level
declarative language that lets developers and operators specify policy as code and
simple APIs to offload policy decision-making from the software. OPA can enforce
Service Mesh
Commercial Vendor Open Source CNCF Status
Products Projects
Service mesh is becoming a key component of the cloud native stack. It enables
traffic, while the north-south traffic is handled by the core networking layer.
Service mesh adds a proxy to each microservice, which intercepts the inbound and
outbound traffic. Since it is placed close to the microservice, it can track the health
of that service.
Consul, Contour, Envoy, Istio, Kuma, Linkerd, Service Mesh Interface (SMI), and
Zuul are some of the popular open source service mesh projects.
Returning once more to data from the 2019 CNCF survey, now we’re going to look at
service mesh.
According to the survey results, service meshes were challenging for 27% of
Kubernetes users — both in regards to picking the right tool and in day-to-day
operations.
HashiCorp’s Consul and Istio were in a virtual tie as the service mesh that’s used
most often by Kubernetes users. However, many of the people who mentioned
Consul may have already been using it for service discovery and were just
That wasn’t the case for Istio and Linkerd, and both got significantly more
Solo.io Solo.io
10.3 0.6
Service Mesh Hub Service Mesh Hub
0 10% 20% 30% 40% 50% 0 10% 20% 30% 40% 50%
% of respondents evaluating solution % of respondents using solution
Source: The New Stack's analysis of CNCF's 2019 survey. Q. Please indicate if your company/organization is evaluating, or
currently using in production, any of these service mesh projects / products.lease select all that apply.What are your challenges in
using / deploying containers? Please select all that apply. Data only includes respondents that have at least one Kubernetes cluster. n=1082. © 2020
FIG 2.5: An existing base of developers using Consul for service discovery likely means that peo-
ple are using it for related service mesh functionality as well. At the same time, over half of all
Kubernetes users are evaluating Istio for the first time.
Netflix’s Zuul got an honorable mention as the fourth most likely to be on the
radar of users. Notably, only 23% of Zuul users complained about service mesh
challenges, as compared to 27% for all respondents. Since it had less name
recognition than Istio, the respondents that were using it were more likely to have
Grey Matter, Service Mesh Hub and Vamp had few, if any, users, but decent name
Looking forward, we expect that users of all service meshes will be challenged by
how well they integrate with the rest of their Kubernetes stack. In the meantime,
expect to see Istio, Linkerd, and other services try to improve their integration
with Envoy.
Mesosphere D2IQ -- --
Kubernetes Engine
(MKE)
As discussed in chapter one, the most common container orchestration engine for
Even though Kubernetes may be deployed from the upstream open source
Platform, Rancher Kubernetes Engine, Red Hat OpenShift (which can also be used
as a PaaS), SUSE CaaS Platform and VMware Tanzu Kubernetes Grid are some of the
There are open source projects available too, such as OKD and Rancher Kubernetes
Engine (RKE).
Kubernetes Engine or IBM Kubernetes Service can choose Anthos or IBM Cloud
Paks, which are tightly integrated with the control plane running in the cloud.
Container Registry
Commercial Vendor Open Source CNCF Status
Products Projects
Microservices are packaged as container images before they are deployed and
tools for automatically generating images each time a new version of the service is
built. A release management tool picks the latest version of the image from the
Docker Trusted Registry from Mirantis, GitLab Container Registry, JFrog Container
Registry and Red Hat Quay are some of the commercially available container
registries in addition to those offered by the cloud providers. Docker also offers a
hosted registry called Docker Hub and its open source counterpart, Docker Registry.
Apart from storing the container images, these products typically perform
private container registry within the customer account. Since the cluster and
registry are co-located in the same region and account, they deliver low-latency
and security.
registry that secures images with role-based access control, scans images for
vulnerabilities, and signs images as trusted images.. Project Quay is the open
source distribution of Red Hat’s Quay. It offers a consumer-grade web UI, image
Build Management
Commercial Vendor Open Source CNCF Status
Products Projects
GitLab CI GitLab -- --
Travis CI Travis CI -- --
For rapid delivery of microservices, each time code is committed to the repository,
a new container image is built and pushed into the container registry. These images
may then be deployed to staging or test environments within CaaS for automated
Build management involves converting the latest version of code into various
pipeline.
repositories, triggers an automated and secure build process, which will result in a
deployment artifact. The outcome from this stage may include container images,
GitLab and Jenkins are popular build management software products, available in
CircleCI, Digital.ai, GitHub Actions, JFrog Pipelines, SemaphoreCI and Travis CI are
Release Management
Release management represents the final stage of a CI/CD pipeline. It involves
Spinnaker is one of the most popular release management tools for microservices.
implementations of Spinnaker.
YAML artifacts and Helm Charts are version controlled and maintained in a Git
repository. Using a pull or push strategy, the changes made to the configuration are
applied to the cluster. Argo CD (CNCF incubating project) and Flux (CNCF sandbox
project) are two popular open source projects for configuring GitOps.
Observability
Observability involves capturing the metrics, logs, events and traces from the
entire stack.
Monitoring collects metrics from the infrastructure and application stack of the
cluster, as well as the deployed applications. The agents installed in each node
collect detailed information about the resource utilization; cluster health; node
node; and detailed metrics related to Pods. Customers can deploy open source
platforms such as DataDog, Dynatrace, New Relic One and Sysdig Monitor.
Logging collects and aggregates the information, warnings and errors raised by
Kubernetes generates logs that provide detailed insight into the current state of the
microservices. Various agents are deployed within the cluster to collect and stream
the logs to a central repository. Fluentd is a popular open source data collection tool
deployed in Kubernetes, which can be used in combination with Elastic and Kibana
to visualize and search logs. Service mesh software such as Istio and Linkerd are
Since cloud native applications are assembled from disparate and autonomous
services, it is important to track the chain of communication and the time it takes
for each service to respond. This mechanism is critical to monitoring and analyzing
application performance.
Open source tools like Jaeger and OpenTracing can deliver application performance
OpenTelemetry provides a single set of APIs, libraries, agents and collector services
For companies with more than five clusters, container challenges eased markedly
in 2018 and continued to improve over 2019. For Kubernetes users with one to five
Kubernetes users with 1-5 clusters, who face Kubernetes users with >5 clusters, who face
challenges using / deploying containers challenges using / deploying containers
50% 40% 30% 20% 10% 0 0 10% 20% 30% 40% 50%
2017 40.7 50
2018 38.5 Security 42.9
2019 40.2 42.5
36 32.5
37 Complexity 42.7
37.3 38
40.3 36.4
32.9 Monitoring 36.2
34 30.6
38 47.4
26.8 Networking 36.5
26.1 31.2
41.3 46.1
31.7 Storage 30
28.3 24.1
33 35.7
25.3 Logging 26.2
Companies with 27.8 24.1
1-5 clusters
faced increasing 23 30.5
challenges 17.2
Scaling based 26.9
with logging and 21.3
on load 21.4
load scaling.
19.7 24.7
16.9 Reliability 18.5
15 17.9
16 20.1
14.8
Choosing 16.9
13.2
orchestration solution 12.8
8 10.4%
9.3
Finding vendor 11.5
6.2
support 7.1
50% 40% 30% 20% 10% 0 0 10% 20% 30% 40% 50%
Source: The New Stack's analysis of CNCF's 2017, 2018 and 2019 surveys. Q. What are your challenges in using / deploying containers?
Please select all that apply. Q. What are your challenges in using / deploying containers? Please select all that apply.
1-5 Kubernetes clusters: 2017, n=300; 2018, n=925; 2019, n=729. > 5 Kubernetes clusters: 2017, n=154; 2018, n=550; 2019, n=468. © 2020
clusters, security, complexity and the cultural change it creates within the
development team were the most cited challenges in using or deploying containers.
No matter how many clusters were in use, according to the CNCF, data networking
and storage issues were being addressed. The decline in storage pain was maybe
due to the maturity of the CSI spec and the availability of a CSI interface in most
storage solutions. Networking challenges may have been less severe because
The success of CNCF, KubeCon + CloudNativeCon and the rest of the open source
Respondents with more than five clusters continued to see a decline in challenges
them in larger clusters, was a use case the Kubernetes ecosystem was addressing.
Companies with five or fewer clusters were faring worse, with challenges notably
Kubernetes:
Canonical
Canonical’s Ubuntu is the most popular Linux OS in the public cloud. Ubuntu also
runs on private clouds and Internet of Things (IoT) devices, and as a desktop PC
fully conformant with the CNCF. Canonical offers a managed service for
Mirantis
Mirantis has pivoted from being a pure-play OpenStack company to a Kubernetes
player. The company now has its own distribution of Kubernetes. It is positioned as
an open cloud infrastructure company, with a platform that can seamlessly manage
In 2019, Mirantis acquired Docker Enterprise from Docker, Inc. That includes
Apart from Docker Enterprise, Mirantis also has a managed Kubernetes offering
OpenStack or AWS.
Rancher
Rancher Labs (in the process of being acquired by SUSE as of July 2020) provides a
(Amazon EKS), Azure Kubernetes Service (AKS), and Google Kubernetes Engine
(GKE) — while enforcing consistent security policies. The platform integrates with
Red Hat
Red Hat OpenShift Container Platform is an application platform built on
management.
Red Hat OpenShift Container Platform may be deployed in the public cloud or
workloads.
environments, and also as a managed service in the public cloud. Red Hat has
partnered with public vendors such as Amazon, Microsoft and Google to offer a
SUSE
SUSE, the well-known Linux distribution company, has ventured into the CaaS
SUSE CaaS Platform supports deploying Kubernetes with multiple head nodes in
public and private cloud environments. It includes enterprise security features like
role-based access control, image scanning, and transport layer security (TLS)
SUSE is leveraging its enterprise presence to push the CaaS platform. Like its
VMware
After VMware acquired Pivotal Labs, it rebranded Pivotal Kubernetes Service (PKS)
(edge/IoT).
container registry, and full life cycle management. It’s tightly integrated with
vSphere, vCenter, vSAN and NSX. It can be deployed either in a data center running
a VMware stack, or in the public cloud running VMware Cloud (VMC) Foundation.
AWS. It is based on the key building blocks of AWS such as Amazon Elastic Compute
Cloud (EC2), Amazon EBS, Amazon Virtual Private Cloud (VPC) and Identity Access
Management (IAM). AWS also has an integrated container registry in the form of
Amazon Elastic Container Registry (ECR), which provides secure, low latency access
to container images.
Amazon EKS is tightly integrated with CloudWatch for monitoring and IAM for
security. AWS App Mesh provides native service mesh capabilities to the workloads
scheduled on nodes that are attached to NVIDIA graphics processing units (GPUs).
available in Microsoft Azure. AKS is built on top of Azure VMs, Azure Storage,
Virtual Networking and Azure Monitoring. Azure Container Registry (ACR) may be
provisioned in the same resource group as the AKS cluster for private access to
container images.
AKS takes advantage of virtual machine scale sets and Availability Sets to
AKS is available on Azure Stack Hub, Microsoft’s hybrid cloud offering for running
Kubernetes in the public cloud. Like other public cloud-based CaaS, GKE takes
public cloud platforms through the Anthos service. Anthos is a control plane that
runs in GCP, but manages the life cycle of clusters launched in hybrid and
multicloud environments.
Google extended GKE with a managed Istio service for service mesh capabilities. It
also offers Cloud Run, a serverless platform — based on the Knative open source
horizontal scaling; service discovery and load balancing; automated rollouts and
IBM is one of the few cloud providers to offer a managed Kubernetes service on
bare metal.
Via its acquisition of Red Hat, IBM offers a choice of community Kubernetes or
IBM also built Cloud Paks, a set of hyperconverged appliances based on Kubernetes
Nirmata 1
0 5% 10% 15% 20% 25% 30%
FIG 2.7: The names of many offerings have changed since the question was originally asked.
Combined with both the Pivotal and VMware offerings, Tanzu may see an improved position
when 2020’s survey results are released.
ran containers with Google Kubernetes Engine (GKE). AWS was still touting its
Elastic Container Service (ECS) and Microsoft’s Azure Container Service had just
been launched. But even then it was clear Kubernetes would become the container
(GCP), with Azure and VMware 21% and 15% respectively. Half of all Kubernetes
workloads were running on AWS, even if they were being run on top of VMs and
At that year’s AWS re:Invent, Amazon Elastic Container Service for Kubernetes
(EKS) was announced — with general availability coming in mid-2018 and AWS
became a CNCF member soon after. Kubernetes had won the container
orchestration war, but companies tended to run containers where they ran other
workloads. For this reason, Amazon EKS and Azure Kubernetes Service (AKS) saw
The latest CNCF survey in 2019 included over 100 choices in its question about how
containers are managed, with Amazon EKS (30%) used a bit more often than GKE
(29%) among Kubernetes users. In addition to Microsoft’s offering, both Red Hat
all CNCF projects, including Kubernetes. Hightower speaks about his role in
“I remember going through the codebase and there wasn’t really a good
review on how to even install it,” Hightower said about his first encounter
with Kubernetes in 2015. “The first thing that I did was put together what
Listen on SoundCloud
much built. The concepts of pods, nodes and clusters are a part of the language that
describe scale-out architectures. It’s no longer about the marvels of the plumbing,
Kubernetes is getting boring, simply because in 2020 it’s resilient and scalable. The
It’s easy to forget that Kubernetes’ plumbing was anything but boring a few years
ago. But since the publishing of The New Stack’s first ebook about Kubernetes in
2017, a continual release schedule for the container orchestrator has established an
distributed applications.
The challenge now is how to build on top of Kubernetes. In the world of scale-out
immutable, meaning the containers can be replaced with new containers to update
the code for the application component. Immutable infrastructure is based upon
updated code.
The challenge with building on top of Kubernetes comes with the nature of
The Container Network Interface (CNI) connects containers and associated plugins
with the network that the organization is using to run an application. In this
environment, the value is in the wide support that allows for plugins to connect
into networks. The companies developing a common CNI are a pointer to why the
Kubernetes’ plumbing may be boring now, but the technologists developing the
architecture for one of the first operating systems for software and services on
But Kubernetes is still relatively new. Client-based operating systems are built for
Linux kernel. Kubernetes makes the container a base process for orchestrating code
that runs as components. It’s a control plane independent of the cloud or client
architectures. It allows APIs to manage the control plane and the correlating
Service (PaaS) age is passing by; it’s far less relevant than three years ago. PaaS is a
built and assembled as an application structure. But even the best of them can’t
Containers are changing the game. Code can run in a container and be managed far
more easily, in far less time. But there are still few ways for developers to build
the CPU and the physical infrastructure. The management platform includes the
CaaS platforms will take some time to mature. Managed services will become more
Until then, the roles people play — the personas so to speak — will evolve for
developers, the people responsible for configuring the services, and those who
define the policies for Kubernetes. The container-based universe has arrived with a
Kubernetes may not be perfectly boring, after all. But it’s getting there. As Kelsey
Packet, PagerDuty, Portworx, Prisma Cloud by Palo Alto Networks, Red Hat, Redis
Labs, Rezilion, SaltStack, SAP, Sentry, Snyk, Sonatype, The Linux Foundation,