Documentation

Deploy MinIO on Kubernetes

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

All documentation assumes familiarity with referenced Kubernetes concepts, utilities, and procedures. While MinIO documentation may provide guidance for configuring or deploying Kubernetes-related resources on a best-effort basis, it is not a replacement for the official Kubernetes Documentation.

MinIO Operator Architecture

MinIO Operator

The MinIO Operator is a first-party Kubernetes-native operator that manages the deployment of MinIO Tenants onto Kubernetes infrastructure.

The Operator provides MinIO-centric functionality around Tenant management, including support for configuring all core MinIO features.

You can interact with the Operator through the MinIO Custom Resource Definition (CRD), or through the Operator Console UI.

The CRD provides a highly customizable entry point for using tools like Kustomize for deploying Tenants. You can also use the MinIO Operator Console, a rich web-based UI that has complete support for deploying and configuring MinIO Tenants.

MinIO Operator Console

Warning

The MinIO Operator Console UI is deprecated and scheduled for removal in the upcoming MinIO Operator 6.0.0.

You can continue to use standard Kubernetes approaches for MinIO Tenant management, such as Kustomize templates, Helm Charts, and kubectl commands for introspecting Tenant namespaces and resources.

The Operator Console provides a rich user interface for deploying and managing MinIO Tenants on Kubernetes infrastructure.

The MinIO Operator Console supports deploying, managing, and monitoring MinIO Tenants on the Kubernetes cluster.

Port Forwarding

The Operator Console service does not automatically bind or expose itself for external access on the Kubernetes cluster. Instead, configure a network control plane component, such as a load balancer or ingress, to grant external access.

For testing purposes or short-term access, expose the Operator Console service through a NodePort using the following patch:

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"
    }
}'

The patch command should output service/console patched. You can now access the service through ports 30433 (HTTPS) or 30090 (HTTP) on any of your Kubernetes worker nodes.

For example, a Kubernetes cluster with the following Operator nodes might be accessed at https://172.18.0.2:30443:

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]

Use the following command to retrieve the JWT token necessary for logging into the Operator Console:

kubectl get secret/console-sa-secret -n minio-operator -o json | jq -r '.data.token' | base64 -d

If your local host does not have the jq utility installed, you can run the kubectl part of this command (before | jq) and locate the data.token section of the output.

Tenant Management

You can deploy a MinIO Tenant through the Operator Console.

The Operator Console automatically detects MinIO Tenants deployed on the cluster when provisioned through:

  • Operator Console

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

Tenant Registration

MinIO 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

MinIO SUBNET users must register Tenants to associate them with the MinIO Commercial License. You can register Tenants through the Operator

  1. Select the Register tab

  2. Enter the API Key

    You can obtain the key from MinIO SUBNET through the Console by selecting Get from SUBNET.

  1. Select the Register tab

  2. Enter the API Key

    You can obtain the key from MinIO SUBNET through the Console by selecting Get from SUBNET.