Skip to content

Objects

1. Workload Objects

Workload objects define the applications and jobs running in the cluster.

  • Pod: The smallest deployable unit in Kubernetes. A pod runs one or more containers.
  • ReplicaSet: Ensures a specified number of pod replicas are running at any given time.
  • Deployment: Manages ReplicaSets and provides declarative updates for pods and ReplicaSets.
  • StatefulSet: Manages stateful applications with persistent storage and unique pod identities.
  • DaemonSet: Ensures that a copy of a pod runs on all or specific nodes in the cluster.
  • Job: Creates pods to perform a specific task and ensures they complete successfully.
  • CronJob: Manages jobs that run on a schedule, similar to a cron task.

2. Service and Networking Objects

These objects define how applications communicate internally and externally.

  • Service**: Exposes an application running on a set of pods as a network service.
  • Ingress**: Manages external HTTP and HTTPS access to services within the cluster.
  • EndpointSlice: Tracks IP addresses and ports of services, supporting scalability.
  • NetworkPolicy: Defines rules for controlling network traffic to/from pods.

3. Configuration Objects

Configuration objects store and manage configuration data for applications.

  • ConfigMap: Stores non-sensitive configuration data as key-value pairs.
  • Secret: Stores sensitive information like passwords, tokens, and keys in an encrypted format.
  • Volume: Provides storage to pods, supporting different storage backends.
  • PersistentVolume (PV): Represents a storage resource in the cluster.
  • PersistentVolumeClaim (PVC): Requests storage resources from PVs.

4. Cluster Management Objects

These objects control the behavior and configuration of the Kubernetes cluster.

  • Namespace: Provides logical isolation of resources within a cluster.
  • Node: Represents a worker machine in the cluster.
  • HorizontalPodAutoscaler (HPA): Automatically scales the number of pods in a deployment or replica set based on resource usage.
  • VerticalPodAutoscaler (VPA): Adjusts resource requests and limits for pods.
  • Role and RoleBinding: Define permissions within a namespace.
  • ClusterRole and ClusterRoleBinding: Define permissions across the entire cluster.

5. Observability and Debugging Objects

These objects facilitate monitoring, logging, and troubleshooting.

  • Event: Records changes or errors in the cluster.
  • PodDisruptionBudget (PDB): Limits the number of pods that can be down during maintenance.
  • Probe (Readiness, Liveness, Startup): Defines health checks for containers.

Custom Resource Definitions (CRDs) - CRDs: Extend Kubernetes by defining your own objects. For example, in Argo Workflows, objects like Workflow and WorkflowTemplate are CRDs.