* [Topics](/en/topics "Topics")
* [Containers](/en/topics/containers "Containers")
* Introduction to Kubernetes architecture
Introduction to Kubernetes architecture
=======================================
Published  January 31, 2020•*4*-minute read
Copy URL
Jump to section
---------------
OverviewDesign principlesComponents of a clusterWhat happens in the control plane?What happens in a node?What else does a cluster need?Nobody said this would be easyWhy choose Red Hat?
Overview
--------
If you know only the [basics of Kubernetes](/en/topics/containers/what-is-kubernetes), you know it’s an [open source](/en/topics/open-source/what-is-open-source) container orchestration platform designed for running distributed applications and services at scale. But you might not understand its components and how they interact.
Let’s take a brief look at the design principles that underpin Kubernetes, then explore how the different components of Kubernetes work together.
Kubernetes design principles
----------------------------
The design of a Kubernetes cluster is based on 3 principles, as explained in the [Kubernetes implementation details](https://kubernetes.io/docs/reference/setup-tools/kubeadm/implementation-details/).
A Kubernetes cluster should be:
* **Secure.** It should follow the latest security best-practices.
* **Easy to use.** It should be operable using a few simple commands.
* **Extendable.** It shouldn’t favor one provider and should be customizable from a configuration file.
Red Hat resources
-----------------
[Keep reading](/en/resources "Keep reading")
What are the components of a Kubernetes cluster?
------------------------------------------------
A working Kubernetes deployment is called a [cluster](/en/topics/containers/what-is-a-kubernetes-cluster). You can visualize a Kubernetes cluster as two parts: the control plane and the compute machines, or nodes. Each node is its own [Linux®](/en/topics/linux) environment, and could be either a physical or [virtual machine](/en/topics/virtualization/what-is-a-virtual-machine). Each node runs pods, which are made up of [containers](/en/topics/containers).
This diagram shows how the parts of a Kubernetes cluster relate to one another:
![A diagram showing how the parts of a Kubernetes cluster relate to one another](/rhdc/managed-files/kubernetes_diagram-v3-770x717_0.svg "Kubernetes cluster diagram")
What happens in the Kubernetes control plane?
---------------------------------------------
### Control plane
Let’s begin in the nerve center of our Kubernetes cluster: The control plane. Here we find the Kubernetes components that control the cluster, along with data about the cluster’s state and configuration. These core Kubernetes components handle the important work of making sure your containers are running in sufficient numbers and with the necessary resources.
The control plane is in constant contact with your compute machines. You’ve configured your cluster to run a certain way. The control plane makes sure it does.
### kube-apiserver
Need to interact with your Kubernetes cluster? Talk to the API. The [Kubernetes API](/en/topics/containers/what-is-the-kubernetes-api) is the front end of the Kubernetes control plane, handling internal and external requests. The API server determines if a request is valid and, if it is, processes it. You can access the API through REST calls, through the kubectl command-line interface, or through other command-line tools such as kubeadm.
### kube-scheduler
Is your cluster healthy? If new containers are needed, where will they fit? These are the concerns of the Kubernetes scheduler.
The scheduler considers the resource needs of a pod, such as CPU or memory, along with the health of the cluster. Then it schedules the pod to an appropriate compute node.
### kube-controller-manager
Controllers take care of actually running the cluster, and the Kubernetes controller-manager contains several controller functions in one. One controller consults the scheduler and makes sure the correct number of pods is running. If a pod goes down, another controller notices and responds. A controller connects services to pods, so requests go to the right endpoints. And there are controllers for creating accounts and API access tokens.
### etcd
Configuration data and information about the state of the cluster lives in [etcd](/en/topics/containers/what-is-etcd), a key-value store database. Fault-tolerant and distributed, etcd is designed to be the ultimate source of truth about your cluster.
What happens in a Kubernetes node?
----------------------------------
### Nodes
A Kubernetes cluster needs at least one compute node, but will normally have many. Pods are scheduled and orchestrated to run on nodes. Need to scale up the capacity of your cluster? Add more nodes.
### Pods
A pod is the smallest and simplest unit in the Kubernetes object model. It represents a single instance of an [application](/en/topics/cloud-native-apps). Each pod is made up of a container or a series of tightly coupled containers, along with options that govern how the containers are run. Pods can be connected to persistent storage in order to run stateful applications.
### Container runtime engine
To run the containers, each compute node has a container runtime engine. [Docker](/en/topics/containers/what-is-docker) is one example, but Kubernetes supports other Open Container Initiative-compliant runtimes as well, such as rkt and CRI-O.
### kubelet
Each compute node contains a kubelet, a tiny application that communicates with the control plane. The kublet makes sure containers are running in a pod. When the control plane needs something to happen in a node, the kubelet executes the action.
### kube-proxy
Each compute node also contains kube-proxy, a network proxy for facilitating Kubernetes networking services. The kube-proxy handles network communications inside or outside of your cluster—relying either on your operating system’s packet filtering layer, or forwarding the traffic itself.
What else does a Kubernetes cluster need?
-----------------------------------------
### Persistent storage
Beyond just managing the containers that run an application, Kubernetes can also manage the application data attached to a cluster. Kubernetes allows users to request storage resources without having to know the details of the underlying storage infrastructure. Persistent volumes are specific to a cluster, rather than a pod, and thus can outlive the life of a pod.
### Container registry
The container images that Kubernetes relies on are stored in a container registry. This can be a registry you configure, or a third party registry.
### Underlying infrastructure
Where you run Kubernetes is up to you. This can be bare metal servers, virtual machines, public cloud providers, private clouds, and [hybrid cloud](/en/topics/cloud-computing/what-is-hybrid-cloud) environments. One of Kubernetes’s key advantages is it works on many different kinds of infrastructure.
Nobody said this would be easy
------------------------------
This simplified overview of Kubernetes architecture just scratches the surface. As you consider how these components communicate with each other—and with external resources and infrastructure—you can appreciate the challenges of configuring and [securing a Kubernetes cluster](/en/topics/security/container-security).
Kubernetes offers the tools to orchestrate a large and complex containerized application, but it also leaves many decisions up to you. You choose the operating system, container runtime, [continuous integration/continuous delivery (CI/CD)](/en/topics/devops/what-is-ci-cd) tooling, application services, storage, and most other components. There’s also the work of managing roles, access control, [multitenancy](/en/topics/cloud-computing/what-is-multitenancy), and secure default settings. Additionally, you can choose to run Kubernetes on your own or work with a vendor who can provide a supported version.
This freedom of choice is part of the flexible nature of Kubernetes. While it can be complex to implement, Kubernetes gives you tremendous power to run containerized applications on your own terms, and to react to changes in your organization with agility.
#### Build cloud-native applications with Kubernetes
Watch this webinar series to get expert perspectives to help you establish the data platform on enterprise Kubernetes you need to build, run, deploy, and modernize applications.
[Watch the web series on demand](https://www.brighttalk.com/summit/4689-enhance-enterprise-kubernetes-with-a-data-platform/?utm_source=Red-Hat&%3Butm_medium=web&%3Butm_campaign=RH-ISV-DTA-PLAT-2020)
Why choose Red Hat OpenShift for Kubernetes?
--------------------------------------------
This video can't play due to privacy settings
To change your settings, select the "Cookie Preferences" link in the footer and opt in to "Advertising Cookies or try disabling adblockers."
Red Hat is a leader and active builder of [open source container technology](/en/topics/containers/why-choose-red-hat-containers), including Kubernetes, and creates essential tools for [securing](/en/topics/security/container-security), simplifying, and automatically updating your container infrastructure.
[Red Hat® OpenShift®](/en/technologies/cloud-computing/openshift) is an enterprise-grade Kubernetes distribution. With Red Hat OpenShift, teams gain a single, integrated platform for [DevOps](/en/topics/devops). Red Hat OpenShift offers developers their choice of languages, frameworks, [middleware](/en/topics/middleware/what-is-middleware), and databases, along with build and deploy [automation](/en/topics/automation/why-choose-red-hat-for-automation) through CI/CD to supercharge productivity. Also available is a data and storage services platform engineered for containers, [Red Hat OpenShift Data Foundation](/en/technologies/cloud-computing/openshift-data-foundation).
[Learn more](/en/technologies/cloud-computing/openshift "product | red hat openshift")
Resource
Red Hat named a Leader in 2025 Gartner® Magic Quadrant™ for Container Management
--------------------------------------------------------------------------------
Read the 2025 Gartner® Magic Quadrant™ for Container Management to learn why Red Hat OpenShift has been named a “Leader” for the 3rd year in a row.
[Read the report](/en/engage/gartner-magic-quadrant-container-management-analyst-report "Red Hat named a Leader in 2025 Gartner® Magic Quadrant™ for Container Management")
Recommended for you
Red Hat OpenShift Development I: Introduction to Containers with Podman
-----------------------------------------------------------------------
A developer introduction to building and managing containers with Podman for deploying applications on Red Hat OpenShift.
[View course](https://www.redhat.com/en/services/training/do188-red-hat-open-shift-development-introduction-containers-with-podman?percmp=RHCTG0250000455236)
Keep reading
------------
### Containers vs. VMs: Similarities, differences, and combined approaches
Containers and virtual machines (VMs) are different approaches to packaging and isolating computing components. Here's how both approaches can work together.
[Read the article](/en/topics/containers/containers-vs-vms "article | containers vs vms")
### What is a Linux container?
Find out more about Linux containers, which are a set of 1 or more processes that are isolated from the rest of the system.
[Read the article](/en/topics/containers/whats-a-linux-container "article | what is a linux container?")
### What is container orchestration?
Container orchestration automates the deployment, management, scaling, and networking of containers.
[Read the article](/en/topics/containers/what-is-container-orchestration "article | what is container orchestration?")
Containers resources
--------------------
### Related content
* Case study
  [Zurich boosts agility and innovation with Red Hat Cloud Services](/en/resources/zurich-insurance-case-study)
* Case study
  [RTLZWEI hones competitive edge with Red Hat OpenShift AI](/en/resources/rtlzwei-case-study)
* Blog post
  [Ford's keyless strategy for managing 200+ Red Hat OpenShift clusters](/en/blog/fords-keyless-strategy-managing-200-red-hat-openshift-clusters)
* Blog post
  [F5 BIG-IP Virtual Edition is now validated for Red Hat OpenShift Virtualization](/en/blog/f5-big-ip-virtual-edition-now-validated-red-hat-openshift-virtualization)
### Related articles
* [What is CaaS?](/en/topics/cloud-computing/what-is-caas)
* [What is Podman Desktop?](/en/topics/containers/what-is-podman-desktop)
* [What is Podman?](/en/topics/containers/what-is-podman)
* [Containers vs. VMs: Similarities, differences, and combined approaches](/en/topics/containers/containers-vs-vms)
* [Edge computing with Red Hat OpenShift](/en/technologies/cloud-computing/openshift/edge-computing)
* [What is a Linux container?](/en/topics/containers/whats-a-linux-container)
* [What is container orchestration?](/en/topics/containers/what-is-container-orchestration)
* [Stateful vs stateless applications](/en/topics/cloud-native-apps/stateful-vs-stateless)
* [What is Kubernetes?](/en/topics/containers/what-is-kubernetes)
* [Red Hat OpenShift on VMware](/en/technologies/cloud-computing/openshift/vmware)
* [What is KubeVirt?](/en/topics/virtualization/what-is-kubevirt)
* [Why use Red Hat Ansible Automation Platform with Red Hat OpenShift?](/en/technologies/cloud-computing/openshift/ansible-on-openshift)
* [What are hosted control planes?](/en/topics/containers/what-are-hosted-control-planes)
* [What is the Kubernetes Java client?](/en/topics/cloud-computing/what-is-kubernetes-java-client)
* [What is kubernetes security?](/en/topics/containers/kubernetes-security)
* [Red Hat OpenShift for developers](/en/technologies/cloud-computing/openshift/developers)
* [How Kubernetes can help AI/ML](/en/topics/cloud-computing/how-kubernetes-can-help-ai)
* [What is Kubeflow?](/en/topics/cloud-computing/what-is-kubeflow)
* [What are microservices?](/en/topics/microservices/what-are-microservices)
* [OpenShift vs. OpenStack: What are the differences?](/en/technologies/cloud-computing/openshift/openshift-vs-openstack)
* [What is container security?](/en/topics/security/container-security)
* [What are sandboxed containers](/en/topics/containers/sandboxed-containers)
* [What is Buildah?](/en/topics/containers/what-is-buildah)
* [Kubernetes vs OpenStack](/en/topics/openstack/kubernetes-vs-openstack)
* [What are validated patterns?](/en/topics/cloud-computing/what-are-validated-patterns)
* [Kubernetes on AWS: Self-Managed vs. Managed Applications Platforms](/en/topics/containers/kubernetes-on-aws)
* [What is an image builder?](/en/topics/linux/what-is-an-image-builder)
* [Red Hat OpenShift vs. OKD](/en/topics/containers/red-hat-openshift-okd)
* [Red Hat OpenShift vs. Kubernetes: What's the difference?](/en/technologies/cloud-computing/openshift/red-hat-openshift-kubernetes)
* [Spring on Kubernetes with Red Hat OpenShift](/en/technologies/cloud-computing/openshift/spring)
* [What is high availability and disaster recovery for containers?](/en/topics/containers/high-availability-containers)
* [Why run Apache Kafka on Kubernetes?](/en/topics/integration/why-run-apache-kafka-on-kubernetes)
* [What is a golden image?](/en/topics/linux/what-is-a-golden-image)
* [What are Red Hat OpenShift cloud services?](/en/technologies/cloud-computing/openshift/what-are-red-hat-openshift-cloud-services)
* [VNF and CNF, what’s the difference?](/en/topics/cloud-native-apps/vnf-and-cnf-whats-the-difference)
* [What is a container registry?](/en/topics/cloud-native-apps/what-is-a-container-registry)
* [What is Skopeo?](/en/topics/containers/what-is-skopeo)
* [What are Red Hat OpenShift Operators?](/en/technologies/cloud-computing/openshift/what-are-openshift-operators)
* [Using Helm with Red Hat OpenShift](/en/technologies/cloud-computing/openshift/helm)
* [Kubernetes security best practices](/en/topics/containers/kubernetes-security-best-practices)
* [Orchestrating Windows containers on Red Hat OpenShift](/en/technologies/cloud-computing/openshift/windows-containers-on-red-hat-openshift)
* [What is a Kubernetes operator?](/en/topics/containers/what-is-a-kubernetes-operator)
* [High performance computing with Red Hat OpenShift](/en/technologies/cloud-computing/openshift/high-performance-computing)
* [Advantages of Kubernetes-native security](/en/topics/containers/advantages-of-kubernetes-native-security)
* [What is KubeLinter?](/en/topics/containers/what-is-kubelinter)
* [Intro to Kubernetes security](/en/topics/containers/intro-kubernetes-security)
* [Container and Kubernetes compliance considerations](/en/topics/containers/compliance)
* [How microservices support IT integration in healthcare](/en/topics/microservices/microservices-in-healthcare)
* [Kubernetes cluster management](/en/technologies/cloud-computing/openshift/kubernetes-cluster-management)
* [Red Hat OpenShift on IBM IT infrastructure](/en/technologies/cloud-computing/openshift/what-is-red-hat-openshift-on-IBM-IT-infrastructure)
* [Red Hat OpenShift for business leaders](/en/technologies/cloud-computing/openshift/business-leaders)
* [How to deploy Red Hat OpenShift](/en/technologies/cloud-computing/openshift/deploy-red-hat-openshift)
* [Cost management for Kubernetes on Red Hat OpenShift](/en/technologies/cloud-computing/openshift/cost-management)
* [Kubernetes-native Java development with Quarkus](/en/technologies/cloud-computing/openshift/quarkus)
* [What is enterprise Kubernetes?](/en/topics/containers/what-is-enterprise-kubernetes)
* [What makes Red Hat OpenShift the right choice for IT operations?](/en/technologies/cloud-computing/openshift/it-operations)
* [What makes Red Hat OpenShift the right choice for SAP?](/en/technologies/cloud-computing/openshift/sap)
* [Why choose Red Hat for Kubernetes?](/en/topics/containers/why-choose-red-hat-kubernetes)
* [What is Kubernetes role-based access control (RBAC)](/en/topics/containers/what-kubernetes-role-based-access-control-rbac)
* [What is containerization?](/en/topics/cloud-native-apps/what-is-containerization)
* [What was CoreOS and CoreOS container Linux](/en/technologies/cloud-computing/openshift/what-was-coreos)
* [Learning Kubernetes basics](/en/topics/containers/learning-kubernetes-tutorial)
* [What is service-oriented architecture?](/en/topics/cloud-native-apps/what-is-service-oriented-architecture)
* [What is the Kubernetes API?](/en/topics/containers/what-is-the-kubernetes-api)
* [What is Kubernetes cluster management?](/en/topics/containers/what-is-kubernetes-cluster-management)
* [What is a Kubernetes deployment?](/en/topics/containers/what-is-kubernetes-deployment)
* [Why choose the Red Hat build of Quarkus?](/en/topics/cloud-native-apps/why-choose-red-hat-quarkus)
* [Introduction to Kubernetes patterns](/en/topics/cloud-native-apps/introduction-to-kubernetes-patterns)
* [What is a Kubernetes cluster?](/en/topics/containers/what-is-a-kubernetes-cluster)
* [What is Quarkus?](/en/topics/cloud-native-apps/what-is-quarkus)
* [What is Jaeger?](/en/topics/microservices/what-is-jaeger)
* [What is Knative?](/en/topics/microservices/what-is-knative)
* [What is etcd?](/en/topics/containers/what-is-etcd)
* [What is container-native virtualization?](/en/topics/containers/what-is-container-native-virtualization)
* [What is Clair?](/en/topics/containers/what-is-clair)
* [Why choose Red Hat for microservices?](/en/topics/microservices/why-choose-red-hat-microservices)
* [Why choose Red Hat for containers?](/en/topics/containers/why-choose-red-hat-containers)
* [What is Docker?](/en/topics/containers/what-is-docker)
* [What is a Kubernetes pod?](/en/topics/containers/what-is-kubernetes-pod)
[More about this topic](/en/topics/containers "More about this topic")