You can roll out updates to a Deployment
object's pod specification, such as
its image, resource usage, requests, or configuration.
To update the Deployment
object, apply a new or updated manifest file to it.
Update a deployment to scale or specify a new version of your application.
Before you begin
To run commands against a Kubernetes cluster, ensure you have the following resources:
Locate the Kubernetes cluster name, or ask your Platform Administrator what the cluster name is.
Sign in and generate the kubeconfig file for the Kubernetes cluster if you don't have one.
Use the kubeconfig path of the Kubernetes cluster to replace
KUBERNETES_CLUSTER_KUBECONFIG
in these instructions.
To get the required permissions to update stateless workloads, ask your
Organization IAM Admin to grant you the Namespace Admin role (namespace-admin
)
in your project namespace.
Update the deployment
To update a Deployment
object, run:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
apply -f DEPLOYMENT_FILE
Replace the following:
KUBERNETES_CLUSTER_KUBECONFIG
: the kubeconfig file for the cluster running the deployment.NAMESPACE
: the project namespace.DEPLOYMENT_FILE
: the name of theDeployment
manifest file to update.
The kubectl apply
command applies a manifest file to a resource. If the
specified resource does not exist, it is created by the command.
There are also several other ways to update resources within your deployment.
Update a container image
To change the image of a Deployment
object, run:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
set image deployment DEPLOYMENT_NAME \
IMAGE=IMAGE:TAG
Replace the following:
KUBERNETES_CLUSTER_KUBECONFIG
: the kubeconfig file for the cluster running the deployment.NAMESPACE
: the project namespace.DEPLOYMENT_NAME
: the name of theDeployment
object containing the image.IMAGE
: the name of the container image.TAG
: the tag to update for the container image.
Updating the image of a deployment is useful to change selector fields or resources, such as requests or limits.
For example, to update a Deployment
object named nginx
to use version
1.9.1
, run:
kubectl --kubeconfig /tmp/kubeconfig.yaml -n my-namespace \
set image deployment nginx nginx=nginx:1.9.1
Roll back an update
If you want to roll back an update, such as when your deployment becomes
unstable, use the kubectl
CLI. A Deployment
object's rollout history is
preserved in the system so you can roll back at any time.
To roll back an in-progress or completed update to its previous revision, run:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
-n NAMESPACE \
rollout undo deployment DEPLOYMENT_NAME
Replace the following:
KUBERNETES_CLUSTER_KUBECONFIG
: the kubeconfig file for the cluster running the deployment.NAMESPACE
: the project namespace.DEPLOYMENT_NAME
: the name of theDeployment
object to roll back.
To roll back to a specific revision, run:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
-n NAMESPACE \
rollout undo deployment DEPLOYMENT_NAME \
--to-revision=REVISION_NUMBER
Replace the following:
KUBERNETES_CLUSTER_KUBECONFIG
: the kubeconfig file for the cluster running the deployment.NAMESPACE
: the project namespace.DEPLOYMENT_NAME
: the name of theDeployment
object to roll back.REVISION_NUMBER
: the integer that defines the revision to roll back to, such as3
.