乐闻世界logo
搜索文章和话题

How do you perform rolling updates in Docker Swarm?

1个答案

1

Performing rolling updates in Docker Swarm is a highly effective method to update services without causing downtime. I will now detail the steps to perform rolling updates, along with a specific example.

Step 1: Ensure Your Application is Deployed in Docker Swarm

Before performing rolling updates, confirm your application is running as a service within the Docker Swarm cluster. You can create a service using the following command, assuming your application is named my-app and uses the image my-app:1.0:

bash
docker service create --name my-app --replicas 3 my-app:1.0

This command establishes a service named my-app with 3 replicas in the Docker Swarm cluster.

Step 2: Update the Service with a New Image

When updating your application to a new version, such as from my-app:1.0 to my-app:2.0, use the docker service update command. To implement rolling updates, specify the --update-delay and --update-parallelism parameters.

bash
docker service update --image my-app:2.0 --update-delay 10s --update-parallelism 1 my-app

The --update-delay 10s parameter sets a 10-second interval between updates of each replica, meaning Docker Swarm waits 10 seconds before proceeding to the next replica. The --update-parallelism 1 parameter ensures only one replica is updated at a time. Together, these parameters enable sequential replica updates, minimizing downtime during the process.

Step 3: Monitor the Update Status

During the rolling update, check the service status and progress using the following command:

bash
docker service ps my-app

This command displays the current status of all replicas for the service my-app, including which replicas have been updated to the new version.

Specific Example

Assume you are managing a backend service for an online e-commerce platform named ecommerce-backend, currently running version ecommerce-backend:3.7. To update it to ecommerce-backend:3.8, follow these steps:

  1. Verify the service is running:
    bash

docker service ls

shell
2. Execute the rolling update: ```bash docker service update --image ecommerce-backend:3.8 --update-delay 20s --update-parallelism 2 ecommerce-backend

Here, --update-delay is set to 20 seconds, updating two replicas simultaneously. This configuration balances speed with service availability, ensuring minimal disruption.

By following these steps, you can seamlessly update services in Docker Swarm without impacting users. This approach is critical for production environments requiring high availability.

2024年8月9日 14:22 回复

你的答案