mirror of
https://github.com/minio/docs.git
synced 2025-07-31 18:04:52 +03:00
attempt to remove plugin from docs (#1219)
The Kubernetes plugin is gone, this PR replaces the procedures that use `kubectl minio` in all its various forms. The plugin was referenced on many pages and for many purposes so there is _a lot_ of restructuring involved. Some procedures no longer have CLI instructions, which can be addressed in subsequent PRs. Everything should have at least one working method, even if it's to use Operator Console. - Remove references to plugin, except for pre-4.5.8 upgrade paths - Move pre-4.5.8 upgrade paths to new child page (currently hidden from TOC, linked in page) - Fill in with new Kustomize, kubectl, and/or Operator Console steps. A handful of old screen captures still to be updated Staged: - [Operator deploy](http://192.241.195.202:9000/staging/DOCS-1213-upstream/k8s/operations/installation.html) - [Operator upgrade](http://192.241.195.202:9000/staging/DOCS-1213-upstream/k8s/operations/install-deploy-manage/upgrade-minio-operator.html) - [Deploy and manage Tenants](http://192.241.195.202:9000/staging/DOCS-1213-upstream/k8s/operations/deploy-manage-tenants.html) Fixes https://github.com/minio/docs/issues/1213
This commit is contained in:
@ -13,20 +13,17 @@ Delete a MinIO Tenant
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
MinIO Kubernetes Operator and Plugin
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
MinIO Kubernetes Operator
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This procedures on this page *requires* a valid installation of the MinIO Kubernetes Operator and assumes the local host has a matching installation of the MinIO Kubernetes Operator.
|
||||
This procedure assumes the latest stable Operator and Plugin version |operator-version-stable|.
|
||||
This procedure assumes the latest stable Operator, version |operator-version-stable|.
|
||||
|
||||
See :ref:`deploy-operator-kubernetes` for complete documentation on deploying the MinIO Operator.
|
||||
|
||||
.. include:: /includes/k8s/install-minio-kubectl-plugin.rst
|
||||
|
||||
Procedure (CLI)
|
||||
---------------
|
||||
|
||||
Use the :mc-cmd:`kubectl minio tenant delete` command to delete a MinIO Tenant and its associated resources.
|
||||
Tenant Persistent Volume Claims
|
||||
-------------------------------
|
||||
|
||||
The delete behavior of each Persistent Volume Claims (``PVC``) generated by the Tenant depends on the :kube-docs:`Reclaim Policy <concepts/storage/persistent-volumes/#reclaim-policy>` of its bound Persistent Volume (``PV``):
|
||||
|
||||
@ -40,13 +37,13 @@ The delete behavior of each Persistent Volume Claims (``PVC``) generated by the
|
||||
|
||||
Perform all due diligence in ensuring the safety of stored data *prior* to deleting the Tenant.
|
||||
|
||||
.. code-block:: shell
|
||||
:class: copyable
|
||||
Procedure (Operator Console)
|
||||
----------------------------
|
||||
|
||||
#. From the Operator Console view, select the Tenant to open the summary view, then select :guilabel:`Pools`.
|
||||
Select :guilabel:`Delete`.
|
||||
|
||||
kubectl minio tenant delete TENANT_NAME \
|
||||
--namespace TENANT_NAMESPACE
|
||||
#. Enter the Tenant name in the confirmation dialog to confirm you want to delete this Tenant.
|
||||
To delete the Tenant's associated volumes, toggle :guilabel:`Delete Volumes` to :guilabel:`ON`.
|
||||
|
||||
- Replace ``TENANT_NAME`` with the name of the Tenant.
|
||||
- Replace ``TENANT_NAMESPACE`` with the namespace of the Tenant.
|
||||
|
||||
The command includes a confirmation prompt that requires explicit approval of the delete operation.
|
||||
#. Select :guilabel:`Delete`.
|
||||
|
@ -27,7 +27,9 @@ Deploy a MinIO Tenant
|
||||
|
||||
This procedure documents deploying a MinIO Tenant onto a stock Kubernetes cluster using the MinIO Operator Console.
|
||||
|
||||
.. image:: /images/k8s/operator-dashboard.png
|
||||
.. screenshot temporarily removed
|
||||
|
||||
.. image:: /images/k8s/operator-dashboard.png
|
||||
:align: center
|
||||
:width: 70%
|
||||
:class: no-scaled-link
|
||||
@ -47,36 +49,27 @@ Installing the MinIO :ref:`Kubernetes Operator <deploy-operator-kubernetes>` aut
|
||||
This documentation assumes familiarity with all referenced Kubernetes concepts, utilities, and procedures.
|
||||
While this documentation *may* provide guidance for configuring or deploying Kubernetes-related resources on a best-effort basis, it is not a replacement for the official :kube-docs:`Kubernetes Documentation <>`.
|
||||
|
||||
.. _deploy-minio-distributed-prereqs-storage:
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
MinIO Kubernetes Operator and Plugin
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
MinIO Kubernetes Operator
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The procedures on this page *requires* a valid installation of the MinIO
|
||||
Kubernetes Operator and assumes the local host has a matching installation of
|
||||
the MinIO Kubernetes Operator. This procedure assumes the latest stable Operator
|
||||
and Plugin version |operator-version-stable|.
|
||||
the MinIO Kubernetes Operator. This procedure assumes the latest stable Operator, version |operator-version-stable|.
|
||||
|
||||
See :ref:`deploy-operator-kubernetes` for complete documentation on deploying the MinIO Operator.
|
||||
|
||||
.. cond:: k8s and not openshift
|
||||
|
||||
.. include:: /includes/k8s/install-minio-kubectl-plugin.rst
|
||||
|
||||
.. cond:: openshift
|
||||
|
||||
.. include:: /includes/openshift/install-minio-kubectl-plugin.rst
|
||||
|
||||
.. cond:: k8s and not (openshift or eks or gke or aks)
|
||||
|
||||
Kubernetes Version 1.19.0
|
||||
Kubernetes Version 1.21.0
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Starting with v4.0.0, the MinIO Operator requires Kubernetes 1.19.0 and later.
|
||||
The Kubernetes infrastructure *and* the ``kubectl`` CLI tool must have the same version of 1.19.0+.
|
||||
MinIO Operator requires Kubernetes 1.21.0 or later.
|
||||
The Kubernetes infrastructure *and* the ``kubectl`` CLI tool must be the same version.
|
||||
Upgrade ``kubectl`` to the same version as the Kubernetes version used on the cluster.
|
||||
|
||||
This procedure assumes the host machine has ``kubectl`` installed and configured with access to the target Kubernetes cluster.
|
||||
The host machine *must* have access to a web browser application.
|
||||
@ -210,6 +203,7 @@ Persistent Volumes
|
||||
MinIO strongly recommends SSD-backed disk types for best performance.
|
||||
For more information on AKS disk types, see :azure-docs:`Azure disk types <virtual-machines/disk-types>`.
|
||||
|
||||
|
||||
Deploy a Tenant using the MinIO Operator Console
|
||||
------------------------------------------------
|
||||
|
||||
@ -231,10 +225,6 @@ To deploy a tenant from the MinIO Operator Console, complete the following steps
|
||||
|
||||
:ref:`create-tenant-encryption-section`
|
||||
|
||||
:ref:`minio-tenant-audit-logging-settings`
|
||||
|
||||
:ref:`minio-tenant-monitoring-settings`
|
||||
|
||||
:ref:`create-tenant-deploy-view-tenant`
|
||||
|
||||
:ref:`create-tenant-connect-tenant`
|
||||
@ -246,16 +236,18 @@ To deploy a tenant from the MinIO Operator Console, complete the following steps
|
||||
|
||||
.. include:: /includes/common/common-k8s-connect-operator-console.rst
|
||||
|
||||
Open your browser to the specified URL and enter the JWT Token into the login page.
|
||||
You should see the :guilabel:`Tenants` page:
|
||||
Open your browser to the appropriate URL and enter the JWT Token into the login page.
|
||||
You should see the :guilabel:`Tenants` page.
|
||||
|
||||
.. image:: /images/k8s/operator-dashboard.png
|
||||
.. screenshot temporarily removed
|
||||
|
||||
.. image:: /images/k8s/operator-dashboard.png
|
||||
:align: center
|
||||
:width: 70%
|
||||
:class: no-scaled-link
|
||||
:alt: MinIO Operator Console
|
||||
|
||||
Click the :guilabel:`+ Create Tenant` to start creating a MinIO Tenant.
|
||||
Select :guilabel:`+ Create Tenant` to start creating a MinIO Tenant.
|
||||
|
||||
.. _create-tenant-complete-tenant-setup:
|
||||
|
||||
@ -331,7 +323,7 @@ Settings marked with an asterisk :guilabel:`*` are *required*:
|
||||
The Operator by default uses pod anti-affinity, such that the Kubernetes cluster *must* have at least one worker node per MinIO server pod.
|
||||
Use the :guilabel:`Pod Placement` pane to modify the pod scheduling settings for the Tenant.
|
||||
|
||||
* - :guilabel:`Number of Drives per Server`
|
||||
* - :guilabel:`Drives per Server`
|
||||
- The number of storage volumes (Persistent Volume Claims) the Operator requests per Server.
|
||||
|
||||
The Operator displays the :guilabel:`Total Volumes` under the :guilabel:`Resource Allocation` section.
|
||||
@ -363,21 +355,27 @@ Settings marked with an asterisk :guilabel:`*` are *required*:
|
||||
|
||||
The specified :guilabel:`Storage Class` *must* correspond to a set of Persistent Volumes sufficient in capacity to match each generated PVC.
|
||||
|
||||
* - :guilabel:`Memory per Node [Gi]`
|
||||
- Specify the total amount of memory (RAM) to allocate per MinIO server pod.
|
||||
* - :guilabel:`Erasure Code Parity`
|
||||
- The Erasure Code Parity to set for the deployment.
|
||||
|
||||
The Operator displays the selected parity and its effect on the deployment under the :guilabel:`Erasure Code Configuration` section.
|
||||
Erasure Code parity defines the overall resiliency and availability of data on the cluster.
|
||||
Higher parity values increase tolerance to drive or node failure at the cost of total storage.
|
||||
See :ref:`minio-erasure-coding` for more complete documentation.
|
||||
|
||||
* - :guilabel:`CPU Request`
|
||||
- Specify the desired number of CPUs to allocate per MinIO server pod.
|
||||
|
||||
* - :guilabel:`Memory Request [Gi]`
|
||||
- Specify the desired amount of memory (RAM) to allocate per MinIO server pod.
|
||||
See :ref:`minio-hardware-checklist-memory` for guidance on setting this value.
|
||||
MinIO **requires** a minimum of 2GiB of memory per worker.
|
||||
|
||||
The Kubernetes cluster *must* have worker nodes with sufficient free RAM to match the pod request.
|
||||
|
||||
* - :guilabel:`Erasure Code Parity`
|
||||
- The Erasure Code Parity to set for the deployment.
|
||||
* - :guilabel:`Specify Limit`
|
||||
- Toggle to :guilabel:`ON` to specify maximum CPU and memory limits.
|
||||
|
||||
The Operator displays the selected parity and its effect on the deployment under the :guilabel:`Erasure Code Configuration` section.
|
||||
Erasure Code parity defines the overall resiliency and availability of data on the cluster.
|
||||
Higher parity values increase tolerance to drive or node failure at the cost of total storage.
|
||||
See :ref:`minio-erasure-coding` for more complete documentation.
|
||||
|
||||
Select :guilabel:`Create` to create the Tenant using the current configuration.
|
||||
While all subsequent sections are *optional*, MinIO recommends reviewing them prior to deploying the Tenant.
|
||||
|
||||
@ -463,25 +461,15 @@ The :guilabel:`Images` section displays container image settings used by the Min
|
||||
* - Field
|
||||
- Description
|
||||
|
||||
* - :guilabel:`MinIO's Image`
|
||||
* - :guilabel:`MinIO`
|
||||
- The container image to use for the MinIO Server.
|
||||
See the `MinIO Quay <https://quay.io/repository/minio/minio>`__ or the `MinIO DockerHub <https://hub.docker.com/r/minio/minio/tags>`__ repositories for a list of valid tags.
|
||||
|
||||
* - :guilabel:`Log Search API's Image`
|
||||
- The container image to use for MinIO Log Search API.
|
||||
|
||||
* - :guilabel:`KES Image`
|
||||
- The container image to use for MinIO :minio-git:`KES <kes>`.
|
||||
|
||||
* - | :guilabel:`Log Search Postgres Image`
|
||||
| :guilabel:`Log Search Postgres Init Image`
|
||||
- The container images to use for starting the PostgreSQL service supporting the Log Search API
|
||||
|
||||
* - | :guilabel:`Prometheus Image`
|
||||
| :guilabel:`Prometheus Sidecar Image`
|
||||
| :guilabel:`Prometheus Init Image`
|
||||
|
||||
- The container images to use for starting the Prometheus service supporting the Log Search API.
|
||||
* - :guilabel:`Use a private container registry`
|
||||
- If the tenant requires a private container registry, toggle to :guilabel:`ON`, then specify the location and credentials for the private registry.
|
||||
|
||||
.. _create-tenant-pod-placement-section:
|
||||
|
||||
@ -513,6 +501,9 @@ The :guilabel:`Pod Placement` section displays pod scheduler settings for the Mi
|
||||
* - :guilabel:`Node Selector`
|
||||
- Directs the operator to set a Node Selector such that pods only deploy onto Kubernetes workers whose labels match the selector.
|
||||
|
||||
* - :guilabel:`Tolerations`
|
||||
- Specify any required tolerations for this tenant's pods.
|
||||
|
||||
.. _create-tenant-identity-provider-section:
|
||||
|
||||
6) The :guilabel:`Identity Provider` Section
|
||||
@ -555,10 +546,10 @@ The :guilabel:`Security` section displays TLS certificate settings for the MinIO
|
||||
* - Field
|
||||
- Description
|
||||
|
||||
* - :guilabel:`Enable TLS`
|
||||
* - :guilabel:`TLS`
|
||||
- Enable or disable TLS for the MinIO Tenant.
|
||||
|
||||
* - :guilabel:`Enable AutoCert`
|
||||
* - :guilabel:`AutoCert`
|
||||
- Directs the Operator to generate Certificate Signing Requests for submission to the Kubernetes TLS API.
|
||||
|
||||
The MinIO Tenant uses the generated certificates for enabling and establishing TLS connections.
|
||||
@ -615,13 +606,17 @@ Enabling SSE also creates :minio-git:`MinIO Key Encryption Service <kes>` pods i
|
||||
- Description
|
||||
|
||||
* - :guilabel:`Vault`
|
||||
- Configure `Hashicorp Vault <https://www.vaultproject.io/>`__ as the external KMS for storing root encryption keys.
|
||||
- Configure `HashiCorp Vault <https://www.vaultproject.io/>`__ as the external KMS for storing root encryption keys.
|
||||
See :ref:`minio-sse-vault` for guidance on the displayed fields.
|
||||
|
||||
* - :guilabel:`AWS`
|
||||
- Configure `AWS Secrets Manager <https://aws.amazon.com/secrets-manager/>`__ as the external KMS for storing root encryption keys.
|
||||
See :ref:`minio-sse-aws` for guidance on the displayed fields.
|
||||
|
||||
* - :guilabel:`Gemalto`
|
||||
- Configure `Gemalto (Thales Digital Identity and Security) <https://github.com/minio/kes/wiki/Gemalto-KeySecure/>`__ as the external KMS for storing root encryption keys.
|
||||
See :kes-docs:`Thales CipherTrust Manager (formerly Gemalto KeySecure) <integrations/thales-ciphertrust/>` for guidance on the displayed fields.
|
||||
|
||||
* - :guilabel:`GCP`
|
||||
- Configure `Google Cloud Platform Secret Manager <https://cloud.google.com/secret-manager/>`__ as the external KMS for storing root encryption keys.
|
||||
See :ref:`minio-sse-gcp` for guidance on the displayed fields.
|
||||
@ -632,82 +627,10 @@ Enabling SSE also creates :minio-git:`MinIO Key Encryption Service <kes>` pods i
|
||||
|
||||
.. _minio-tenant-audit-logging-settings:
|
||||
|
||||
9) Audit Log Settings
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. include:: /includes/common/common-k8s-deprecation-audit-prometheus.rst
|
||||
:start-after: start-deprecate-audit-logs
|
||||
:end-before: end-deprecate-audit-logs
|
||||
|
||||
.. versionchanged:: Console 0.23.1 and Operator 5.0.0
|
||||
|
||||
New tenants have Audit Logs :guilabel:`Disabled` by default.
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 30 70
|
||||
:width: 100%
|
||||
|
||||
* - Field
|
||||
- Description
|
||||
|
||||
* - Log Search Storage Class
|
||||
- Select the storage class and requested capacity associated to the PVC generated to support audit logging.
|
||||
|
||||
* - Storage Size
|
||||
- Specify the size of storage to make available for audit logging.
|
||||
|
||||
* - :guilabel:`SecurityContext for LogSearch`
|
||||
- The MinIO Operator deploys a Log Search service (SQL Database and Log Search API) to support Audit Log search in the MinIO Tenant Console.
|
||||
|
||||
You can modify the Security Context to run the associated pod commands using a different ``User``, ``Group``, ``FsGroup``, or ``FSGroupChangePolicy``.
|
||||
You can also direct the pod to not run commands as the ``Root`` user.
|
||||
|
||||
* - :guilabel:`SecurityContext for PostgreSQL`
|
||||
- The MinIO Operator deploys a PostgreSQL database to support logging services.
|
||||
|
||||
You can modify the Security Context to run the associated pod commands using a different ``User``, ``Group``, ``FsGroup``, or ``FSGroupChangePolicy``.
|
||||
You can also direct the pod to not run commands as the ``Root`` user.
|
||||
|
||||
You can also modify the storage class and requested capacity associated to the PVC generated to support the Prometheus service.
|
||||
|
||||
.. _minio-tenant-monitoring-settings:
|
||||
|
||||
10) Monitoring Settings
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. include:: /includes/common/common-k8s-deprecation-audit-prometheus.rst
|
||||
:start-after: start-deprecate-prometheus
|
||||
:end-before: end-deprecate-prometheus
|
||||
|
||||
.. versionchanged:: Console 0.23.1 and Operator 5.0.0
|
||||
|
||||
New tenants have monitoring :guilabel:`Disabled` by default.
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 30 70
|
||||
:width: 100%
|
||||
|
||||
* - Field
|
||||
- Description
|
||||
|
||||
* - Storage Class
|
||||
- Select the storage class and requested capacity associated to the PVC generated to support Prometheus.
|
||||
|
||||
* - Storage Size
|
||||
- Specify the size of storage to make available for Prometheus.
|
||||
|
||||
* - :guilabel:`SecurityContext`
|
||||
- The MinIO Operator assigns this Security Context for the Prometheus pod.
|
||||
|
||||
You can modify the Security Context to run the associated pod commands using a different ``User``, ``Group``, ``FsGroup``, or ``FSGroupChangePolicy``.
|
||||
You can also direct the pod to not run commands as the ``Root`` user.
|
||||
|
||||
.. _create-tenant-deploy-view-tenant:
|
||||
|
||||
11) Deploy and View the Tenant
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
9) Deploy and View the Tenant
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Select :guilabel:`Create` at any time to begin the deployment process.
|
||||
The MinIO Operator displays the root user credentials *once* as part of deploying the Tenant.
|
||||
@ -717,9 +640,11 @@ You can monitor the Tenant creation process from the :guilabel:`Tenants` view.
|
||||
The :guilabel:`State` column updates throughout the deployment process.
|
||||
|
||||
Tenant deployment can take several minutes to complete.
|
||||
Once the :guilabel:`State` reads as :guilabel:`Initialized`, click the Tenant to view its details.
|
||||
Once the :guilabel:`State` reads as :guilabel:`Initialized`, select the Tenant to view its details.
|
||||
|
||||
.. image:: /images/k8s/operator-tenant-view.png
|
||||
.. screenshot temporarily removed
|
||||
|
||||
.. image:: /images/k8s/operator-tenant-view.png
|
||||
:align: center
|
||||
:width: 70%
|
||||
:class: no-scaled-link
|
||||
@ -734,7 +659,7 @@ Each tab provides additional details or configuration options for the MinIO Tena
|
||||
|
||||
.. _create-tenant-connect-tenant:
|
||||
|
||||
12) Connect to the Tenant
|
||||
10) Connect to the Tenant
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The MinIO Operator creates services for the MinIO Tenant.
|
||||
@ -794,12 +719,8 @@ Kubernetes provides multiple options for configuring external access to services
|
||||
|
||||
.. include:: /includes/openshift/steps-deploy-minio-tenant.rst
|
||||
|
||||
.. cond:: k8s and not (openshift or eks)
|
||||
|
||||
.. include:: /includes/k8s/steps-deploy-tenant-cli.rst
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
:hidden:
|
||||
|
||||
/operations/install-deploy-manage/deploy-minio-tenant-helm
|
||||
/operations/install-deploy-manage/deploy-minio-tenant-helm
|
||||
|
@ -1,226 +0,0 @@
|
||||
.. _minio-k8s-deploy-operator-kustomize:
|
||||
|
||||
==============================
|
||||
Deploy Operator With Kustomize
|
||||
==============================
|
||||
|
||||
.. default-domain:: minio
|
||||
|
||||
.. contents:: Table of Contents
|
||||
:local:
|
||||
:depth: 2
|
||||
|
||||
|
||||
Overview
|
||||
--------
|
||||
|
||||
`Kustomize <https://kubernetes.io/docs/tasks/manage-kubernetes-objects/kustomization>`__ is a YAML-based templating tool that allows you to define Kubernetes resources in a declarative and repeatable fashion.
|
||||
Kustomize is included with the :kube-docs:`kubectl <reference/kubectl>` command line tool.
|
||||
|
||||
The `default MinIO Operator Kustomize template <https://github.com/minio/operator/blob/master/kustomization.yaml>`__ provides a starting point for customizing configurations for your local environment.
|
||||
You can modify the default Kustomization file or apply your own `patches <https://datatracker.ietf.org/doc/html/rfc6902>`__ to customize the Operator deployment for your Kubernetes cluster.
|
||||
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
Installing Operator with Kustomize requires the following prerequisites:
|
||||
|
||||
* An existing Kubernetes cluster, v1.21 or later.
|
||||
* A local ``kubectl`` installation with the same version as the cluster.
|
||||
* Access to run ``kubectl`` commands on the cluster from your local host.
|
||||
|
||||
For more about Operator installation requirements, including TLS certificates, see the :ref:`Operator deployment prerequisites <minio-operator-prerequisites>`.
|
||||
|
||||
This procedure assumes familiarity with the referenced Kubernetes concepts and utilities.
|
||||
While this documentation may provide guidance for configuring or deploying Kubernetes-related resources on a best-effort basis, it is not a replacement for the official :kube-docs:`Kubernetes Documentation <>`.
|
||||
|
||||
.. _minio-k8s-deploy-operator-kustomize-repo:
|
||||
|
||||
Install the MinIO Operator using Kustomize
|
||||
------------------------------------------
|
||||
|
||||
The following procedure uses ``kubectl -k`` to install the Operator from the MinIO Operator GitHub repository.
|
||||
``kubectl -k`` and ``kubectl --kustomize`` are aliases that perform the same command.
|
||||
|
||||
.. important::
|
||||
|
||||
If you use Kustomize to install the Operator, you must use Kustomize to manage or update that installation.
|
||||
Do not use ``kubectl krew``, a Helm chart, or similar methods to manage or update the MinIO Operator installation.
|
||||
|
||||
#. Install the latest version of Operator
|
||||
|
||||
.. code-block:: shell
|
||||
:class: copyable
|
||||
:substitutions:
|
||||
|
||||
kubectl apply -k "github.com/minio/operator?ref=v|operator-version-stable|"
|
||||
|
||||
The output resembles the following:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
namespace/minio-operator created
|
||||
customresourcedefinition.apiextensions.k8s.io/miniojobs.job.min.io created
|
||||
customresourcedefinition.apiextensions.k8s.io/policybindings.sts.min.io created
|
||||
customresourcedefinition.apiextensions.k8s.io/tenants.minio.min.io created
|
||||
serviceaccount/console-sa created
|
||||
serviceaccount/minio-operator created
|
||||
clusterrole.rbac.authorization.k8s.io/console-sa-role created
|
||||
clusterrole.rbac.authorization.k8s.io/minio-operator-role created
|
||||
clusterrolebinding.rbac.authorization.k8s.io/console-sa-binding created
|
||||
clusterrolebinding.rbac.authorization.k8s.io/minio-operator-binding created
|
||||
configmap/console-env created
|
||||
secret/console-sa-secret created
|
||||
service/console created
|
||||
service/operator created
|
||||
service/sts created
|
||||
deployment.apps/console created
|
||||
deployment.apps/minio-operator created
|
||||
|
||||
#. Verify the Operator pods are running:
|
||||
|
||||
.. code-block:: shell
|
||||
:class: copyable
|
||||
|
||||
kubectl get pods -n minio-operator
|
||||
|
||||
The output resembles the following:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
console-6b6cf8946c-9cj25 1/1 Running 0 99s
|
||||
minio-operator-69fd675557-lsrqg 1/1 Running 0 99s
|
||||
|
||||
In this example, the ``minio-operator`` pod is MinIO Operator and the ``console`` pod is the Operator Console.
|
||||
|
||||
You can modify your Operator deplyoment by applying kubectl patches.
|
||||
You can find examples for common configurations in the `Operator GitHub repository <https://github.com/minio/operator/tree/master/examples/kustomization>`__.
|
||||
|
||||
#. *(Optional)* Configure access to the Operator Console service
|
||||
|
||||
The Operator Console service does not automatically bind or expose itself for external access on the Kubernetes cluster.
|
||||
You must instead configure a network control plane component, such as a load balancer or ingress, to grant that external access.
|
||||
|
||||
For testing purposes or short-term access, expose the Operator Console service through a NodePort using the following patch:
|
||||
|
||||
.. code-block:: shell
|
||||
:class: copyable
|
||||
|
||||
kubectl patch service -n minio-operator console -p '
|
||||
{
|
||||
"spec": {
|
||||
"ports": [
|
||||
{
|
||||
"name": "http",
|
||||
"port": 9090,
|
||||
"protocol": "TCP",
|
||||
"targetPort": 9090,
|
||||
"nodePort": 30090
|
||||
},
|
||||
{
|
||||
"name": "https",
|
||||
"port": 9443,
|
||||
"protocol": "TCP",
|
||||
"targetPort": 9443,
|
||||
"nodePort": 30433
|
||||
}
|
||||
],
|
||||
"type": "NodePort"
|
||||
}
|
||||
}'
|
||||
|
||||
You can now access the service through port ``30433`` on any of your Kubernetes worker nodes.
|
||||
|
||||
#. Verify the Operator installation
|
||||
|
||||
Check the contents of the specified namespace (``minio-operator``) to ensure all pods and services have started successfully.
|
||||
|
||||
.. code-block:: shell
|
||||
:class: copyable
|
||||
|
||||
kubectl get all -n minio-operator
|
||||
|
||||
The response should resemble the following:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
pod/console-68d955874d-vxlzm 1/1 Running 0 25h
|
||||
pod/minio-operator-699f797b8b-th5bk 1/1 Running 0 25h
|
||||
pod/minio-operator-699f797b8b-nkrn9 1/1 Running 0 25h
|
||||
|
||||
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
|
||||
service/console ClusterIP 10.43.195.224 <none> 9090/TCP,9443/TCP 25h
|
||||
service/operator ClusterIP 10.43.44.204 <none> 4221/TCP 25h
|
||||
service/sts ClusterIP 10.43.70.4 <none> 4223/TCP 25h
|
||||
|
||||
NAME READY UP-TO-DATE AVAILABLE AGE
|
||||
deployment.apps/console 1/1 1 1 25h
|
||||
deployment.apps/minio-operator 2/2 2 2 25h
|
||||
|
||||
NAME DESIRED CURRENT READY AGE
|
||||
replicaset.apps/console-68d955874d 1 1 1 25h
|
||||
replicaset.apps/minio-operator-699f797b8b 2 2 2 25h
|
||||
|
||||
|
||||
#. Retrieve the Operator Console JWT for login
|
||||
|
||||
.. code-block:: shell
|
||||
:class: copyable
|
||||
|
||||
kubectl apply -f - <<EOF
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: console-sa-secret
|
||||
namespace: minio-operator
|
||||
annotations:
|
||||
kubernetes.io/service-account.name: console-sa
|
||||
type: kubernetes.io/service-account-token
|
||||
EOF
|
||||
SA_TOKEN=$(kubectl -n minio-operator get secret console-sa-secret -o jsonpath="{.data.token}" | base64 --decode)
|
||||
echo $SA_TOKEN
|
||||
|
||||
|
||||
#. Log into the MinIO Operator Console
|
||||
|
||||
|
||||
.. tab-set::
|
||||
|
||||
.. tab-item:: NodePort
|
||||
:selected:
|
||||
|
||||
If you configured the service for access through a NodePort, specify the hostname of any worker node in the cluster with that port as ``HOSTNAME:NODEPORT`` to access the Console.
|
||||
|
||||
For example, a deployment configured with a NodePort of 30090 and the following ``InternalIP`` addresses can be accessed at ``http://172.18.0.5:30090``.
|
||||
|
||||
.. code-block:: shell
|
||||
:class: copyable
|
||||
|
||||
$ kubectl get nodes -o custom-columns=IP:.status.addresses[:]
|
||||
IP
|
||||
map[address:172.18.0.5 type:InternalIP],map[address:k3d-MINIO-agent-3 type:Hostname]
|
||||
map[address:172.18.0.6 type:InternalIP],map[address:k3d-MINIO-agent-2 type:Hostname]
|
||||
map[address:172.18.0.2 type:InternalIP],map[address:k3d-MINIO-server-0 type:Hostname]
|
||||
map[address:172.18.0.4 type:InternalIP],map[address:k3d-MINIO-agent-1 type:Hostname]
|
||||
map[address:172.18.0.3 type:InternalIP],map[address:k3d-MINIO-agent-0 type:Hostname]
|
||||
|
||||
.. tab-item:: Ingress or Load Balancer
|
||||
|
||||
If you configured the ``svc/console`` service for access through ingress or a cluster load balancer, you can access the Console using the configured hostname and port.
|
||||
|
||||
.. tab-item:: Port Forwarding
|
||||
|
||||
You can use ``kubectl port forward`` to temporary forward ports for the Console:
|
||||
|
||||
.. code-block:: shell
|
||||
:class: copyable
|
||||
|
||||
kubectl port-forward svc/console -n minio-operator 9090:9090
|
||||
|
||||
You can then use ``http://localhost:9090`` to access the MinIO Operator Console.
|
||||
|
||||
Once you access the Console, use the Console JWT to log in.
|
||||
You can now :ref:`deploy and manage MinIO Tenants using the Operator Console <deploy-minio-distributed>`.
|
@ -16,15 +16,14 @@ This procedure documents expanding the available storage capacity of an existing
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
MinIO Kubernetes Operator and Plugin
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
MinIO Kubernetes Operator
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
This procedure on this page *requires* a valid installation of the MinIO Kubernetes Operator and assumes the local host has a matching installation of the MinIO Kubernetes Operator.
|
||||
This procedure assumes the latest stable Operator and Plugin version, |operator-version-stable|.
|
||||
This procedure assumes the latest stable Operator, version |operator-version-stable|.
|
||||
|
||||
See :ref:`deploy-operator-kubernetes` for complete documentation on deploying the MinIO Operator.
|
||||
|
||||
.. include:: /includes/k8s/install-minio-kubectl-plugin.rst
|
||||
|
||||
Available Worker Nodes
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -56,85 +55,44 @@ Persistent Volumes
|
||||
MinIO strongly recommends using SSD-backed EBS volumes for best performance.
|
||||
For more information on EBS resources, see `EBS Volume Types <https://aws.amazon.com/ebs/volume-types/>`__.
|
||||
|
||||
Procedure (CLI)
|
||||
---------------
|
||||
Procedure (Operator Console)
|
||||
----------------------------
|
||||
|
||||
The MinIO Operator Console supports expanding a MinIO Tenant by adding additional pools.
|
||||
|
||||
|
||||
1) Expand the MinIO Tenant
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Use the :mc-cmd:`kubectl minio tenant expand` command to create the MinIO
|
||||
Tenant.
|
||||
#. From the Operator Console view, select the Tenant to open the summary view, then select :guilabel:`Pools`.
|
||||
Select :guilabel:`Expand Tenant`.
|
||||
|
||||
The following example expands a MinIO Tenant with a Pool consisting of
|
||||
4 Nodes with 4 locally-attached drives of 1Ti each:
|
||||
#. Specify the following information for the new pool:
|
||||
|
||||
.. code-block:: shell
|
||||
:class: copyable
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 30 70
|
||||
:width: 100%
|
||||
|
||||
kubectl minio tenant expand minio-tenant-1 \
|
||||
--servers 4 \
|
||||
--volumes 16 \
|
||||
--capacity 16Ti \
|
||||
--storage-class local-storage \
|
||||
--namespace minio-tenant-1
|
||||
* - Field
|
||||
- Description
|
||||
|
||||
The following table explains each argument specified to the command:
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 30 70
|
||||
:width: 100%
|
||||
|
||||
* - Argument
|
||||
- Description
|
||||
|
||||
* - :mc-cmd:`minio-tenant-1 <kubectl minio tenant expand TENANT_NAME>`
|
||||
- The name of the MinIO Tenant which the command expands with the new pool.
|
||||
|
||||
* - :mc-cmd:`~kubectl minio tenant expand --servers`
|
||||
- The number of ``minio`` servers to deploy in the new Tenant Pool across
|
||||
the Kubernetes cluster.
|
||||
|
||||
* - :mc-cmd:`~kubectl minio tenant expand --volumes`
|
||||
- The number of volumes in the new Tenant Pool. :mc:`kubectl minio`
|
||||
determines the number of volumes per server by dividing ``volumes`` by
|
||||
``servers``.
|
||||
|
||||
* - :mc-cmd:`~kubectl minio tenant expand --capacity`
|
||||
- The total capacity of the Tenant Pool. :mc:`kubectl minio` determines the
|
||||
capacity of each volume by dividing ``capacity`` by ``volumes``.
|
||||
|
||||
* - :mc-cmd:`~kubectl minio tenant expand --storage-class`
|
||||
- .. cond:: not eks
|
||||
* - Number of Servers
|
||||
- The number of servers to deploy in the new Tenant Pool across the Kubernetes cluster.
|
||||
|
||||
Specify the Kubernetes Storage Class the Operator uses when generating Persistent Volume Claims for the Tenant.
|
||||
* - Volume Size
|
||||
- The capacity of each volume in the new Tenant Pool.
|
||||
|
||||
* - Volumes per Server
|
||||
- The number of volumes for each server in the new Tenant Pool.
|
||||
|
||||
Ensure the specified storage class has sufficient available Persistent Volume resources to match each generated Persistent Volume Claim.
|
||||
* - Storage Class
|
||||
- Specify the Kubernetes Storage Class the Operator uses when generating Persistent Volume Claims for the Tenant.
|
||||
|
||||
#. Select :guilabel:`Create`.
|
||||
|
||||
.. cond:: eks
|
||||
|
||||
Specify the EBS volume type to use for this tenant.
|
||||
The following list is populated based on the AWS EBS CSI driver list of supported :github:`EBS volume types <kubernetes-sigs/aws-ebs-csi-driver/blob/master/docs/parameters.md>`:
|
||||
|
||||
- ``gp3`` (General Purpose SSD)
|
||||
- ``gp2`` (General Purpose SSD)
|
||||
- ``io2`` (Provisioned IOPS SSD)
|
||||
- ``io1`` (Provisioned IOPS SSD)
|
||||
- ``st1`` (Throughput Optimized HDD)
|
||||
- ``sc1`` (Cold Storage HDD)
|
||||
|
||||
* - :mc-cmd:`~kubectl minio tenant expand --namespace`
|
||||
- The Kubernetes namespace of the existing MinIO Tenant to which to add
|
||||
the new Tenant pool.
|
||||
|
||||
2) Validate the Expanded MinIO Tenant
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Use the :mc-cmd:`kubectl minio tenant info` command to return a summary of
|
||||
the MinIO Tenant, including the new Pool:
|
||||
|
||||
.. code-block:: shell
|
||||
:class: copyable
|
||||
|
||||
kubectl minio tenant info minio-tenant-1 \
|
||||
--namespace minio-tenant-1
|
||||
In the :guilabel:`Pools` tab, select the new Pool to confirm its details.
|
||||
|
@ -15,7 +15,8 @@ managing MinIO Tenants on Kubernetes infrastructure. Installing the
|
||||
MinIO :ref:`Kubernetes Operator <deploy-operator-kubernetes>` automatically
|
||||
installs and configures the Operator Console.
|
||||
|
||||
.. image:: /images/k8s/operator-dashboard.png
|
||||
.. screenshot temporarily removed
|
||||
.. image:: /images/k8s/operator-dashboard.png
|
||||
:align: center
|
||||
:width: 70%
|
||||
:class: no-scaled-link
|
||||
@ -35,7 +36,8 @@ Tenant Management
|
||||
|
||||
The MinIO Operator Console supports deploying, managing, and monitoring MinIO Tenants on the Kubernetes cluster.
|
||||
|
||||
.. image:: /images/k8s/operator-dashboard.png
|
||||
.. screenshot temporarily removed
|
||||
.. image:: /images/k8s/operator-dashboard.png
|
||||
:align: center
|
||||
:width: 70%
|
||||
:class: no-scaled-link
|
||||
@ -46,7 +48,6 @@ You can :ref:`deploy a MinIO Tenant <minio-k8s-deploy-minio-tenant>` through the
|
||||
The Operator Console automatically detects MinIO Tenants deployed on the cluster when provisioned through:
|
||||
|
||||
- Operator Console
|
||||
- :ref:`MinIO Kubernetes Plugin <minio-k8s-deploy-minio-tenant-commandline>`
|
||||
- Helm
|
||||
- Kustomize
|
||||
|
||||
@ -68,7 +69,8 @@ Tenant Registration
|
||||
|
||||
|subnet| users relying on the commercial license should register the MinIO tenants to their SUBNET account, which can be done through the Operator Console.
|
||||
|
||||
.. image:: /images/k8s/operator-console-register.png
|
||||
.. screenshot temporarily removed
|
||||
.. image:: /images/k8s/operator-console-register.png
|
||||
:align: center
|
||||
:width: 70%
|
||||
:class: no-scaled-link
|
||||
@ -112,4 +114,4 @@ To review which license you are using and the features available through differe
|
||||
MinIO supports two licenses: `AGPLv3 Open Source <https://opensource.org/licenses/AGPL-3.0>`__ or a `MinIO Commercial License <https://min.io/pricing?ref=docs>`__.
|
||||
Subscribers to |SUBNET| use MinIO under a commercial license.
|
||||
|
||||
You can also :guilabel:`Subscribe` from the License screen.
|
||||
You can also :guilabel:`Subscribe` from the License screen.
|
||||
|
@ -12,7 +12,8 @@ Modify a MinIO Tenant
|
||||
|
||||
The procedures on this page use the :ref:`MinIO Operator Console <minio-operator-console>` for modifying an existing tenant.
|
||||
|
||||
.. image:: /images/k8s/operator-manage-tenant.png
|
||||
.. screenshot temporarily removed
|
||||
.. image:: /images/k8s/operator-manage-tenant.png
|
||||
:align: center
|
||||
:width: 70%
|
||||
:class: no-scaled-link
|
||||
|
@ -234,14 +234,16 @@ Configure Site Replication
|
||||
|
||||
#. Select **Settings**, then **Site Replication**
|
||||
|
||||
.. image:: /images/minio-console/console-settings-site-replication.png
|
||||
.. screenshot temporarily removed
|
||||
.. image:: /images/minio-console/console-settings-site-replication.png
|
||||
:width: 400px
|
||||
:alt: MinIO Console menu with the Settings heading expanded to show Site Replication
|
||||
:align: center
|
||||
|
||||
#. Select :guilabel:`Add Sites +`
|
||||
|
||||
.. image:: /images/minio-console/console-settings-site-replication-add.png
|
||||
.. screenshot temporarily removed
|
||||
.. image:: /images/minio-console/console-settings-site-replication-add.png
|
||||
:width: 600px
|
||||
:alt: MinIO Console's Add Sites for Replication screen
|
||||
:align: center
|
||||
@ -390,14 +392,16 @@ The new site must meet the following requirements:
|
||||
|
||||
#. Select **Settings**, then **Site Replication**
|
||||
|
||||
.. image:: /images/minio-console/console-site-replication-list-of-sites.png
|
||||
.. screenshot temporarily removed
|
||||
.. image:: /images/minio-console/console-site-replication-list-of-sites.png
|
||||
:width: 600px
|
||||
:alt: MinIO Console Site Replication with three sites listed
|
||||
:align: center
|
||||
|
||||
#. Select :guilabel:`Add Sites +`
|
||||
|
||||
.. image:: /images/minio-console/console-settings-site-replication-add.png
|
||||
.. screenshot temporarily removed
|
||||
.. image:: /images/minio-console/console-settings-site-replication-add.png
|
||||
:width: 600px
|
||||
:alt: MinIO Console's Add Sites for Replication screen
|
||||
:align: center
|
||||
@ -481,7 +485,8 @@ If a peer site changes its hostname, you can modify the replication configuratio
|
||||
|
||||
#. Select the pencil **Edit** icon to the side of the site to update
|
||||
|
||||
.. image:: /images/minio-console/console-site-replication-edit-button.png
|
||||
.. screenshot temporarily removed
|
||||
.. image:: /images/minio-console/console-site-replication-edit-button.png
|
||||
:width: 600px
|
||||
:alt: MinIO Console's List of Replicated Sites screen with the edit buttons highlighted
|
||||
:align: center
|
||||
@ -494,7 +499,8 @@ If a peer site changes its hostname, you can modify the replication configuratio
|
||||
:start-after: start-mc-admin-replicate-load-balancing
|
||||
:end-before: end-mc-admin-replicate-load-balancing
|
||||
|
||||
.. image:: /images/minio-console/console-settings-site-replication-edit-endpoint.png
|
||||
.. screenshot temporarily removed
|
||||
.. image:: /images/minio-console/console-settings-site-replication-edit-endpoint.png
|
||||
:width: 600px
|
||||
:alt: Example of the MinIO Console's Edit Replication Endpoint screen
|
||||
:align: center
|
||||
@ -544,14 +550,16 @@ You can re-add the site at a later date, but you must first completely wipe buck
|
||||
|
||||
#. Select the trash can Delete icon to the side of the site to update
|
||||
|
||||
.. image:: /images/minio-console/console-site-replication-delete-button.png
|
||||
.. screenshot temporarily removed
|
||||
.. image:: /images/minio-console/console-site-replication-delete-button.png
|
||||
:width: 600px
|
||||
:alt: MinIO Console's List of Replicated Sites screen with the delete buttons highlighted
|
||||
:align: center
|
||||
|
||||
#. Confirm the site deletion at the prompt by selecting **Delete**
|
||||
|
||||
.. image:: /images/minio-console/console-settings-site-replication-confirm-delete.png
|
||||
.. screenshot temporarily removed
|
||||
.. image:: /images/minio-console/console-settings-site-replication-confirm-delete.png
|
||||
:width: 600px
|
||||
:alt: Example of the MinIO Console's Edit Replication Endpoint screen
|
||||
:align: center
|
||||
@ -595,7 +603,8 @@ The summary information includes the number of **Synced** and **Failed** items f
|
||||
|
||||
#. Select :guilabel:`Replication Status`
|
||||
|
||||
.. image:: /images/minio-console/console-settings-site-replication-status-summary.png
|
||||
.. screenshot temporarily removed
|
||||
.. image:: /images/minio-console/console-settings-site-replication-status-summary.png
|
||||
:width: 600px
|
||||
:alt: MinIO Console's Replication status from all Sites screen
|
||||
:align: center
|
||||
@ -606,7 +615,8 @@ The summary information includes the number of **Synced** and **Failed** items f
|
||||
|
||||
Specify the name of the specific Bucket, Group, Policy, or User to view
|
||||
|
||||
.. image:: /images/minio-console/console-settings-site-replication-status-item.png
|
||||
.. screenshot temporarily removed
|
||||
.. image:: /images/minio-console/console-settings-site-replication-status-item.png
|
||||
:width: 600px
|
||||
:alt: Example of replication status for a particular bucket item
|
||||
:align: center
|
||||
|
@ -0,0 +1,327 @@
|
||||
:orphan:
|
||||
|
||||
.. _minio-k8s-upgrade-minio-operator-to-4.5.8:
|
||||
|
||||
================================
|
||||
Upgrade MinIO Operator to v4.5.8
|
||||
================================
|
||||
|
||||
.. default-domain:: minio
|
||||
|
||||
.. contents:: Table of Contents
|
||||
:local:
|
||||
:depth: 1
|
||||
|
||||
|
||||
To upgrade from Operator to |operator-version-stable| from version 4.5.7 or earlier, you must first upgrade to version 4.5.8.
|
||||
Depending on your current version, you may need to do one or more intermediate upgrades to reach v4.5.8.
|
||||
|
||||
The following table lists the upgrade paths for older versions of MinIO Operator:
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 40 40
|
||||
:width: 100%
|
||||
|
||||
* - Current Version
|
||||
- Supported Upgrade Target
|
||||
|
||||
* - 4.2.3 to 4.5.7
|
||||
- 4.5.8
|
||||
|
||||
* - 4.0.0 through 4.2.2
|
||||
- 4.2.3
|
||||
|
||||
* - 3.X.X
|
||||
- 4.2.2
|
||||
|
||||
|
||||
Upgrade MinIO Operator 4.2.3 through 4.5.7 to 4.5.8
|
||||
---------------------------------------------------
|
||||
|
||||
Prerequisites
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
This procedure requires the following:
|
||||
|
||||
- You have an existing MinIO Operator deployment running 4.2.3 through 4.5.7
|
||||
- Your Kubernetes cluster runs 1.19.0 or later
|
||||
- Your local host has ``kubectl`` installed and configured with access to the Kubernetes cluster
|
||||
|
||||
Procedure
|
||||
~~~~~~~~~
|
||||
|
||||
This procedure upgrades MinIO Operator release 4.2.3 through 4.5.7 to release 4.5.8.
|
||||
You can then upgrade from release 4.5.8 to |operator-version-stable|.
|
||||
|
||||
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 <NAMESPACE>``.
|
||||
|
||||
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 ``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.
|
||||
|
||||
.. include:: /includes/common/common-k8s-connect-operator-console.rst
|
||||
|
||||
.. _minio-k8s-upgrade-minio-operator-4.2.2-procedure:
|
||||
|
||||
Upgrade MinIO Operator 4.0.0 through 4.2.2 to 4.2.3
|
||||
---------------------------------------------------
|
||||
|
||||
Prerequisites
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
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
|
||||
|
||||
Procedure
|
||||
~~~~~~~~~
|
||||
|
||||
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|.
|
||||
|
||||
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 <TENANT-NAME> -n <TENANT-NAMESPACE> -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:: yaml
|
||||
: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 <TENANT-NAME> -n <TENANT-NAMESPACE>
|
||||
# Modify the securityContext as needed
|
||||
|
||||
See :kube-docs:`Pod Security Standards <concepts/security/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
|
||||
----------------------------------------------------
|
||||
|
||||
Prerequisites
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
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
|
||||
|
||||
Procedure
|
||||
~~~~~~~~~
|
||||
|
||||
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|.
|
||||
|
||||
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 <TENANT-NAME> -n <TENANT-NAMESPACE> -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 <TENANT-NAME> -n <TENANT-NAMESPACE>
|
||||
|
||||
#. 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|.
|
@ -15,27 +15,8 @@ You can upgrade the MinIO Operator at any time without impacting your managed Mi
|
||||
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.5.8 or later
|
||||
- |operator-version-stable|
|
||||
|
||||
* - 4.2.3 to 4.5.7
|
||||
- 4.5.8
|
||||
|
||||
* - 4.0.0 through 4.2.2
|
||||
- 4.2.3
|
||||
|
||||
* - 3.X.X
|
||||
- 4.2.2
|
||||
This page describes how to upgrade from Operator 4.5.8 or later to |operator-version-stable|.
|
||||
To upgrade from Operator 4.5.7 or earlier, see :ref:`Upgrade MinIO Operator to v4.5.8 <minio-k8s-upgrade-minio-operator-to-4.5.8>`.
|
||||
|
||||
.. _minio-k8s-upgrade-minio-operator-procedure:
|
||||
|
||||
@ -48,7 +29,7 @@ Upgrade MinIO Operator 4.5.8 and Later to |operator-version-stable|
|
||||
This procedure requires the following:
|
||||
|
||||
- You have an existing MinIO Operator deployment running 4.5.8 or later
|
||||
- Your Kubernetes cluster runs 1.19.0 or later
|
||||
- Your Kubernetes cluster runs 1.21.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.5.8 or later release to |operator-version-stable|.
|
||||
@ -62,7 +43,7 @@ The following changes apply for Operator v5.0.0 or later:
|
||||
- The ``.spec.credsSecret`` field is replaced by the ``.spec.configuration`` field.
|
||||
|
||||
The ``.spec.credsSecret`` should hold all the environment variables for the MinIO deployment that contain sensitive information and should not show in ``.spec.env``.
|
||||
This change impacts the Tenant :abbr:`CRD <CustomResourceDefinition>` and only impacts users editing a tenant YAML directly, such as through Helm or Kustomize.
|
||||
This change impacts the Tenant :abbr:`CRD (CustomResourceDefinition)` and only impacts users editing a tenant YAML directly, such as through Helm or Kustomize.
|
||||
- Both the **Log Search API** (``.spec.log``) and **Prometheus** (``.spec.prometheus``) deployments have been removed.
|
||||
However, existing deployments are left running as standalone deployments / statefulsets with no connection to the Tenant CR.
|
||||
Deleting the Tenant :abbr:`CRD (Custom Resource Definition)` does **not** cascade to the log or Prometheus deployments.
|
||||
@ -77,7 +58,7 @@ Log Search and Prometheus
|
||||
The latest releases of Operator remove Log Search and Prometheus from included Operator tools.
|
||||
The following steps back up the existing yaml files, perform some clean up, and provide steps to continue using either or both of these functions.
|
||||
|
||||
1. Back up Prometheus and Log Search yaml files.
|
||||
#. Back up Prometheus and Log Search yaml files.
|
||||
|
||||
.. code-block:: shell
|
||||
:class: copyable
|
||||
@ -98,9 +79,9 @@ The following steps back up the existing yaml files, perform some clean up, and
|
||||
|
||||
Repeat for each tenant.
|
||||
|
||||
2. Remove ``.metadata.ownerReferences`` for all backed up files for all tenants.
|
||||
#. Remove ``.metadata.ownerReferences`` for all backed up files for all tenants.
|
||||
|
||||
3. *(Optional)* To continue using Log Search API and Prometheus, add the following variables to the tenant's yaml specification file under ``.spec.env``
|
||||
#. *(Optional)* To continue using Log Search API and Prometheus, add the following variables to the tenant's yaml specification file under ``.spec.env``
|
||||
|
||||
Use the following command to edit a tenant:
|
||||
|
||||
@ -136,21 +117,22 @@ Upgrade Operator to |operator-version-stable|
|
||||
|
||||
.. tab-set::
|
||||
|
||||
.. tab-item:: Upgrade using MinIO Kubernetes Plugin
|
||||
.. tab-item:: Upgrade using Kustomize
|
||||
|
||||
The following procedure upgrades the MinIO Operator using the :mc:`kubectl minio <kubectl minio init>` plugin.
|
||||
The following procedure upgrades the MinIO Operator using Kustomize.
|
||||
|
||||
For Operator versions 4.5.8 to 5.0.14 installed with the MinIO Kubernetes Plugin, follow the Kustomize instructions to upgrade to 5.0.15 or later.
|
||||
If you installed the Operator using :ref:`Helm <minio-k8s-deploy-operator-helm>`, use the :guilabel:`Upgrade using Helm` instructions instead.
|
||||
|
||||
1. *(Optional)* Update each MinIO Tenant to the latest stable MinIO Version.
|
||||
|
||||
#. *(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.
|
||||
|
||||
2. Verify the existing Operator installation.
|
||||
#. 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 <NAMESPACE>``.
|
||||
|
||||
You can verify the currently installed Operator version by retrieving the object specification for an operator pod in the namespace.
|
||||
@ -160,9 +142,9 @@ Upgrade Operator to |operator-version-stable|
|
||||
: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
|
||||
:substitutions:
|
||||
@ -179,41 +161,74 @@ Upgrade Operator to |operator-version-stable|
|
||||
"name": "minio-operator"
|
||||
}
|
||||
|
||||
3. Download the latest stable version of the MinIO Kubernetes Plugin
|
||||
If your local host does not have the ``jq`` utility installed, you can run the first part of the command and locate the ``spec.containers`` section of the output.
|
||||
|
||||
.. include:: /includes/k8s/install-minio-kubectl-plugin.rst
|
||||
#. Upgrade Operator with Kustomize
|
||||
|
||||
4. Run the initialization command to upgrade the Operator
|
||||
|
||||
Use the :mc-cmd:`kubectl minio init` command to upgrade the existing MinIO Operator installation:
|
||||
The following command upgrades Operator to version |operator-version-stable|:
|
||||
|
||||
.. code-block:: shell
|
||||
:class: copyable
|
||||
|
||||
kubectl minio init
|
||||
kubectl apply -k github.com/minio/operator
|
||||
|
||||
5. Validate the Operator upgrade
|
||||
In the sample output below, ``configured`` indicates where a new change was applied from the updated CRD:
|
||||
|
||||
You can check the Operator version by reviewing the object specification for an Operator Pod using a previous step.
|
||||
.. code-block:: shell
|
||||
|
||||
namespace/minio-operator configured
|
||||
customresourcedefinition.apiextensions.k8s.io/miniojobs.job.min.io configured
|
||||
customresourcedefinition.apiextensions.k8s.io/policybindings.sts.min.io configured
|
||||
customresourcedefinition.apiextensions.k8s.io/tenants.minio.min.io configured
|
||||
serviceaccount/console-sa unchanged
|
||||
serviceaccount/minio-operator unchanged
|
||||
clusterrole.rbac.authorization.k8s.io/console-sa-role unchanged
|
||||
clusterrole.rbac.authorization.k8s.io/minio-operator-role unchanged
|
||||
clusterrolebinding.rbac.authorization.k8s.io/console-sa-binding unchanged
|
||||
clusterrolebinding.rbac.authorization.k8s.io/minio-operator-binding unchanged
|
||||
configmap/console-env unchanged
|
||||
secret/console-sa-secret configured
|
||||
service/console unchanged
|
||||
service/operator unchanged
|
||||
service/sts unchanged
|
||||
deployment.apps/console configured
|
||||
deployment.apps/minio-operator configured
|
||||
|
||||
|
||||
#. Validate the Operator upgrade
|
||||
|
||||
You can check the new Operator version with the same ``kubectl`` command used previously:
|
||||
|
||||
.. code-block:: shell
|
||||
:class: copyable
|
||||
|
||||
kubectl get pod -l 'name=minio-operator' -n minio-operator -o json | jq '.items[0].spec.containers'
|
||||
|
||||
#. *(Optional)* Connect to the Operator Console
|
||||
|
||||
.. include:: /includes/common/common-k8s-connect-operator-console-no-plugin.rst
|
||||
|
||||
#. Retrieve the Operator Console JWT for login
|
||||
|
||||
.. include:: /includes/common/common-k8s-operator-console-jwt.rst
|
||||
|
||||
.. include:: /includes/common/common-k8s-connect-operator-console.rst
|
||||
|
||||
.. tab-item:: Upgrade using Helm
|
||||
|
||||
The following procedure upgrades an existing MinIO Operator Installation using Helm.
|
||||
|
||||
If you installed the Operator using :ref:`the MinIO Kubernetes Plugin <deploy-operator-kubernetes>`, use the :guilabel:`Upgrade using MinIO Kubernetes Plugin` instructions instead.
|
||||
If you installed the Operator using Kustomize, use the :guilabel:`Upgrade using Kustomize` instructions instead.
|
||||
|
||||
#. *(Optional)* Update each MinIO Tenant to the latest stable MinIO Version.
|
||||
|
||||
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.
|
||||
#. 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 <NAMESPACE>``.
|
||||
|
||||
Use the ``helm list`` command to view the installed charts in the namespace:
|
||||
@ -234,7 +249,7 @@ Upgrade Operator to |operator-version-stable|
|
||||
#. Update the Operator Repository
|
||||
|
||||
Use ``helm repo update minio-operator`` to update the MinIO Operator repo.
|
||||
If you set a different alias for the MinIO Operator repository, specify that to the command.
|
||||
If you set a different alias for the MinIO Operator repository, specify that in the command instead of ``minio-operator``.
|
||||
You can use ``helm repo list`` to review your installed repositories.
|
||||
|
||||
Use ``helm search`` to check the latest available chart version after updating the Operator Repo:
|
||||
@ -250,7 +265,7 @@ Upgrade Operator to |operator-version-stable|
|
||||
:class: copyable
|
||||
:substitutions:
|
||||
|
||||
NAME CHART VERSION APP VERSION DESCRIPTION
|
||||
NAME CHART VERSION APP VERSION DESCRIPTION
|
||||
minio-operator/minio-operator 4.3.7 v4.3.7 A Helm chart for MinIO Operator
|
||||
minio-operator/operator |operator-version-stable| v|operator-version-stable| A Helm chart for MinIO Operator
|
||||
minio-operator/tenant |operator-version-stable| v|operator-version-stable| A Helm chart for MinIO Operator
|
||||
@ -267,7 +282,7 @@ Upgrade Operator to |operator-version-stable|
|
||||
helm upgrade -n minio-operator \
|
||||
operator minio-operator/operator
|
||||
|
||||
If you installed the MinIO Operator to a different namespace, specify that to the ``-n`` argument.
|
||||
If you installed the MinIO Operator to a different namespace, specify that in the ``-n`` argument.
|
||||
|
||||
If you used a different installation name from ``operator``, replace the value above with the installation name.
|
||||
|
||||
@ -275,297 +290,8 @@ Upgrade Operator to |operator-version-stable|
|
||||
|
||||
#. Validate the Operator upgrade
|
||||
|
||||
You can check the Operator version by reviewing the object specification for an Operator Pod using a previous step.
|
||||
.. include:: /includes/common/common-k8s-connect-operator-console-no-plugin.rst
|
||||
|
||||
.. include:: /includes/common/common-k8s-connect-operator-console.rst
|
||||
#. Retrieve the Operator Console JWT for login
|
||||
|
||||
|
||||
Upgrade MinIO Operator 4.2.3 through 4.5.7 to 4.5.8
|
||||
---------------------------------------------------
|
||||
|
||||
Prerequisites
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
This procedure requires the following:
|
||||
|
||||
- You have an existing MinIO Operator deployment running 4.2.3 through 4.5.7
|
||||
- Your Kubernetes cluster runs 1.19.0 or later
|
||||
- Your local host has ``kubectl`` installed and configured with access to the Kubernetes cluster
|
||||
|
||||
Procedure
|
||||
~~~~~~~~~
|
||||
|
||||
This procedure upgrades MinIO Operator release 4.2.3 through 4.5.7 to release 4.5.8.
|
||||
You can then upgrade from release 4.5.8 to |operator-version-stable|.
|
||||
|
||||
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 <NAMESPACE>``.
|
||||
|
||||
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.
|
||||
|
||||
.. include:: /includes/common/common-k8s-connect-operator-console.rst
|
||||
|
||||
.. _minio-k8s-upgrade-minio-operator-4.2.2-procedure:
|
||||
|
||||
Upgrade MinIO Operator 4.0.0 through 4.2.2 to 4.2.3
|
||||
---------------------------------------------------
|
||||
|
||||
Prerequisites
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
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
|
||||
|
||||
Procedure
|
||||
~~~~~~~~~
|
||||
|
||||
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|.
|
||||
|
||||
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 <TENANT-NAME> -n <TENANT-NAMESPACE> -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:: yaml
|
||||
: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 <TENANT-NAME> -n <TENANT-NAMESPACE>
|
||||
# Modify the securityContext as needed
|
||||
|
||||
See :kube-docs:`Pod Security Standards <concepts/security/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
|
||||
----------------------------------------------------
|
||||
|
||||
Prerequisites
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
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
|
||||
|
||||
Procedure
|
||||
~~~~~~~~~
|
||||
|
||||
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|.
|
||||
|
||||
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 <TENANT-NAME> -n <TENANT-NAMESPACE> -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 <TENANT-NAME> -n <TENANT-NAMESPACE>
|
||||
|
||||
#. 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|.
|
||||
.. include:: /includes/common/common-k8s-operator-console-jwt.rst
|
||||
|
@ -10,71 +10,127 @@ Upgrade a MinIO Tenant
|
||||
:local:
|
||||
:depth: 1
|
||||
|
||||
|
||||
The following procedures upgrade a single MinIO Tenant, using either Kustomize or Helm.
|
||||
MinIO recommends you test upgrades in a lower environment such as a Dev or QA Tenant, before upgrading production Tenants.
|
||||
|
||||
.. important::
|
||||
|
||||
For Tenants using a MinIO Image older than :minio-release:`RELEASE.2024-03-30T09-41-56Z` running with :ref:`AD/LDAP <minio-ldap-config-settings>` enabled, you **must** read through the release notes for :minio-release:`RELEASE.2024-04-18T19-09-19Z` before starting this procedure.
|
||||
You must take the extra steps documented in the linked release as part of the upgrade procedure.
|
||||
|
||||
.. _minio-upgrade-tenant-plugin:
|
||||
.. _minio-upgrade-tenant-kustomize:
|
||||
|
||||
Upgrade the Tenant using the MinIO Kubernetes Plugin
|
||||
----------------------------------------------------
|
||||
|
||||
The following procedure upgrades the MinIO Operator using the :mc:`kubectl minio tenant upgrade` command.
|
||||
Upgrade a Tenant using Kustomize
|
||||
--------------------------------
|
||||
|
||||
The following procedure upgrades a MinIO Tenant using Kustomize and the ``kubectl`` CLI.
|
||||
If you deployed the Tenant using :ref:`Helm <deploy-tenant-helm>`, use the :ref:`minio-upgrade-tenant-helm` procedure instead.
|
||||
|
||||
This procedure *requires* a valid installation of the MinIO Kubernetes Operator and assumes the local host has a matching installation of the MinIO Kubernetes Operator and plugin.
|
||||
This procedure assumes the latest stable Operator version |operator-version-stable|.
|
||||
To upgrade a Tenant with Kustomize:
|
||||
|
||||
.. include:: /includes/k8s/install-minio-kubectl-plugin.rst
|
||||
If the tenant was deployed with Operator Console, there are additional steps to create a base configuration file before upgrading.
|
||||
|
||||
See :ref:`deploy-operator-kubernetes` for complete documentation on deploying the MinIO Operator.
|
||||
If the tenant was deployed with Kustomize, the base configuration is your existing ``kustomization`` files from the original tenant deployment.
|
||||
|
||||
.. important::
|
||||
Choose a tab below depending on how the tenant was deployed:
|
||||
|
||||
If you are upgrading the MinIO Operator, there may be additional changes to the tenant specs required.
|
||||
Refer to the :ref:`MinIO Operator Upgrade <minio-k8s-upgrade-minio-operator>` for specifics on any changes necessary to the tenant spec.
|
||||
The required changes vary based on the Operator version you are upgrading from and to.
|
||||
|
||||
If required changes are not made to the tenant before upgrading the Operator, your tenant may not be accessible after the upgrade.
|
||||
.. tab-set::
|
||||
|
||||
1) Validate the Active MinIO Version
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
.. tab-item:: Operator Console-Deployed Tenant
|
||||
:selected:
|
||||
|
||||
Use the :mc-cmd:`kubectl minio tenant info` command to return a summary of the MinIO Tenant, including the new Pool:
|
||||
1. Create the base configuration file:
|
||||
|
||||
a. In a convenient directory, save the current Tenant configuration to a file using ``kubectl get``:
|
||||
|
||||
.. code-block:: shell
|
||||
:class: copyable
|
||||
|
||||
kubectl get tenant/my-tenant -n my-tenant-ns -o yaml > my-tenant-base.yaml
|
||||
|
||||
Replace ``my-tenant`` and ``my-tenant-ns`` with the name and namespace of the Tenant to upgrade.
|
||||
|
||||
Edit the file to remove the following lines:
|
||||
|
||||
- ``creationTimestamp:``
|
||||
- ``resourceVersion:``
|
||||
- ``uid:``
|
||||
- ``selfLink:`` (if present)
|
||||
|
||||
For example, remove the highlighted lines:
|
||||
|
||||
.. code-block:: shell
|
||||
:emphasize-lines: 2, 6, 7
|
||||
|
||||
metadata:
|
||||
creationTimestamp: "2024-05-29T21:22:20Z"
|
||||
generation: 1
|
||||
name: my-tenant
|
||||
namespace: my-tenant-ns
|
||||
resourceVersion: "4699"
|
||||
uid: d5b8e468-3bed-4aa3-8ddb-dfe1ee0362da
|
||||
|
||||
b. In the same directory, create a ``kustomization.yaml`` file with contents resembling the following:
|
||||
|
||||
.. code-block:: shell
|
||||
:class: copyable
|
||||
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- my-tenant-base.yaml
|
||||
|
||||
patches:
|
||||
- path: upgrade-minio-tenant.yaml
|
||||
|
||||
If you used a different filename for the ``kubectl get`` output in the previous step, replace ``my-tenant-base.yaml`` with the name of that file.
|
||||
|
||||
.. tab-item:: Existing Kustomized-deployed Tenant
|
||||
|
||||
1. You can upgrade the tenant using the ``kustomization`` files from the original deployment as the base configuration.
|
||||
If you no longer have these files, follow the instructions in the Operator Console-Deployed Tenant tab.
|
||||
|
||||
2. Create a ``upgrade-minio-tenant.yaml`` file with contents resembling the following:
|
||||
|
||||
.. code-block:: shell
|
||||
:class: copyable
|
||||
:substitutions:
|
||||
|
||||
kubectl minio tenant info TENANT_NAME \
|
||||
--namespace TENANT_NAMESPACE
|
||||
apiVersion: minio.min.io/v2
|
||||
kind: Tenant
|
||||
|
||||
- Replace ``TENANT_NAME`` with the name of the Tenant.
|
||||
- Replace ``TENANT_NAMESPACE`` with the namespace of the Tenant.
|
||||
metadata:
|
||||
name: my-tenant
|
||||
namespace: my-tenant-ns
|
||||
|
||||
The output includes the version of the MinIO Server used by all Pods in the Tenant.
|
||||
spec:
|
||||
image: minio/minio:|minio-tag|
|
||||
|
||||
2) Upgrade the MinIO Tenant
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
This file instructs Kustomize to upgrade the tenant using the specified image.
|
||||
The name of this file, ``upgrade-minio-tenant.yaml``, must match the ``patches.path`` filename specified in the ``kustomization.yaml`` file created in the previous step.
|
||||
|
||||
Use the :mc-cmd:`kubectl minio tenant upgrade` command to upgrade the container image used by *all* MinIO Pods in the Tenant.
|
||||
MinIO upgrades *all* ``minio`` server processes at once.
|
||||
This may result in downtime until the upgrade process completes.
|
||||
Replace ``my-tenant`` and ``my-tenant-ns`` with the name and namespace of the Tenant to upgrade.
|
||||
Specify the MinIO version to upgrade to in ``image:``.
|
||||
|
||||
.. code-block:: shell
|
||||
:class: copyable
|
||||
Alternatively, you can update the base configuration directly, according to your local procedures.
|
||||
Refer to the :kube-docs:`Kustomize Documentation <tasks/manage-kubernetes-objects/kustomization>` for more information.
|
||||
|
||||
kubectl minio tenant upgrade TENANT_NAME \
|
||||
--image minio:minio:RELEASE:YYYY-MM-DDTHH-MM-SSZ \
|
||||
--namespace TENANT_NAMESPACE
|
||||
3. From the same directory as the above files, apply the updated configuration to the Tenant with ``kubectl apply``:
|
||||
|
||||
- Replace ``TENANT_NAME`` with the name of the Tenant.
|
||||
- Replace ``RELEASE:YYYY-MM-DDTHH-MM-SSZ`` with the specific release to use.
|
||||
Specify ``minio/minio`` to use the latest stable version of MinIO.
|
||||
- Replace ``TENANT_NAMESPACE`` with the namespace of the Tenant.
|
||||
.. code-block:: shell
|
||||
:class: copyable
|
||||
|
||||
kubectl apply -f ./
|
||||
|
||||
The output resembles the following:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
tenant.minio.min.io/my-tenant configured
|
||||
|
||||
See MinIO's `DockerHub Repository <https://hub.docker.com/r/minio/minio>`__ for a list of available release tags.
|
||||
|
||||
.. _minio-upgrade-tenant-helm:
|
||||
|
||||
@ -83,7 +139,7 @@ Upgrade the Tenant using the MinIO Helm Chart
|
||||
|
||||
This procedure upgrades an existing MinIO Tenant using Helm Charts.
|
||||
|
||||
If you deployed the Tenant using the :ref:`MinIO Kubernetes Plugin <minio-k8s-deploy-minio-tenant>`, use the :ref:`minio-upgrade-tenant-plugin` procedure instead.
|
||||
If you deployed the Tenant using Kustomize, use the :ref:`minio-upgrade-tenant-kustomize` procedure instead.
|
||||
|
||||
1. Verify the existing MinIO Tenant installation.
|
||||
|
||||
|
Reference in New Issue
Block a user