General output of a describe command
Name: nginx
Namespace: default
CreationTimestamp: Wed, 09 Jul 2025 09:26:49 +0200
Labels: app=nginx
Annotations: deployment.kubernetes.io/revision: 1
Selector: app=nginx
Replicas: 1 desired | 1 updated | 1 total | 1 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: app=nginx
Containers:
nginx:
Image: nginx
Port: <none>
Host Port: <none>
Environment: <none>
Mounts: <none>
Volumes: <none>
Node-Selectors: <none>
Tolerations: <none>
Conditions:
Type Status Reason
---- ------ ------
Available True MinimumReplicasAvailable
Progressing True NewReplicaSetAvailable
OldReplicaSets: <none>
NewReplicaSet: nginx-5869d7778c (1/1 replicas created)
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ScalingReplicaSet 4m7s deployment-controller Scaled up replica set nginx-5869d7778c from 0 to 1
🔹 Basic Metadata
Field | Meaning | Why It’s Needed | K8s Context |
---|---|---|---|
Name | nginx | Identifier for the deployment | Used by kubectl , API, and internal references |
Namespace | default | Logical grouping of resources | Separates resources into isolated environments |
CreationTimestamp | e.g. Wed, 09 Jul 2025 09:26:49 +0200 | When this deployment was created | Useful for auditing and lifecycle tracking |
Labels | app=nginx | Metadata key-value used for selection | Used by services/selectors to match pods |
Annotations | deployment.kubernetes.io/revision: 1 | Extra non-identifying metadata | Tracks deployment rollouts, history for rollback |
🔹 Selector
Field | Meaning | Why It’s Needed | K8s Context |
---|---|---|---|
Selector | app=nginx | Matches pods with the same label | Deployment uses this to manage the right pods |
Important: Without this selector, Kubernetes wouldn’t know which pods are part of the deployment.
🔹 Replica Summary
Field | Meaning | Why It’s Needed | K8s Context |
---|---|---|---|
1 desired | Target number of pod replicas | Ensures app has enough redundancy or capacity | |
1 updated | Pods running latest configuration | Confirms all pods are on current version | |
1 total | Total number of pods managed | Useful for monitoring | |
1 available | Ready & healthy pods | Only these serve traffic | |
0 unavailable | Pods not ready or failed | Zero means healthy rollout |
This helps Kubernetes maintain high availability through self-healing and replica control.
🔹 Deployment Strategy
Field | Meaning | Why It’s Needed | K8s Context |
---|---|---|---|
StrategyType | RollingUpdate | Updates pods gradually | Prevents downtime during upgrades |
MinReadySeconds | 0 | Wait time before marking a pod “ready” | Delays traffic routing until pod is fully warm |
RollingUpdateStrategy | 25% maxUnavailable , 25% maxSurge | Controls batch size of update | Ensures partial updates with fallback ability |
This provides graceful rollout with rollback support if needed.
🔹 Pod Template
Field | Meaning | Why It’s Needed | K8s Context |
---|---|---|---|
Labels | app=nginx | Inherited by pods | Ensures service/deployment mapping |
Container | nginx | Container name | For container-specific logging and mgmt |
Image | nginx | Docker image | Source of the application code |
Port/Host Port | Not defined here | Use services to expose ports | |
Environment/Mounts | No env variables or volumes | Used for config, secrets, persistence |
This template is cloned for each pod — defines how each pod is built.
🔹 Node Scheduling
Field | Meaning | Why It’s Needed | K8s Context |
---|---|---|---|
Node-Selectors | No restrictions | Can schedule on any node | |
Tolerations | No taints tolerated | Useful for scheduling on tainted nodes (e.g. GPU, spot instances) |
This controls where pods can be scheduled across the cluster.
🔹 Conditions (Deployment Status)
Field | Meaning | Why It’s Needed | K8s Context |
---|---|---|---|
Available: True | Min replicas ready | Deployment is serving traffic | |
Progressing: True | New ReplicaSet ready | Indicates healthy rollout |
🛡 These fields are checked by Kubernetes to decide if rollback is needed.
🔹 Replica Sets
Field | Meaning | Why It’s Needed | K8s Context |
---|---|---|---|
OldReplicaSets | No previous rollout | Older versions exist here if rollout occurs | |
NewReplicaSet | nginx-5869d7778c (1/1) | New pods from current template | Controlled by Deployment |
ReplicaSets are managed by Deployment to ensure desired number of pods are running.
🔹 Events
Field | Meaning | Why It’s Needed | K8s Context |
---|---|---|---|
Type: Normal | Normal behavior | ||
Reason: ScalingReplicaSet | Scaling action triggered | ||
Message | Scaled up replica set nginx-5869d7778c from 0 to 1 | Logs automatic pod creation |
Events are useful for debugging and audit trails.
How This Fits into Kubernetes Architecture
- Deployment: Defines desired state (e.g. image version, replicas)
- ReplicaSet: Maintains that state — ensures correct number of pods
- Pod: Runs the actual application container (
nginx
) - Service (optional): Would expose these pods to users or other services

That’s all for this post. Cheers and Peace out!!!