Documentation

MinIO Kubernetes Plugin

Overview

Current Stable Version is 5.0.9

This reference documentation reflects 5.0.9 of the MinIO Kubernetes Operator and kubectl minio plugin.

The kubectl minio plugin brings native support for deploying MinIO tenants to Kubernetes clusters using the kubectl CLI. Use kubectl minio to deploy a MinIO tenant with little to no interaction with YAML configuration files.

Kubernetes Orchestration with the MinIO Operator facilitates automated deployment of MinIO clusters.

Installing kubectl minio implies installing the MinIO Kubernetes Operator.

Installation

The MinIO Kubernetes Plugin requires Kubernetes 1.19.0 or later.

The following code downloads the latest stable version 5.0.9 of the MinIO Kubernetes Plugin and installs it to the system $PATH.

This procedure uses the Kubernetes krew plugin manager for installing the MinIO Kubernetes Operator and Plugin.

See the krew installation documentation for specific instructions.

kubectl krew update
kubectl krew install minio
wget https://github.com/minio/operator/releases/download/v5.0.9/kubectl-minio_5.0.9_linux_amd64 -O kubectl-minio
chmod +x kubectl-minio
mv kubectl-minio /usr/local/bin/

You can access the plugin using the kubectl minio command. Run the following command to verify installation of the plugin:

kubectl minio version

Subcommands

kubectl minio has the following subcommands:

Environment Variables

The MinIO Operator uses the following environment variables during startup to set configuration settings. 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:

kubectl set env -n minio-operator deployment/minio-operator <ENV_VARIABLE>=<value> ... <ENV_VARIABLE2>=<value2>

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.)

  • <ENV_VARIABLE> with the environment variable to set or modify.

  • <value> 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

MINIO_OPERATOR_CERTIFICATES_VERSION

Specifies the certificate API version to use.

Valid values are v1 or v1beta1.

When not specified, the default is the API Kubernetes provides.

MINIO_OPERATOR_RUNTIME

Specify the type of runtime to use.

Valid values are EKS, Rancher, or OpenShift. Leave blank if none of the options apply.

When set as EKS, the MINIO_OPERATOR_CSR_SIGNER_NAME must be beta.eks.amazonaws.com/app-serving.

MINIO_OPERATOR_CSR_SIGNER_NAME

Override the default signer for certificate signing requests (CSRs).

When not specified, the default value is kubernetes.io/kubelet-serving.

OPERATOR_CERT_PASSWD

Optional

The password Operator should use to decrypt the private key in the TLS certificate for Operator.

MINIO_OPERATOR_DEPLOYMENT_NAME

Specifies the namespace to create and use for Operator.

When not specified, the default value is minio-operator.

OPERATOR_STS_ENABLED

Toggle STS Service on or off.

When not specified, the default value is off.

MINIO_CONSOLE_DEPLOYMENT_NAME

The name to use for the Operator Console.

When not specified, the default value is operator.

MINIO_CONSOLE_TLS_ENABLE

Toggle Console TLS service on or off.

When not specified, the default value is off.

WATCHED_NAMESPACE

A comma-separated list of the namespace(s) Operator should watch for tenants.

When not specified, the default value is "" to watch all namespaces.