1
0
mirror of https://github.com/minio/docs.git synced 2025-07-30 07:03:26 +03:00

DOCS-934: Clean up container procedures (#985)

Closes #934
This commit is contained in:
Ravind Kumar
2023-09-05 15:26:19 -04:00
committed by GitHub
parent 4ea1289617
commit ada852eca3
8 changed files with 430 additions and 131 deletions

View File

@ -41,7 +41,8 @@ Multi-Node Multi-Drive (MNMD or "Distributed")
Multiple MinIO servers with at least four drives across all servers.
The distributed |MNMD| topology supports production-grade object storage with drive and node-level availability and resiliency.
This documentation provides instructions for |SNSD| and |SNMD| for supporting local development and evaluation of MinIO on a single host machine. For |MNMD| deployments, use the MinIO Kubernetes Operator to deploy and manage MinIO tenants in a containerized and orchestrated environment.
This documentation provides instructions for |SNSD| and |SNMD| for supporting local development and evaluation of MinIO on a single host machine **only**.
For |MNMD| deployments, use the MinIO Kubernetes Operator to deploy and manage MinIO tenants in a containerized and orchestrated environment.
.. _minio-installation-platform-support:

View File

@ -0,0 +1,142 @@
MinIO uses an update-then-restart methodology for upgrading a deployment to a newer release:
1. Update the container MinIO image with the newer release.
2. Restart the container.
This procedure does not require taking downtime and is non-disruptive to ongoing operations.
Considerations
--------------
Upgrades Are Non-Disruptive
~~~~~~~~~~~~~~~~~~~~~~~~~~~
MinIO's upgrade-then-restart procedure does *not* require taking downtime or scheduling a maintenance period.
MinIO restarts are fast, such that restarting all server processes in parallel typically completes in a few seconds.
MinIO operations are atomic and strictly consistent, such that applications using MinIO or S3 SDKs can rely on the built-in :aws-docs:`transparent retry <general/latest/gr/api-retries.html>` without further client-side logic.
This ensures upgrades are non-disruptive to ongoing operations.
Check Release Notes
~~~~~~~~~~~~~~~~~~~
MinIO publishes :minio-git:`Release Notes <minio/releases>` for your reference as part of identifying the changes applied in each release.
Review the associated release notes between your current MinIO version and the newer release so you have a complete view of any changes.
Pay particular attention to any releases that are *not* backwards compatible.
You cannot trivially downgrade from any such release.
Procedure
---------
You can run the ``podman container inspect`` or ``docker inspect`` command to inspect the container and validate the current container image:
.. code-block:: shell
:class: copyable
# For docker, use docker inspect
podman container inspect --format='{{.Config.Image}}' CONTAINER_NAME
The following output indicates the container was created using the most recent stable image tag:
.. code-block:: shell
quay.io/minio/minio:latest
Use the :ref:`minio-upgrade-latest-tag` steps to upgrade your container.
The following output indicates the container was created using a specific image tag:
.. code-block:: shell
quay.io/minio/minio:RELEASE.2023-07-21T21-12-44Z
Use the :ref:`minio-upgrade-specific-tag` steps to upgrade your container.
.. _minio-upgrade-latest-tag:
Upgrade Containers using Latest Image Tag
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Update your image registry
Pull the latest stable MinIO image for the configured image repository:
.. code-block:: shell
:class: copyable
# For docker, use docker pull
podman pull quay.io/minio/minio:latest
#. Restart the container
You must restart the container to load the new image binary for use by MinIO:
.. code-block:: shell
:class: copyable
# For docker, use docker restart
podman container restart CONTAINER_NAME
#. Validate the Upgrade
Use the :mc:`mc admin info` command to check that the MinIO container is online, operational, and reflects the installed MinIO version.
#. Update MinIO Client
You should upgrade your :mc:`mc` binary to match or closely follow the MinIO server release.
You can use the :mc:`mc update` command to update the binary to the latest stable release:
.. code-block:: shell
:class: copyable
mc update
.. _minio-upgrade-specific-tag:
Upgrade Containers using Specific Image Tag
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Update your local image registry
Pull the desired image you want to use for updating the container.
The following example uses the latest stable version of MinIO:
.. code-block:: shell
:class: copyable
:substitutions:
# For docker, use docker pull
podman pull quay.io/minio/minio:|minio-tag|
#. Modify the container start script or configuration
Specify the new MinIO tag to the container start script or configuration.
For Docker, this might be the Compose file used to start MinIO.
For Podman, this might be a YAML file used to create the container or pod.
Ensure the ``image: <VALUE>`` matches the newly pulled image tag.
#. Restart or re-create the container
If you started the container using CLI commands, you may need to completely stop, remove, and re-create the container.
Use a script to perform this procedure to minimize potential downtime.
For Docker, this might require running ``docker compose restart``.
#. Validate the Upgrade
Use the :mc:`mc admin info` command to check that the MinIO container is online, operational, and reflects the installed MinIO version.
#. Update MinIO Client
You should upgrade your :mc:`mc` binary to match or closely follow the MinIO server release.
You can use the :mc:`mc update` command to update the binary to the latest stable release:
.. code-block:: shell
:class: copyable
mc update