From 8d8e6bca297656f410bdfa03a3df8b80a3bb209c Mon Sep 17 00:00:00 2001 From: Ravind Kumar Date: Wed, 12 Oct 2022 12:08:30 -0400 Subject: [PATCH] Procedure for updating Operator (#608) Build out Operator Upgrade Procedure Co-authored-by: Lenin Alevski --- source/_static/scss/includes/_reset.scss | 13 +- ...tor-manage-tenant-update-minio-version.png | Bin 0 -> 35516 bytes source/includes/k8s/deploy-operator.rst | 10 +- .../k8s/install-minio-kubectl-plugin.rst | 2 +- .../upgrade-minio-operator.rst | 320 +++++++++++++++++- .../kubectl-minio-init.rst | 15 +- 6 files changed, 340 insertions(+), 20 deletions(-) create mode 100644 source/images/k8s/operator-manage-tenant-update-minio-version.png diff --git a/source/_static/scss/includes/_reset.scss b/source/_static/scss/includes/_reset.scss index fc01fdee..66c28507 100644 --- a/source/_static/scss/includes/_reset.scss +++ b/source/_static/scss/includes/_reset.scss @@ -299,7 +299,6 @@ ul { list-style-type: disc; } - // ---------------------- // Misc // ---------------------- @@ -316,4 +315,16 @@ abbr, acronym { dt:target, span.highlighted { background-color: transparent; +} + +// ---------------------- +// Container - Procedure +// ---------------------- + +.container.procedure { + padding: 0px; + + > ol > li > p:first-of-type { + font-weight: bold; + } } \ No newline at end of file diff --git a/source/images/k8s/operator-manage-tenant-update-minio-version.png b/source/images/k8s/operator-manage-tenant-update-minio-version.png new file mode 100644 index 0000000000000000000000000000000000000000..bb3b3b12cc0f5600f7d1b9c3311f78e490db3171 GIT binary patch literal 35516 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 F{ukb77t8` from the Operator Dashboard. -.. uncomment this block when upgrade operator procedure is complete +.. toctree:: + :titlesonly: + :hidden: - .. toctree:: - :titlesonly: - :hidden: - - /operations/install-deploy-manage/upgrade-minio-operator \ No newline at end of file + /operations/install-deploy-manage/upgrade-minio-operator \ No newline at end of file diff --git a/source/includes/k8s/install-minio-kubectl-plugin.rst b/source/includes/k8s/install-minio-kubectl-plugin.rst index b20d1762..aa908e34 100644 --- a/source/includes/k8s/install-minio-kubectl-plugin.rst +++ b/source/includes/k8s/install-minio-kubectl-plugin.rst @@ -36,7 +36,7 @@ You can install the MinIO plugin using either the Kubernetes Krew plugin manager :substitutions: :class: copyable - curl https://github.com/minio/operator/releases/download/|operator-version-stable|/kubectl-minio_|operator-version-stable|_linux_amd64 -o kubectl-minio + curl https://github.com/minio/operator/releases/download/v|operator-version-stable|/kubectl-minio_|operator-version-stable|_linux_amd64 -o kubectl-minio chmod +x kubectl-minio mv kubectl-minio /usr/local/bin/ diff --git a/source/operations/install-deploy-manage/upgrade-minio-operator.rst b/source/operations/install-deploy-manage/upgrade-minio-operator.rst index 68763092..26320d23 100644 --- a/source/operations/install-deploy-manage/upgrade-minio-operator.rst +++ b/source/operations/install-deploy-manage/upgrade-minio-operator.rst @@ -1,4 +1,3 @@ -:orphan: .. _minio-k8s-upgrade-minio-operator: ====================== @@ -11,6 +10,321 @@ Upgrade MinIO Operator :local: :depth: 1 +You can upgrade the MinIO Operator at any time without impacting your managed MinIO Tenants. -This page is currently under active redevelopment. -We will restore it to the TOC once that work is complete. \ No newline at end of file +As part of the upgrade process, the Operator may update and restart Tenants to support changes to the MinIO Custom Resource Definition (CRD). +These changes require no action on the part of any operator or administrator, and do not impact Tenant operations. + +The following table lists the upgrade paths from previous versions of the MinIO Operator: + +.. list-table:: + :header-rows: 1 + :widths: 40 40 + :width: 100% + + * - Current Version + - Supported Upgrade Target + + * - 4.2.3 and Later + - |operator-version-stable| + + * - 4.0.0 through 4.2.2 + - 4.2.3 + + * - 3.X.X + - 4.2.2 + +.. _minio-k8s-upgrade-minio-operator-procedure: + +Upgrade MinIO Operator 4.2.3 and Later to |operator-version-stable| +------------------------------------------------------------------- + +.. admonition:: Prerequisites + :class: note + + This procedure requires the following: + + - You have an existing MinIO Operator deployment running 4.2.3 or later + - Your Kubernetes cluster runs 1.19.0 or later + - Your local host has ``kubectl`` installed and configured with access to the Kubernetes cluster + +This procedure upgrades the MinIO Operator from any 4.2.3 or later release to |operator-version-stable|. + +.. container:: procedure + + 1. *(Optional)* Update each MinIO Tenant to the latest stable MinIO Version. + + Upgrading MinIO regularly ensures your Tenants have the latest features and performance improvements. + + Test upgrades in a lower environment such as a Dev or QA Tenant, before applying to your production Tenants. + + See :ref:`minio-k8s-upgrade-minio-tenant` for a procedure on upgrading MinIO Tenants. + + #. Verify the existing Operator installation. + + Use ``kubectl get all -n minio-operator`` to verify the health and status of all Operator pods and services. + + If you installed the Operator to a custom namespace, specify that namespace as ``-n ``. + + You can verify the currently installed Operator version by retrieving the object specification for an operator pod in the namespace. + The following example uses the ``jq`` tool to filter the necessary information from ``kubectl``: + + .. code-block:: shell + :class: copyable + + kubectl get pod -l 'name=minio-operator' -n minio-operator -o json | jq '.items[0].spec.containers' + + The output resembles the following: + + .. code-block:: json + :emphasize-lines: 8-10 + + { + "env": [ + { + "name": "CLUSTER_DOMAIN", + "value": "cluster.local" + } + ], + "image": "minio/operator:v4.5.1", + "imagePullPolicy": "IfNotPresent", + "name": "minio-operator" + } + + #. Download the Latest Stable Version of the MinIO Kubernetes Plugin + + .. include:: /includes/k8s/install-minio-kubectl-plugin.rst + + #. Run the initialization command to upgrade the Operator + + Use the :mc-cmd:`kubectl minio init` command to upgrade the existing MinIO Operator installation + + .. code-block:: shell + :class: copyable + + kubectl minio init + + #. Validate the Operator upgrade + + You can check the Operator version by reviewing the object specification for an Operator Pod using a previous step. + + Use :mc-cmd:`kubectl minio proxy` to access the Operator Console and confirm the status of managed Tenants: + + .. code-block:: shell + :class: copyable + + kubectl minio proxy + +.. _minio-k8s-upgrade-minio-operator-4.2.2-procedure: + +Upgrade MinIO Operator 4.0.0 through 4.2.2 to 4.2.3 +--------------------------------------------------- + +.. admonition:: Prerequisites + :class: note + + This procedure assumes that: + + - You have an existing MinIO Operator deployment running any release from 4.0.0 through 4.2.2 + - Your Kubernetes cluster runs 1.19.0 or later + - Your local host has ``kubectl`` installed and configured with access to the Kubernetes cluster + +This procedure covers the necessary steps to upgrade a MinIO Operator deployment running any release from 4.0.0 through 4.2.2 to 4.2.3. +You can then perform :ref:`minio-k8s-upgrade-minio-operator-procedure` to complete the upgrade to |operator-version-stable|. + +There is no direct upgrade path for 4.0.0 - 4.2.2 installations to |operator-version-stable|. + +.. container:: procedure + + 1. *(Optional)* Update each MinIO Tenant to the latest stable MinIO Version. + + Upgrading MinIO regularly ensures your Tenants have the latest features and performance improvements. + + Test upgrades in a lower environment such as a Dev or QA Tenant, before applying to your production Tenants. + + See :ref:`minio-k8s-upgrade-minio-tenant` for a procedure on upgrading MinIO Tenants. + + #. Check the Security Context for each Tenant Pool + + Use the following command to validate the specification for each managed MinIO Tenant: + + .. code-block:: shell + :class: copyable + + kubectl get tenants -n -o yaml + + If the ``spec.pools.securityContext`` field does not exist for a Tenant, the tenant pods likely run as root. + + As part of the 4.2.3 and later series, pods run with a limited permission set enforced as part of the Operator upgrade. + However, Tenants running pods as root may fail to start due to the security context mismatch. + You can set an explicit Security Context that allows pods to run as root for those Tenants: + + .. code-block:: shell + :class: copyable + + securityContext: + runAsUser: 0 + runAsGroup: 0 + runAsNonRoot: false + fsGroup: 0 + + You can use the following command to edit the tenant and apply the changes: + + .. code-block:: shell + + kubectl edit tenants -n + # Modify the securityContext as needed + + See :kube-docs:`Pod Security Standards ` for more information on Kubernetes Security Contexts. + + #. Upgrade to Operator 4.2.3 + + Download the MinIO Kubernetes Plugin 4.2.3 and use it to upgrade the Operator. + Open https://github.com/minio/operator/releases/tag/v4.2.3 in a browser and download the binary that corresponds to your local host OS. + For example, Linux hosts running an Intel or AMD processor can run the following commands: + + .. code-block:: shell + :class: copyable + + wget https://github.com/minio/operator/releases/download/v4.2.3/kubectl-minio_4.2.3_linux_amd64 -o kubectl-minio_4.2.3 + chmod +x kubectl-minio_4.2.3 + + ./kubectl-minio_4.2.3 init + + #. Validate all Tenants and Operator pods + + Check the Operator and MinIO Tenant namespaces to ensure all pods and services started successfully. + + For example: + + .. code-block:: shell + :class: copyable + + kubectl get all -n minio-operator + + kubectl get pods -l "v1.min.io/tenant" --all-namespaces + + #. Upgrade to |operator-version-stable| + + Follow the :ref:`minio-k8s-upgrade-minio-operator-procedure` procedure to upgrade to the latest stable Operator version. + +Upgrade MinIO Operator 3.0.0 through 3.0.29 to 4.2.2 +---------------------------------------------------- + +.. admonition:: Prerequisites + :class: note + + This procedure assumes that: + + - You have an existing MinIO Operator deployment running 3.X.X + - Your Kubernetes cluster runs 1.19.0 or later + - Your local host has ``kubectl`` installed and configured with access to the Kubernetes cluster + +This procedure covers the necessary steps to upgrade a MinIO Operator deployment running any release from 3.0.0 through 3.2.9 to 4.2.2. +You can then perform :ref:`minio-k8s-upgrade-minio-operator-4.2.2-procedure`, followed by :ref:`minio-k8s-upgrade-minio-operator-procedure`. + +There is no direct upgrade path from a 3.X.X series installation to |operator-version-stable|. + +.. container:: procedure + + 1. (Optional) Update each MinIO Tenant to the latest stable MinIO Version. + + Upgrading MinIO regularly ensures your Tenants have the latest features and performance improvements. + + Test upgrades in a lower environment such as a Dev or QA Tenant, before applying to your production Tenants. + + See :ref:`minio-k8s-upgrade-minio-tenant` for a procedure on upgrading MinIO Tenants. + + #. Validate the Tenant ``tenant.spec.zones`` values + + Use the following command to validate the specification for each managed MinIO Tenant: + + .. code-block:: shell + :class: copyable + + kubectl get tenants -n -o yaml + + - Ensure each ``tenant.spec.zones`` element has a ``name`` field set to the name for that zone. + Each zone must have a unique name for that Tenant, such as ``zone-0`` and ``zone-1`` for the first and second zones respectively. + + - Ensure each ``tenant.spec.zones`` has an explicit ``securityContext`` describing the permission set with which pods run in the cluster. + + The following example tenant YAML fragment sets the specified fields: + + .. code-block:: yaml + + image: "minio/minio:$(LATEST-VERSION)" + ... + zones: + - servers: 4 + name: "zone-0" + volumesPerServer: 4 + volumeClaimTemplate: + metadata: + name: data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Ti + securityContext: + runAsUser: 0 + runAsGroup: 0 + runAsNonRoot: false + fsGroup: 0 + - servers: 4 + name: "zone-1" + volumesPerServer: 4 + volumeClaimTemplate: + metadata: + name: data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Ti + securityContext: + runAsUser: 0 + runAsGroup: 0 + runAsNonRoot: false + fsGroup: 0 + + You can use the following command to edit the tenant and apply the changes: + + .. code-block:: shell + + kubectl edit tenants -n + + #. Upgrade to Operator 4.2.2 + + Download the MinIO Kubernetes Plugin 4.2.2 and use it to upgrade the Operator. + Open https://github.com/minio/operator/releases/tag/v4.2.2 in a browser and download the binary that corresponds to your local host OS. + For example, Linux hosts running an Intel or AMD processor can run the following commands: + + .. code-block:: shell + :class: copyable + + wget https://github.com/minio/operator/releases/download/v4.2.3/kubectl-minio_4.2.2_linux_amd64 -o kubectl-minio_4.2.2 + chmod +x kubectl-minio_4.2.2 + + ./kubectl-minio_4.2.2 init + + #. Validate all Tenants and Operator pods + + Check the Operator and MinIO Tenant namespaces to ensure all pods and services started successfully. + + For example: + + .. code-block:: shell + :class: copyable + + kubectl get all -n minio-operator + + kubectl get pods -l "v1.min.io/tenant" --all-namespaces + + #. Upgrade to 4.2.3 + + Follow the :ref:`minio-k8s-upgrade-minio-operator-4.2.2-procedure` procedure to upgrade to Operator 4.2.3. + You can then upgrade to |operator-version-stable|. diff --git a/source/reference/kubectl-minio-plugin/kubectl-minio-init.rst b/source/reference/kubectl-minio-plugin/kubectl-minio-init.rst index 5f955f6e..873598a8 100644 --- a/source/reference/kubectl-minio-plugin/kubectl-minio-init.rst +++ b/source/reference/kubectl-minio-plugin/kubectl-minio-init.rst @@ -18,11 +18,13 @@ Description .. start-kubectl-minio-init-desc -The :mc:`kubectl minio init` command initializes the MinIO Operator. -:mc:`kubectl minio init` requires the operator for core functionality. +The :mc:`kubectl minio init` command initialize the MinIO Operator. .. end-kubectl-minio-init-desc +If the Kubernetes cluster has an existing MinIO Operator installation, this command upgrades the Operator to match the MinIO plugin version. +For more information on upgrading the MinIO Operator, see :ref:`minio-k8s-upgrade-minio-operator`. + Syntax ------ @@ -30,17 +32,12 @@ Syntax .. tab-item:: EXAMPLE - The following command initializes a new MinIO Operator deployment using operator v4.4.22, on the ``minio-operator`` namespace, using the cluster domain of ``cluster.local`` and watching the default namespace.: + The following command initializes a new MinIO Operator deployment running |operator-version-stable|. .. code-block:: shell :class: copyable - kubectl minio init \ - --image=minio/operator:v4.4.22 \ - --namespace=minio-operator \ - --cluster-domain=cluster.local \ - --namespace-to-watch=default \ - --image-pull-secret= + kubectl minio init .. tab-item:: SYNTAX