Tech Articles from your friends at Oracle and the developer community.
What is Kubernetes?
Developer Resource Center
June 1, 2022
Often described as the “operating system for the cloud,” Kubernetes is an open source
platform for managing clusters of containerized applications and services. Developed by
Google engineers Joe Beda, Brendan Burns, and Craig McLuckie in 2014 and open sourced
shortly thereafter, Kubernetes soon became a thriving, cloud native ecosystem in its own
right. Today, Kubernetes—which means “helmsman” or “pilot” in ancient
Greek—is managed by the Cloud
Native Computing Foundation (CNCF), an arm of the Linux Foundation.
Kubernetes was the first graduated project for the CNCF, and it became one of the fastest
growing open source projects in history. Kubernetes now has more than 2,300
contributors, and has been widely adopted by companies large and small, including half
of the Fortune 100.
To begin with, here are a few key terms related to Kubernetes. There is a more exhaustive
available on the Kubernetes Standardized Glossary page. You can also leverage the Kubernetes Cheat Sheet, which contains a list of commonly
kubectl commands and flags.
Is a set of machines individually referred to as nodes used to run containerized
managed by Kubernetes.
Is either a virtual or physical machine. A cluster consists of a master node and a number of
Is an image that contains software and its dependencies.
Is a single container or a set of containers running on your Kubernetes cluster.
Is an object that manages replicated applications represented by pods. Pods are deployed onto
nodes of a cluster.
Ensures that a specified number of pod replicas are running at one time.
Describes how to access applications represented by a set of pods. Services typically
and load balancers, and can be used to control internal and external access to a
KubeCon is the annual conference for Kubernetes developers and users. Since the first KubeCon
with 500 attendees, KubeCon has grown to become an important event for the cloud native
community. In 2019, the San Diego, California edition of KubeCon drew 12,000 developers
reliability engineers who were celebrating the open source ecosystem blossoming around
Kubernetes cloud orchestration platform.
As developers increasingly deploy software for a diverse set of computing environments with
clouds, test environments, laptops, devices, operating systems, and platforms, the issue
making the software run reliably is of paramount importance. That’s where containers
They bundle an application with its entire runtime environment. In this sense,
containers are a
form of virtualization because they provide a “bubble” in which the application can run
including the correct libraries, dependencies, and operating systems. But containers are
than virtual machines because they contain only the resources the application needs, and
While Linux containers have existed since 2008, it took the emergence of Docker containers in
make them famous. Similarly, the explosion of interest in deploying containerized
applications—applications that contained everything they needed to run—ultimately
created a new
problem: managing thousands of containers. Kubernetes automatically orchestrates the
lifecycle, distributing the containers across the hosting infrastructure. Kubernetes
resources up or down, depending on demand. It provisions, schedules, deletes, and
health of the containers.
The key components of Kubernetes are clusters, nodes, and the control plane. Clusters contain
Each node comprises a set of at least one worker machine. The nodes host pods that
elements of the deployed application. The control plane manages nodes and pods in the
often across many computers, for high availability.
The control plane contains the following:
Kubernetes API server: provides the programming interface (API) for controlling
etcd: a key-value store for cluster data
Kubernetes scheduler: matches new pods to available nodes
Kubernetes-controller-manager: runs a number of processes to manage node failure,
replication, join services and pods via endpoints, and control accounts and
Cloud-controller-manager: helps manage APIs from specific cloud providers around
aspects as specific infrastructure routes and load balancing
The node components include:
kubelet: an agent that checks that containers are running in a pod
Kubernetes network proxy: maintains network rules
Docker, containerd, or another type of container runtime
What are the benefits of
With containers, you can be confident that your applications are bundled with
need to run. But as you add containers—which often contain microservices—you can
automatically manage and distribute them using Kubernetes.
With Kubernetes, organizations can:
Dial deployments up or down,
Find containerized services via the
Stabilize deployment by distributing
Choose local or cloud storage.
Choose the kinds of containers you
run, and which ones to replace
new image or container
Securely update passwords, OAuth
SSH keys related to specific
What are the
challenges of using Kubernetes?
While Kubernetes is highly composable and can support any type of application, it can be
understand and use. Kubernetes is not always the correct solution for a given workload,
number of CNCF members have commented on. Which is why the Kubernetes ecosystem contains
number of related cloud native tools that organizations have created to solve specific
Kubernetes deploys containers, not source code, and does not build applications. For logging,
middleware, monitoring, configuration, CI/CD, and many other production activities,
additional tools. That said, Kubernetes is extensible, and has proven to be adept for a
variety of use cases from jet planes to machine learning. In fact, cloud vendors
Oracle, Google, Amazon Web Services, and others have used Kubernetes’ own extensibility
managed Kubernetes, which are services that reduce complexity and increase developer
What is managed Kubernetes?
Our Cloud Infrastructure Container Engine
for Kubernetes is a
developer-friendly, managed service that you can use to deploy your
applications to the cloud. Use Container Engine for Kubernetes when your
team wants to reliably build, deploy, and manage cloud native applications. You
the compute resources that your applications require, and Container Engine for
Kubernetes provisions them within an existing Cloud Infrastructure tenancy.
While you don’t need to use a managed Kubernetes service, our Cloud Infrastructure
Engine for Kubernetes is an easy way to run highly available clusters with the
security, and predictable performance of Oracle Cloud Infrastructure. Container
for Kubernetes supports both bare metal and virtual machines as nodes, and is
as conformant by the CNCF. You also get all Kubernetes updates and stay
the CNCF ecosystem without any extra work on your part.
Oracle is a Platinum member of the Cloud Native Computing Foundation (CNCF), an open
community that supports several dozen software development projects organized by
maturity level. The graduated projects (Kubernetes, Prometheus, Envoy, CoreDNS, containerd, Fluentd, Jaeger, Vitess, TUF, and Helm) have all proven
invaluable for aspects of cloud native
Kubernetes has a large ecosystem of supporting projects that have sprung up around it. The
can be daunting, and looking for answers to simple questions can lead you down a rabbit
But the first few steps down this path are simple, and from there you can explore
concepts as your needs dictate. Learn how to:
Set up a local development environment with Docker and Kubernetes
Create a simple Java microservice with Helidon
Build the microservice into a container image with Docker
Deploy the microservice on a local Kubernetes cluster
Scale the microservice up and down on the cluster
Kubernetes for developers
Developers who are eager to start their first Kubernetes project can check out our developer portal where
they can learn how to
build their first Arm app on Kubernetes or deploy a Kubernetes cluster using cloud
Explore and discover our latest tutorials
Serverless functions are part of an evolution in cloud computing that has helped free organizations from many of the constraints of managing infrastructure and resources.
What is a blockchain?
In broad terms, a blockchain is an immutable transaction ledger, maintained within a distributed peer-to-peer (p2p) network of nodes. In essence, blockchains serve as a decentralized way to store information.
The CLI is a small-footprint tool that you can use on its own or with the Console to complete Oracle Cloud Infrastructure tasks. The CLI provides the same core functionality as the Console, plus additional commands.
Try Free Tier. No Time Limits.
Get Free Tier with no time limits on a selection of Always Free services like Autonomous Database, Compute, and Storage, and US$300 in free credits to try additional cloud services.