Minor fixups after testing locally Additional refinement Nitish fixups Fixups for storageClassName Ritesh feedback Round 2
4.7 KiB
MinIO Kubernetes Operator
minio
Table of Contents
Overview
The MinIO Kubernetes Operator ("MinIO Operator") brings native support for deploying and managing MinIO deployments ("MinIO Tenant") on a Kubernetes cluster.
The MinIO Operator requires familiarity with interacting with a
Kubernetes cluster, including but not limited to using the
kubectl
command line tool and interacting with Kubernetes
YAML
objects. Users who would prefer a more simplified
experience should use the minio-kubernetes
for deploying and managing MinIO
Tenants.
Deploying the MinIO Operator
You can use kustomize <kubernetes-sigs/kustomize>
to
deploy the MinIO Operator to a Kubernetes cluster:
<Instructions to follow>
MinIO Tenant Object
The following example Kubernetes object describes a MinIO Tenant with the following resources:
- 4
minio
server processes. - 4 Volumes per server.
- 2 MinIO Console Service (MCS) proccesses.
apiVersion: minio.min.io/v1
kind: Tenant
metadata:
creationTimestamp: null
name: minio-tenant-1
namespace: minio-tenant-1
scheduler:
name: ""
spec:
certConfig: {}
console:
consoleSecret:
name: minio-tenant-1-console-secret
image: minio/console:v0.3.14
metadata:
creationTimestamp: null
name: minio-tenant-1
replicas: 2
resources: {}
credsSecret:
name: minio-tenant-1-creds-secret
image: minio/minio:RELEASE.2020-09-26T03-44-56Z
imagePullSecret: {}
liveness:
initialDelaySeconds: 10
periodSeconds: 1
timeoutSeconds: 1
mountPath: /export
requestAutoCert: true
serviceName: minio-tenant-1-internal-service
zones:
- resources: {}
servers: 4
volumeClaimTemplate:
apiVersion: v1
kind: persistentvolumeclaims
metadata:
creationTimestamp: null
spec:
accessModes:
- ReadWriteOnce
storageClassName: local-storage
resources:
requests:
storage: 10Gi
status: {}
volumesPerServer: 4
MinIO Specification Syntax
The MinIO Operator adds a CustomResourceDefinition
<#customresourcedefinition-v1-apiextensions-k8s-io>
that
extends the Kubernetes Object API to support creating MinIO
Tenant
objects.
Tenant
Object Overview
The following YAML
block describes a MinIO Tenant object
and its top-level fields.
apiVersion: minio.min.io/v1
kind: Tenant
metadata:
name: minio
labels:
app: minio
annotations:
prometheus.io/path: <string>
prometheus.io/port: "<string>"
prometheus.io/scrape: "<bool>"
spec:
certConfig: <object>
console: <object>
credsSecret: <object>
env: <object>
externalCertSecret: <array>
externalClientCertSecret: <object>
image: minio/minio:latest
imagePullPolicy: IfNotPresent
kes: <object>
mountPath: <string>
podManagementPolicy: <string>
priorityClassName: <string>
requestAutoCert: <boolean>
s3: <object>
securityContext: <object>
serviceAccountName: <string>
subPath: <string>
zones: <array>
Select the YAML Field Description
tab for a more detailed
description of each field.
YAML Field Description
The following table describes each top-level field in the MinIO Tenant object.
Field | Required / Recommended / Optional |
Description |
---|---|---|
foo | bar | baz |
Select the Tenant Object Description
tab for an example of
the YAML object file.