From 48d78340fffa9169ad8e151605a860e2d696af84 Mon Sep 17 00:00:00 2001 From: Daryl White <53910321+djwfyi@users.noreply.github.com> Date: Fri, 5 May 2023 10:39:13 -0500 Subject: [PATCH] Operator sidecar (#838) This adds information about Operator component changes in v5.0.x. Closes #791 Staged: http://192.241.195.202:9000/staging/operator-sidecar/operations/installation.html --- .../images/k8s/OperatorsComponent-Diagram.png | Bin 0 -> 83819 bytes source/includes/k8s/deploy-operator.rst | 155 +++++++++++++----- .../openshift/deploy-minio-on-openshift.rst | 9 +- .../minio-operator-console.rst | 11 +- .../upgrade-minio-operator.rst | 4 +- source/reference/kubectl-minio-plugin.rst | 27 ++- 6 files changed, 151 insertions(+), 55 deletions(-) create mode 100644 source/images/k8s/OperatorsComponent-Diagram.png diff --git a/source/images/k8s/OperatorsComponent-Diagram.png b/source/images/k8s/OperatorsComponent-Diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..1b5989ceed14fbcb6f5a7de7273724209a015713 GIT binary patch literal 83819 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�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
wL$VeFW?iT%=8KHfeWmxFGAK-ITH2P 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 A8UO$Q literal 0 HcmV?d00001 diff --git a/source/includes/k8s/deploy-operator.rst b/source/includes/k8s/deploy-operator.rst index 0a06be77..40735b16 100644 --- a/source/includes/k8s/deploy-operator.rst +++ b/source/includes/k8s/deploy-operator.rst @@ -14,29 +14,48 @@ Deploy the MinIO Operator Overview -------- -MinIO is a Kubernetes-native high performance object store with an S3-compatible -API. The MinIO Kubernetes Operator supports deploying MinIO Tenants onto private -and public cloud infrastructures ("Hybrid" Cloud). +MinIO is a Kubernetes-native high performance object store with an S3-compatible API. +The MinIO Kubernetes Operator supports deploying MinIO Tenants onto private and public cloud infrastructures ("Hybrid" Cloud). -The following procedure installs the latest stable version -(|operator-version-stable|) of the MinIO Operator and MinIO Plugin on Kubernetes -infrastructure: +The following procedure installs the latest stable version (|operator-version-stable|) of the MinIO Operator and MinIO Plugin on Kubernetes infrastructure: -- The MinIO Operator installs a :kube-docs:`Custom Resource Document (CRD) - ` - to support describing MinIO tenants as a Kubernetes :kube-docs:`object - `. See the MinIO - Operator :minio-git:`CRD Reference ` for - complete documentation on the MinIO CRD. +- The MinIO Operator installs a :kube-docs:`Custom Resource Definition (CRD) ` to support describing MinIO tenants as a Kubernetes :kube-docs:`object `. + See the MinIO Operator :minio-git:`CRD Reference ` for complete documentation on the MinIO CRD. -- The MinIO Kubernetes Plugin brings native support for deploying and managing - MinIO tenants on a Kubernetes cluster using the :mc:`kubectl minio` command. +- The MinIO Kubernetes Plugin brings native support for deploying and managing MinIO tenants on a Kubernetes cluster using the :mc:`kubectl minio` command. -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 <>`. +This documentation assumes familiarity with 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 <>`. + +MinIO Operator Components +------------------------- + +The MinIO Operator exists in its own namespace. + +Within the Operator's namespace, the MinIO Operator utilizes two pods: +- The Operator pod for the base Operator functions to deploy, manage, modify, and maintain tenants. +- Console pod for the Operator's Graphical User Interface, the Operator Console. + +When you use the Operator to create a tenant, the tenant *must* have its own namespace. +Within that namespace, the Operator generates the pods required by the tenant configuration. + +Each pod runs three containers: + +- MinIO Container that runs all of the standard MinIO functions, equivalent to basic MinIO installation on baremetal. + This container stores and retrieves objects in the provided mount points (persistent volumes). + +- InitContainer that only exists during the launch of the pod to manage configuration secrets during startup. + Once startup completes, this container terminates. + +- SideCar container that monitors configuration secrets for the tenant and updates them as they change. + This container also monitors for root credentials and creates an error if it does not find root credentials. + +The tenant utilizes Persistent Volume Claims to talk to the Persistent Volumes that store the objects. + +.. image:: /images/k8s/OperatorsComponent-Diagram.png + :width: 600px + :alt: A diagram of the namespaces and pods used by or maintained by the MinIO Operator. + :align: center Prerequisites ------------- @@ -44,13 +63,13 @@ Prerequisites Kubernetes Version 1.19.0 ~~~~~~~~~~~~~~~~~~~~~~~~~ -Starting with v4.0.0, the MinIO Operator and MinIO Kubernetes Plugin require -Kubernetes 1.19.0 and later. The Kubernetes infrastructure *and* the -``kubectl`` CLI tool must have the same version of 1.19.0+. +Starting with v4.0.0, the MinIO Operator and MinIO Kubernetes Plugin **require** Kubernetes 1.19.0 and later. +The Kubernetes infrastructure *and* the ``kubectl`` CLI tool must have the same version of 1.19.0+. -Prior to v4.0.0, the MinIO Operator and Plugin required Kubernetes 1.17.0. You -*must* upgrade your Kubernetes infrastructure to 1.19.0 or later to use -the MinIO Operator or Plugin v4.0.0 or later. +Prior to v4.0.0, the MinIO Operator and Plugin required Kubernetes 1.17.0. +You *must* upgrade your Kubernetes infrastructure to 1.19.0 or later to use the MinIO Operator or Plugin v4.0.0 or later. + +Starting with v5.0.0, MinIO *recommends* Kubernetes 1.21.0 or later for both the infrastructure and the ``kubectl`` CLI tool. ``kubectl`` Configuration ~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -62,9 +81,18 @@ This procedure assumes that your local host machine has both the correct version Kubernetes TLS Certificate API ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The MinIO Operator automatically generates TLS Certificate Signing Requests (CSR) and uses the Kubernetes ``certificates.k8s.io`` :kube-docs:`TLS certificate management API ` to create signed TLS certificates. +.. versionchanged:: Operator v.5.0.0 -The MinIO Operator therefore *requires* that the Kubernetes ``kube-controller-manager`` configuration include the following :kube-docs:`configuration settings `: + The MinIO Operator manages TLS Certificate Signing Requests (CSR) using the Kubernetes ``certificates.k8s.io`` :kube-docs:`TLS certificate management API ` to create signed TLS certificates in the following circumstances: + + - When ``autoCert`` is enabled. + - For the MinIO Console when the :envvar:`OPERATOR_CONSOLE_TLS_ENABLE` environment variable is set to ``on``. + - For :ref:`STS service ` when :envvar:`OPERATOR_STS_ENABLED` environment variable is set to ``on``. + - For retrieving the health of the cluster. + + The MinIO Operator reads certificates inside the ``operator-ca-tls`` secret and syncs this secret within the tenant namespace to trust private certificate authorities, such as when using cert-manager. + +For any of these circumstances, the MinIO Operator *requires* that the Kubernetes ``kube-controller-manager`` configuration include the following :kube-docs:`configuration settings `: - ``--cluster-signing-key-file`` - Specify the PEM-encoded RSA or ECDSA private key used to sign cluster-scoped certificates. @@ -74,13 +102,10 @@ The Kubernetes TLS API uses the CA signature algorithm for generating new TLS ce MinIO recommends ECDSA (e.g. `NIST P-256 curve `__) or EdDSA (e.g. :rfc:`Curve25519 <7748>`) TLS private keys/certificates due to their lower computation requirements compared to RSA. See :ref:`minio-TLS-supported-cipher-suites` for a complete list of supported TLS Cipher Suites. -The Operator cannot complete initialization if the Kubernetes cluster is -not configured to respond to a generated CSR. Certain Kubernetes -providers do not specify these configuration values by default. +If the Kubernetes cluster is not configured to respond to a generated :abbr:`CSR (Certificate Signing Request)`, the Operator cannot complete initialization. +Some Kubernetes providers do not specify these configuration values by default. -To verify whether the ``kube-controller-manager`` has the required -settings, use the following command. Replace ``$CLUSTER-NAME`` with the name -of the Kubernetes cluster: +To check whether the ``kube-controller-manager`` specifies the cluster signing key and certificate files, use the following command: .. code-block:: shell :class: copyable @@ -88,8 +113,10 @@ of the Kubernetes cluster: kubectl get pod kube-controller-manager-$CLUSTERNAME-control-plane \ -n kube-system -o yaml -Confirm that the output contains the highlighted lines. The output of -the example command above may differ from the output in your terminal: +- Replace ``$CLUSTERNAME`` with the name of the Kubernetes cluster. + +Confirm that the output contains the highlighted lines. +The output of the example command above may differ from the output in your terminal: .. code-block:: shell :emphasize-lines: 12,13 @@ -111,18 +138,60 @@ the example command above may differ from the output in your terminal: .. important:: - The MinIO Operator automatically generates TLS certificates for all - MinIO Tenant pods using the specified Certificate Authority (CA). - Clients external to the Kubernetes cluster must trust the - Kubernetes cluster CA to connect to the MinIO Operator or MinIO Tenants. + The MinIO Operator automatically generates TLS certificates for all MinIO Tenant pods using the specified Certificate Authority (CA). + Clients external to the Kubernetes cluster must trust the Kubernetes cluster CA to connect to the MinIO Operator or MinIO Tenants. - Clients which cannot trust the Kubernetes cluster CA can try disabling TLS - validation for connections to the MinIO Operator or a MinIO Tenant. + Clients which cannot trust the Kubernetes cluster CA can disable TLS validation for connections to the MinIO Operator or a MinIO Tenant. - Alternatively, you can generate x.509 TLS certificates signed by a known - and trusted CA and pass those certificates to MinIO Tenants. + Alternatively, you can generate x.509 TLS certificates signed by a known and trusted CA and pass those certificates to MinIO Tenants. See :ref:`minio-tls` for more complete documentation. +Configure MinIO Operator to Trust Custom Certificates +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If you use custom certificates for your deployment, add the certificate so that MinIO Operator trusts it. + +This procedure assumes you have an existing custom certificate. + +1. Use the following command to generate a secret from the certificate: + + .. code-block:: shell + :class: copyable + + kubectl create secret generic MY-CUSTOM-TLS -n MY-CLUSTER-NAMESPACE --from-file= + + Replace the following placeholders in the above command: + - ``MY-CUSTOM-TLS`` with the name of your secrets file + - ``MY-CLUSTER-NAMESPACE`` with your cluster's namespace + - ```` with the relative path to the public certificate to use to create the secret + +2. Add a volume to the yaml for your cluster under ``.spec.template.spec`` + + .. code-block:: yaml + :class: copyable + + volumes: + - name: tls-certificates + projected: + defaultMode: 420 + sources: + - secret: + items: + - key: public.crt + path: CAs/custom-public.crt + name: MY-CUSTOM-TLS + + - replace ``MY-CUSTOM-TLS`` with the name of your secrets file. + +3. Add a ``volumeMount`` to the yaml for your cluster under ``.spec.template.spec.container[0]`` + + .. code-block:: yaml + :class: copyable + + volumeMounts: + - mountPath: /tmp/certs + name: tls-certificates + Procedure --------- diff --git a/source/includes/openshift/deploy-minio-on-openshift.rst b/source/includes/openshift/deploy-minio-on-openshift.rst index 4b793d02..12a1fee5 100644 --- a/source/includes/openshift/deploy-minio-on-openshift.rst +++ b/source/includes/openshift/deploy-minio-on-openshift.rst @@ -176,10 +176,9 @@ The Operator Console still requires using the generated JWT token for access, wh After deploying the MinIO Operator, you can create a new MinIO Tenant. To deploy a MinIO Tenant using OpenShift, see :ref:`deploy-minio-tenant-redhat-openshift`. -.. uncomment this block when upgrade operator procedure is complete - .. toctree:: - :titlesonly: - :hidden: +.. toctree:: + :titlesonly: + :hidden: - /operations/install-deploy-manage/upgrade-minio-operator + /operations/install-deploy-manage/upgrade-minio-operator diff --git a/source/operations/install-deploy-manage/minio-operator-console.rst b/source/operations/install-deploy-manage/minio-operator-console.rst index e8ca65ee..6dae0623 100644 --- a/source/operations/install-deploy-manage/minio-operator-console.rst +++ b/source/operations/install-deploy-manage/minio-operator-console.rst @@ -43,7 +43,12 @@ The MinIO Operator Console supports deploying, managing, and monitoring MinIO Te You can :ref:`deploy a MinIO Tenant ` through the Operator Console. -The Operator Console automatically detects MinIO Tenants deployed on the cluster when provisioned through the Operator Console, the :ref:`MinIO Kubernetes Plugin `, Helm, or Kustomize. +The Operator Console automatically detects MinIO Tenants deployed on the cluster when provisioned through: + +- Operator Console +- :ref:`MinIO Kubernetes Plugin ` +- Helm +- Kustomize Select a listed tenant to open an in-browser view of that tenant's MinIO Console. You can use this view to directly manage, modify, expand, upgrade, and delete the tenant through the Operator UI. @@ -56,12 +61,12 @@ You can use this view to directly manage, modify, expand, upgrade, and delete th The ZIP archive contains status, events, and log information for each pool on the deployment. The archive also includes a summary yaml file describing the deployment. - |subnet| users can upload this file for analysis by MinIO Engineers. + |subnet| users relying on the commercial license should register the MinIO tenants to their SUBNET account, which can be done through the Operator Console. Tenant Registration ------------------- -|subnet| users relying on the commercial license should register your MinIO tenants to your SUBNET account, which can be done through the Operator Console. +|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 :align: center diff --git a/source/operations/install-deploy-manage/upgrade-minio-operator.rst b/source/operations/install-deploy-manage/upgrade-minio-operator.rst index 7af441f0..c8b9c6e8 100644 --- a/source/operations/install-deploy-manage/upgrade-minio-operator.rst +++ b/source/operations/install-deploy-manage/upgrade-minio-operator.rst @@ -65,7 +65,7 @@ The following changes apply for Operator v5.0.0 or later: This change impacts the Tenant :abbr:`CRD ` 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. - If the Tenant CRD is deleted, this does not cascade to the log or Prometheus deployments. + Deleting the Tenant :abbr:`CRD (Custom Resource Definition)` does **not** cascade to the log or Prometheus deployments. .. important:: @@ -170,7 +170,7 @@ Upgrade Operator to |operator-version-stable| "name": "minio-operator" } -3. Download the Latest Stable Version of the MinIO Kubernetes Plugin +3. Download the latest stable version of the MinIO Kubernetes Plugin .. include:: /includes/k8s/install-minio-kubectl-plugin.rst diff --git a/source/reference/kubectl-minio-plugin.rst b/source/reference/kubectl-minio-plugin.rst index b3c7e1af..38279a2e 100644 --- a/source/reference/kubectl-minio-plugin.rst +++ b/source/reference/kubectl-minio-plugin.rst @@ -93,7 +93,30 @@ Environment Variables --------------------- The :ref:`MinIO Operator ` uses the following environment variables during startup to set configuration settings. -Configure these variables on the machine running the kubectl plugin. +Configure these variables in the ``minio-operator`` container. + +Setting Environment Variables in Kubernetes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To set these environment variables, modify the operator container's yaml at ``.spec.env`` or use the following ``kubectl`` command syntax: + +.. code-block:: shell + :class: copyable + + kubectl set env -n minio-operator deployment/minio-operator = ... = + +Replace: + +- ``minio-operator`` with the namespace for your Operator, if not using the default value. +- ``deployment/minio-operator`` with the deployment for your Operator, if not the default value. + (This is not common.) +- ```` with the environment variable to set or modify. +- ```` with the value to use for the environment variable. + +You can set or modify multiple environment variables by separating each ``VARIABLE=value`` pair with a space. + +Available MinIO Operator Environment Variables +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. envvar:: MINIO_OPERATOR_CERTIFICATES_VERSION @@ -126,7 +149,7 @@ Configure these variables on the machine running the kubectl plugin. .. envvar:: MINIO_OPERATOR_DEPLOYMENT_NAME - Specifies the namespace to create and use for Operator + Specifies the namespace to create and use for Operator. When not specified, the default value is ``minio-operator``.