Skip to main content
Deployments provide declarative updates for Pods and ReplicaSets. They manage the desired state of your application, handling rolling updates, rollbacks, and scaling automatically.

Key Concepts

Deployment

A controller that manages ReplicaSets and provides declarative updates to Pods.

ReplicaSet

Ensures a specified number of pod replicas are running at any time.

Rolling Update

Gradual replacement of pods with new versions while maintaining availability.

Scaling

Adjusting the number of pod replicas to match demand.

Required Permissions

ActionPermission
View deploymentsiam:project:infrastructure:kubernetes:read
Scale deploymentiam:project:infrastructure:kubernetes:write
Restart deploymentiam:project:infrastructure:kubernetes:write
Create deploymentiam:project:infrastructure:kubernetes:write
Edit deploymentiam:project:infrastructure:kubernetes:write
Delete deploymentiam:project:infrastructure:kubernetes:delete

Deployment Status Values

StatusDescription
AvailableMinimum required replicas are available and ready
ProgressingDeployment is creating, updating, or scaling pods
FailedDeployment failed to progress (ReplicaFailure condition)
UnknownDeployment status cannot be determined

Replica Metrics

MetricDescription
ReadyPods that are ready to serve traffic (ready/desired)
Up-to-datePods updated to the latest pod template spec
AvailablePods available for at least minReadySeconds
UnavailablePods that are not yet available

How to View Deployments

1

Select Cluster

Choose a cluster from the cluster dropdown.
2

Select Namespace

Choose a namespace or select “all” to view deployments across all namespaces.
3

Filter and Search

Use the search box to find deployments by name, or filter by status.

How to View Deployment Details

1

Find the Deployment

Locate the deployment in the list.
2

Click Deployment Name

Click on the deployment name to open the detail drawer.
3

Review Details

View deployment information including:
  • Replica status and pod distribution
  • Container specifications
  • Update strategy configuration
  • Labels, annotations, and selectors
  • Conditions and events

How to Scale a Deployment

1

Find the Deployment

Locate the deployment in the list.
2

Open Actions Menu

Click the actions menu (three dots) on the deployment row.
3

Click Scale

Select Scale to open the scale dialog.
4

Set Replica Count

Enter the desired number of replicas (0-100).
5

Apply

Click Scale to apply the change.
Scaling to 0 replicas stops all pods for the deployment. The application will become unavailable.

How to Restart a Deployment

Restart triggers a rolling restart of all pods without changing the deployment spec.
1

Find the Deployment

Locate the deployment in the list.
2

Open Actions Menu

Click the actions menu on the deployment row.
3

Click Restart

Select Restart from the menu.
4

Monitor

Watch the deployment status change to Progressing as pods are replaced.
Restart performs a rolling restart, replacing pods gradually to maintain availability. It adds a kubectl.kubernetes.io/restartedAt annotation to trigger the update.

How to Create a Deployment

1

Click Create Deployment

Click the Create Deployment button in the page header.
2

Write YAML

Enter the deployment manifest in YAML format. A template is provided.
3

Select Namespace

Choose the target namespace for the deployment.
4

Create

Click Create to apply the manifest.

How to Edit a Deployment

1

Open Actions Menu

Click the actions menu on the deployment row.
2

Click Edit YAML

Select Edit YAML to open the editor.
3

Modify Spec

Edit the deployment specification. Common changes:
  • Container image (triggers rolling update)
  • Resource requests/limits
  • Environment variables
  • Replica count
4

Save

Click Update to apply changes.
Changes to the pod template spec trigger a rolling update. The deployment controller gradually replaces old pods with new ones.

How to Delete a Deployment

1

Open Actions Menu

Click the actions menu on the deployment row.
2

Click Delete

Select Delete from the menu.
3

Confirm

Confirm the deletion.
Delete behavior:
  • Deletes the deployment, associated ReplicaSets, and all pods (cascade delete)
  • Pods are terminated gracefully with default grace period
Deleting a deployment removes all managed pods immediately. Ensure you have backups or can recreate the deployment if needed.

Update Strategies

Deployments support two update strategies:
StrategyDescription
RollingUpdateGradually replaces pods (default). Configurable via maxSurge and maxUnavailable.
RecreateTerminates all existing pods before creating new ones. Causes downtime.
RollingUpdate parameters:
  • maxSurge - Maximum pods above desired count during update (default: 25%)
  • maxUnavailable - Maximum unavailable pods during update (default: 25%)

Troubleshooting

  • Insufficient cluster resources (CPU, memory)
  • Image pull failures (check image name and pull secrets)
  • Pod scheduling failures (check node affinity, taints)
  • Readiness probe never passes
  • Check deployment events for specific errors
  • Readiness probe failing (check probe configuration)
  • Application not starting correctly (check container logs)
  • Dependencies not available (databases, services)
  • Resource limits too restrictive
  • maxUnavailable set too low
  • Pods taking long to become ready
  • PodDisruptionBudget blocking evictions
  • Consider adjusting update strategy parameters
  • Check for resource quotas limiting pod count
  • Verify sufficient node capacity
  • HorizontalPodAutoscaler may be overriding manual scale
  • Check deployment events for errors
  • Deployment must have at least 1 replica
  • Check if pods are stuck terminating
  • Verify deployment controller is healthy
  • Review deployment events
  • Finalizers may be blocking deletion
  • Verify you have delete permission
  • Check if namespace is terminating

FAQ

Scaling changes the number of replicas without modifying the pod spec. Updating changes the pod template, triggering a rolling update to replace all pods with the new configuration.
The deployment controller creates new pods before terminating old ones, respecting maxSurge and maxUnavailable settings. Traffic continues to flow to ready pods throughout the update.
The new replica count applies to the final state. Kubernetes handles both operations, ensuring the target state is eventually reached.
Yes. Deployments maintain revision history. Use kubectl rollout undo or edit the deployment to restore a previous pod template spec.
Pods may be unavailable because they’re starting up, failing readiness probes, being evicted, or experiencing errors. Check the deployment’s pod list for specific status.
Use RollingUpdate strategy (default) with appropriate maxSurge and maxUnavailable values. Ensure your application handles graceful shutdown and has proper readiness probes.
Restart triggers a rolling restart using the same image and configuration. Redeploy (updating the image or spec) creates pods with the new configuration. Restart is useful for picking up config changes from ConfigMaps/Secrets.
Set replicas to 0. The deployment and ReplicaSet remain, but all pods are terminated. Scale back up by setting replicas to a positive number.