Free tech learning for everyone, from basics to pro

Kubernetes SecurityCloud SecurityBeginner

Kubernetes architecture: control plane, nodes, pods and services

In short: Kubernetes runs containers across a cluster by constantly matching the actual state to a desired state you declare. The control plane (API server, etcd, scheduler and controllers) decides; worker nodes run pods. Almost every security control passes through the API server, which makes it the centre of cluster security.

What Kubernetes does

Kubernetes (often written K8s) is an orchestrator: you describe what you want, such as "three copies of this web app, reachable on port 443", and it keeps the cluster in that state, restarting failed containers and moving work when nodes fail. You describe the desired state in YAML manifests and send them to the cluster with kubectl or a deployment tool.

Managed services such as Amazon EKS, Azure AKS and Google GKE run the control plane for you, but you are still responsible for workloads, access and most configuration under the shared responsibility model.

Control plane and nodes

Control plane and worker nodesControl planekube-apiserveretcdkube-schedulercontroller-managerWorker nodekubeletcontainer runtimekube-proxy or CNIpods
Figure 1. The control plane stores and decides the desired state; worker nodes run the pods.
ComponentRoleSecurity note
kube-apiserverFront door; every change goes through itRestrict network access; authenticate and authorise every call
etcdKey-value store holding all cluster state, including SecretsEncrypt, restrict to API server only, back up securely
kube-schedulerChooses which node runs each podCan be steered with node selectors and taints for isolation
controller-managerRuns loops that reconcile desired and actual stateUses powerful credentials; protect its configuration
kubeletAgent on each node that starts podsDisable anonymous access; its API must not be open
Container runtimecontainerd or CRI-O runs the containersKeep patched; apply runtime restrictions

Workload objects

  • Pod: the smallest unit, one or more containers sharing a network address and volumes.
  • Deployment: keeps a set number of identical pods running and handles rolling updates.
  • Service: a stable virtual IP and DNS name in front of a changing set of pods. Types include ClusterIP (internal), NodePort and LoadBalancer.
  • Ingress or Gateway: routes external HTTP(S) traffic to services, often terminating TLS.
  • Namespace: a logical grouping for teams or apps; RBAC, quotas and policies are often scoped by namespace.
  • ConfigMap and Secret: configuration and sensitive values supplied to pods.
kubectl get nodes -o wide
kubectl get pods -A
kubectl describe deployment web -n shop
kubectl get svc -n shop

Where security fits

Where security fitsAPI serverevery requestAuthenticationcerts, OIDCRBACwho can do whatAdmissionpolicy checksetcdencrypt, restrictNetwork policypod trafficAudit logsrecord actions
Figure 2. Nearly every Kubernetes security control sits around the API server or the data it stores.

Every request to the API server passes three gates in order: authentication (who are you, using certificates, tokens or OIDC), authorisation (usually RBAC) and admission control (policy checks that can reject or modify objects, such as Pod Security admission). Requests that pass are written to etcd and recorded in audit logs.

Beyond the API server, you secure pod-to-pod traffic with network policies, protect stored secrets in etcd and harden nodes. Note that namespaces are an organisational boundary, not a strong security boundary on their own: pods in different namespaces can talk freely unless network policies say otherwise.

Tip: a good first lab is minikube on your own machine. Explore each component with kubectl get pods -n kube-system.

Practice

Which component stores all cluster state, and why is it sensitive?
etcd. It holds every object, including Secrets, so access to etcd is effectively full control of the cluster.
What are the three checks an API request passes before it is stored?
Authentication, authorisation and admission control.
Are namespaces enough to isolate two teams?
Not on their own. You also need RBAC scoped per namespace, network policies, resource quotas and pod security controls.

Key takeaways

  • Kubernetes reconciles actual state to the desired state you declare.
  • The control plane is the API server, etcd, scheduler and controllers.
  • Nodes run pods using the kubelet and a container runtime.
  • Every API request is authenticated, authorised and admission-checked.
  • Namespaces organise; network policies and RBAC isolate.
Tracks your learning on this device only. See your progress on the learning paths.

About the author

Mohamed Fayas

Founder of FM TecHub. CCNA certified, with a BTEC HND in Network Engineering, and BEng (Hons) in Computer Networking and Cloud Security. He writes practical, plain-English guides on networking, security and cloud.

More about the author

Original content written by Mohamed Fayas for FM TecHub. © 2026 FM TecHub. You're welcome to share a link to this page; please don't copy the text elsewhere without permission.

Stay up to date by email

New notes, tools and security news from FM TecHub, explained simply. Free.

We only use your email to send these updates. See our privacy policy.