Kubernetes is a powerful container orchestration platform that enables easy deployment, management, and scaling of applications. At the heart of Kubernetes are its resources—the fundamental building blocks that define and manage the behavior of your applications, networking, and storage.
Why are they important?
- Foundation of Kubernetes operations: Every Kubernetes action involves resources, making them essential for mastering the platform.
- Customizable and extensible: These resources can be tailored to meet your application's unique requirements, ensuring flexibility and scalability.
- Interconnected system: Understanding how these resources interact helps you design robust and reliable systems in Kubernetes.
This article provides a clear overview of each resource, including:
✅ Resource Name
✅ Short Names
✅ API Version
✅ Namespaced
✅ A brief explanation of what each resource does!
Find an easy-to-read document on my LinkedIn post about "Comprehensive Guide to 50+ Kubernetes Resources".
1. APIServices
Name: APIService
API Version: apiregistration.k8s.io/v1
Name-spaced: No (Cluster-scoped)
Explanation: Enables custom resource definitions to be served over HTTPS by registering them with the API server.
2. CertificateSigningRequests
Name: CertificateSigningRequest (csr)
API Version: certificates.k8s.io/v1
Name-spaced: Yes
Explanation: Requests a signed certificate from a Certificate Authority within the Kubernetes cluster.
3. ClusterRoleBindings
Name: ClusterRoleBinding
API Version: rbac.authorization.k8s.io/v1
Name-spaced: No (Cluster-scoped)
Explanation: Grants permissions to users, service accounts, or other groups at the cluster level by binding them to a ClusterRole.
4. ClusterRoles
Name: ClusterRole
API Version: rbac.authorization.k8s.io/v1
Name-spaced: No (Cluster-scoped)
Explanation: Defines a set of permissions that can be granted to users or groups at the cluster level.
5. ComponentStatuses
Name: ComponentStatus (cs)
API Version: core/v1
Name-spaced: No (Cluster-scoped)
Explanation: Provides information about the health and status of core Kubernetes components.
6. ConfigMaps
Name: ConfigMap (cm)
API Version: v1
Name-spaced: Yes
Explanation: Stores non-sensitive key-value data that can be mounted as environment variables or volumes in containers.
7. ControllerRevisions
Name: ControllerRevision
API Version: apps/v1
Name-spaced: Yes
Explanation: Stores past configurations of Deployments and ReplicaSets, allowing for easy rollback to previous versions.
8. CronJobs
Name: CronJob (cj)
API Version: batch/v1
Name-spaced: Yes
Explanation: Schedules jobs to run periodically on a specified schedule (e.g., daily, weekly).
9. CSIDrivers
Name: CSIDriver
API Version: storage.k8s.io/v1
Name-spaced: No (Cluster-scoped)
Explanation: Represents a Container Storage Interface (CSI) driver, which allows for the integration of third-party storage systems with Kubernetes.
10. CSINodes
Name: CSINode
API Version: storage.k8s.io/v1
Name-spaced: No (Cluster-scoped)
Explanation: Represents the registration of a CSI driver on a specific node within the cluster.
11. CSIStoreageCapacities
Name: CSIStoreageCapacity
API Version: storage.k8s.io/v1
Name-spaced: No (Cluster-scoped)
Explanation: Reports the available capacity of a CSI volume.
12. CustomResourceDefinitions
Name: CustomResourceDefinition (crd, crds)
API Version: apiextensions.k8s.io/v1
Name-spaced: No (Cluster-scoped)
Explanation: Defines custom resources that extend the Kubernetes API, allowing users to create and manage their own application-specific objects.
13. DaemonSets
Name: DaemonSet (ds)
API Version: apps/v1
Name-spaced: Yes
Explanation: Ensures that a single instance of a pod is running on every node in the cluster.
14. Deployments
Name: Deployment (deploy)
API Version: apps/v1
Name-spaced: Yes
Explanation: Manages the deployment and updates of pods and ReplicaSets. Provides features like rolling updates, rollback, and health checks.
15. Endpoints
Name: Endpoints (ep)
API Version: v1
Name-spaced: Yes
Explanation: Represents the current endpoints (IP addresses and ports) for a Service.
16. Endpointslices
Name: Endpointslice
API Version: discovery.k8s.io/v1
Name-spaced: Yes
Explanation: Divides large sets of endpoints into smaller subsets for efficient service discovery in Kubernetes. Improves scalability and performance for services with many pods.
17. Events
Name: Event (ev)
API Version: v1
Name-spaced: Yes
Explanation: Records events that occur within the Kubernetes cluster, such as pod creation, deletion, and scheduling failures.
18. FlowSchemas
Name: FlowSchema
API Version: flowcontrol.apiserver.k8s.io/v1beta2
Name-spaced: No (Cluster-scoped)
Explanation: Defines a set of rules for limiting the rate of API requests to the Kubernetes API server.
19. HorizontalPodAutoscalers
Name: HorizontalPodAutoscaler (HPA)
API Version: autoscaling/v2beta2
Name-spaced: Yes
Explanation: Automatically scales the number of pods in a Deployment or ReplicaSet based on observed CPU utilization or other metrics.
20. IngressClasses
Name: IngressClass
API Version: networking.k8s.io/v1
Name-spaced: No (Cluster-scoped)
Explanation: Defines a set of configuration parameters that can be used by Ingress controllers to configure their behavior.
21. Ingresses
Name: Ingress (ing)
API Version: networking.k8s.io/v1
Name-spaced: Yes
Explanation: Exposes HTTP and HTTPS routes from outside the cluster to services within the cluster.
22. Jobs
Name: Job
API Version: batch/v1
Name-spaced: Yes
Explanation: Creates one or more pods and ensures that a specified number of them successfully completed. Often used for one-time tasks or batch
processing.
23. LimitRanges
Name: LimitRange (limits)
API Version: v1
Name-spaced: Yes
Explanation: Defines minimum and maximum resource limits for containers that are created in a namespace.
24. LocalSubjectAccessReview
Name: LocalSubjectAccessReview
API Version: authorization.k8s.io/v1
Name-spaced: Yes
Explanation: Allows you to determine if a user or group has specific permissions within the context of the pod where the request originates.
25. MutatingWebhookConfigurations
Name: MutatingWebhookConfiguration
API Version: admissionregistration.k8s.io/v1
Name-spaced: No (Cluster-scoped)
Explanation: Defines a set of webhooks that are called to modify objects before they are created or modified in the Kubernetes API server.
26. Namespaces
Name: Namespace (ns)
API Version: v1
Name-spaced: No (Cluster-scoped)
Explanation: Provides a way to divide a single cluster into multiple virtual clusters, isolating resources and permissions.
27. NetworkPolicies
Name: NetworkPolicy (netpol)
API Version: networking.k8s.io/v1
Name-spaced: Yes
Explanation: Controls network traffic between pods within a namespace and between pods and external entities.
28. Nodes
Name: Node (no)
API Version: v1
Name-spaced: No (Cluster-scoped)
Explanation: Represents a worker machine in the Kubernetes cluster, where pods are scheduled and executed.
29. PersistentVolumeClaims
Name: PersistentVolumeClaim (PVC)
Short Names: pvc
API Version: v1
Name-spaced: Yes
Explanation: Represents a request for persistent storage by a user. PVCs describe the desired characteristics of the storage (e.g., size, access
modes).
30. PersistentVolumes
Name: PersistentVolume (PV)
API Version: v1
Name-spaced: No (Cluster-scoped)
Explanation: Represents a piece of persistent storage in the cluster that has been provisioned by an administrator or dynamically provisioned using a storage class.
31. PodDisruptionBudgets
Name: PodDisruptionBudget (PDB)
API Version: policy/v1
Name-spaced: Yes
Explanation: Protects applications from disruption caused by voluntary and involuntary node evacuations (e.g., maintenance). Ensures that a minimum number of pods of a specific type are always available.
32. Pods
Name: Pod (po)
API Version: v1
Name-spaced: Yes
Explanation: The smallest and most atomic unit in Kubernetes. Represents a running container or a set of co-located containers that share resources and a common lifecycle.
33. PodTemplates
Name: PodTemplate
API Version: v1
Name-spaced: Yes
Explanation: A blueprint for creating pods. Used within higher-level objects like Deployments, ReplicaSets, and Jobs.
34. PriorityClasses
Name: PriorityClass (pc)
API Version: scheduling.k8s.io/v1
Name-spaced: No (Cluster-scoped)
Explanation: Defines a priority level for pods, influencing their scheduling decisions. Higher priority pods are more likely to be scheduled on available nodes.
35. PriorityLevelConfigurations
Name: PriorityLevelConfiguration
API Version: flowcontrol.apiserver.k8s.io/v1
Name-spaced: No (Cluster-scoped)
Explanation: Configures the global priority and preemption behavior of pods.
36. Profiles
Name: Profile
API Version: autoscaling.k8s.io/v1
Name-spaced: Yes
Explanation: Defines a set of resource requests and limits that can be applied to pods within a namespace. Used by horizontal pod autoscalers to determine scaling boundaries.
37. ReplicaSets
Name: ReplicaSet (rs)
API Version: apps/v1
Name-spaced: Yes
Explanation: Ensures that a specified number of pod replicas are running at any given time. Often used as a building block for higher-level controllers like Deployments.
38. ReplicationControllers
Name: ReplicationController (rc)
API Version: v1
Name-spaced: Yes
Explanation: An older mechanism for ensuring a fixed number of pod replicas. Largely superseded by ReplicaSets.
39. ResourceQuotas
Name: ResourceQuota (quota)
API Version: v1
Name-spaced: Yes
Explanation: Limits the amount of resources (CPU, memory, storage) that can be consumed by users or teams within a namespace.
40. RoleBindings
Name: RoleBinding
API Version: rbac.authorization.k8s.io/v1
Name-spaced: Yes
Explanation: Grants permissions to users, service accounts, or other groups by binding them to a specific Role.
41. Roles
Name: Role
API Version: rbac.authorization.k8s.io/v1
Name-spaced: Yes
Explanation: Defines a set of permissions that can be granted to users or groups within a namespace.
42. RuntimeClasses
Name: RuntimeClass
API Version: node.k8s.io/v1
Name-spaced: No (Cluster-scoped)
Explanation: Specifies the runtime environment (e.g., container runtime, security settings) for containers within a pod.
43. Secrets
Name: Secret
API Version: v1
Name-spaced: Yes
Explanation: Stores sensitive information securely within the Kubernetes cluster, such as passwords, API keys, and certificates.
44. SelfSubjectAccessReview
Name: SelfSubjectAccessReview
API Version: authorization.k8s.io/v1
Name-spaced: Yes
Explanation: Allows a user or service account to check whether they have specific permissions within the current namespace.
45. SelfSubjectRulesReview
Name: SelfSubjectRulesReview
API Version: authorization.k8s.io/v1
Name-spaced: Yes
Explanation: Allows a user or service account to check the set of permissions they have within the current namespace.
46. ServiceAccounts
Name: ServiceAccount (sa)
API Version: v1
Name-spaced: Yes
Explanation: Represents a service account within a namespace, which can be used to authenticate and authorize access to Kubernetes resources.
47. Services
Name: Service (svc)
API Version: v1
Name-spaced: Yes
Explanation: Defines a logical set of Pods and a policy for accessing them. Enables services to be discovered and accessed by other services within or outside the cluster.
48. StatefulSets
Name: StatefulSet (sts)
API Version: apps/v1
Name-spaced: Yes
Explanation: Manages the deployment and scaling of stateful applications that require stable, persistent identifiers for each pod.
49. StorageClasses
Name: StorageClass (sc)
API Version: storage.k8s.io/v1
Name-spaced: No (Cluster-scoped)
Explanation: Provides a way for administrators to define and manage different types of storage (e.g., cloud storage, local storage) that can be used by PersistentVolumes.
50. SubjectAccessReview
Name: SubjectAccessReview
API Version: authorization.k8s.io/v1
Name-spaced: Yes
Explanation: Allows a user to check whether a particular user or group has specific permissions within the current namespace.
51. TokenReview
Name: TokenReview
API Version: authentication.k8s.io/v1
Name-spaced: No (Cluster-scoped)
Explanation: Validates an authentication token and returns information about the user associated with the token.
52. ValidationWebhookConfigurations
Name: ValidationWebhookConfiguration
API Version: admissionregistration.k8s.io/v1
Name-spaced: No (Cluster-scoped)
Explanation: Defines a set of webhooks that are called to validate objects before they are created or modified in the Kubernetes API server.
53. VolumeAttachments
Name: VolumeAttachment
API Version: storage.k8s.io/v1
Name-spaced: No (Cluster-scoped)
Explanation: Represents the binding of a
PersistentVolume to a node. This object is created automatically by the Kubernetes system.
To discover the full list of resources available in your Kubernetes cluster, use the kubectl api-resources
command.
Remember that production clusters often include add-on components (e.g., Istio, Traefik, Prometheus, Grafana, Fluentd, Falco, etc.) that extend the core set of resources listed here.
Find an easy-to-read document on my LinkedIn post about "Comprehensive Guide to 50+ Kubernetes Resources".
I post about DevOps, cloud-native, and compassionate leadership. You can reach out to me on LinkedIn.
Top comments (0)