The 53 Kubernetes Objects | Quick Sip

The 53 Kubernetes Objects | Quick Sip

ยท

3 min read

If you have been using Kubernetes, or studying about it or know at least something about it, you must have encountered Kubernetes Objects some or the other way. FWIMC, Kubernetes objects are those basic building blocks that empower Kubernetes to manage and orchestrate containerized applications.

Still wondering what are Kubernetes Objects? Ever come across terms like Ptods, Nodes, or Deployments? Well if, then these ARE Kubernetes Objects!

This blog speaks about some interesting findings about how many such kubernetes objects exists, and maybe just an easy read for a few, offering a quick and informative sip of Kubernetes "general knowledge".

So, Did you know!? ๐ŸŒŸ

There exists approximately 53 distinct Kinds of Kubernetes Objects officially documented in the Kubernetes API Reference.

It will make more sense to you, checkout ๐Ÿ‘‡๐Ÿ‘‡๐Ÿ‘‡

Core Objects

  1. Pod

  2. Deployment

  3. ReplicaSet

  4. Service

  5. Node

  6. DaemonSet

  7. APIGroup

  8. APIService

  9. AuthorizationPolicy

  10. Binding

  11. ClusterRole

  12. ClusterRoleBinding

  13. ComponentStatus

  14. ConfigMap

  15. ControlledResource

  16. CronJob

  17. Endpoint

  18. Event

  19. HorizontalPodAutoscaler

  20. LimitRange

  21. Namespace

  22. NodePool

  23. PersistentVolume

  24. PersistentVolumeClaim

  25. PodDisruptionBudget

  26. PodPreset

  27. PriorityClass

  28. ResourceQuota

  29. Secret

  30. ServiceAccount

  31. StatefulSet

  32. TokenReview

These were Core Kubernetes Objects!

Most "core" objects will typically have an apiVersion of "v1". For Example:

apiVersion: v1
kind: Pod
metadata:
  name: example-pod
spec:
   ...
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding

Some newer core objects may have different versions. For example:

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: example-hpa
spec:
   ...

These versions indicate they're still under development or haven't reached stable maturity yet.

Extensions Objects

  1. CustomResourceDefinition

  2. MutatingWebhookConfiguration

  3. ValidatingWebhookConfiguration

Extension objects have their own API groups & versions, separate from the core API

Example: apiextensions.k8s.io/v1

apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: examplecrds
spec:
   ...

Networking Objects

  1. NetworkPolicy

  2. Ingress

  3. Egress

  4. ClusterIP

Networking objects also have their own API groups & versions.

For example: networking.k8s.io/v1

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: example-network-policy
spec:
   ...

Storage Objects

  1. StorageClass

  2. VolumeAttachment

Storage objects also have their own API groups & vesrions.

For Example: storage.k8s.io/v1

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: example-storage-class
provisioner: kubernetes.io/aws-ebs
parameters:
  type: gp2

Other Objects

  1. PriorityLevelConfiguration

  2. RuntimeClass

  3. CSIStorageCapacity

  4. CSIStorageNode

  5. FlowSchema

  6. NetworkAttachmentDefinition

  7. PodSecurityPolicy

  8. Scope

These objects also have their own API groups & vesrions.

For Example, scheduling.k8s.io/v1beta1

apiVersion: scheduling.k8s.io/v1beta1
kind: PriorityLevelConfiguration
metadata:
  name: example-priority-config
spec:
   ...

This list may not be exhaustive and OBViously not reflecting future additions to the Kubernetes API.

Here are some helpful resources:

ย