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
Select the Register tab
Enter the API Key
You can obtain the key from MinIO SUBNET through the Console by selecting Get from SUBNET.
Select the Register tab
Enter the API Key
You can obtain the key from MinIO SUBNET through the Console by selecting Get from SUBNET.