Skip to main content

Kubernetes Resources

In Kubernetes, resources are like building blocks used to create and manage your cluster. Each resource is an object with metadata (such as names and labels) and a desired state that defines its behavior. All objects in Kubernetes are managed by an API and stored in the etcd database.

For example, a Pod resource defines how to run a group of containers, while a Service resource manages network access to those containers. Everything you can manage with kubectl or the Kubernetes API - like workloads, storage, or configuration - is a resource, making them essential for defining and controlling your cluster's behavior.

The following command lists all the resources that can be managed in a Kubernetes cluster, including their names, short names, API versions, and whether they are namespaced:

kubectl api-resources

The most relevant resources for the KCNA exam are marked red

Resource Overview

Core Resources

  • Pod
  • Service
  • ConfigMap
  • Secret
  • Namespace
  • PersistentVolume
  • PersistentVolumeClaim
  • ServiceAccount
  • Binding
  • ComponentStatus
  • Endpoints
  • Event
  • LimitRange
  • PodTemplate
  • ReplicationController
  • ResourceQuota

Workloads

  • Deployment
  • ReplicaSet
  • DaemonSet
  • StatefulSet
  • CronJob
  • Job
  • ControllerRevision

Networking

  • Ingress
  • NetworkPolicy
  • IngressClass

RBAC (Role-Based Access Control)

  • Role
  • RoleBinding
  • ClusterRole
  • ClusterRoleBinding

Storage

  • StorageClass
  • CSIDriver
  • CSINode
  • CSIStorageCapacity
  • VolumeAttachment

Admission Control

  • MutatingWebhookConfiguration
  • ValidatingWebhookConfiguration

API Extensions

  • CustomResourceDefinition
  • APIService

Authentication and Authorization

  • TokenReview
  • LocalSubjectAccessReview
  • SelfSubjectAccessReview
  • SelfSubjectRulesReview
  • SubjectAccessReview

Autoscaling

  • HorizontalPodAutoscaler

Certificates

  • CertificateSigningRequest

Coordination

  • Lease

Discovery

  • EndpointSlice

Events

  • Event

Flow Control

  • FlowSchema
  • PriorityLevelConfiguration

Node Management

  • RuntimeClass

Policies

  • PodDisruptionBudget
  • PodSecurityPolicy

Scheduling

  • PriorityClass

Resource Details

pod-128.png In Kubernetes, a Pod is the smallest and most basic unit you work with. It can hold one or more containers that share resources like storage, networking, and computing power. Even though a Pod can have multiple containers, they always run together as a single unit on a node in the cluster.