1
0
mirror of https://github.com/minio/docs.git synced 2025-08-06 14:42:56 +03:00
Files
docs/source/kubernetes/minio-operator-reference.rst
ravindk89 bba1a48c38 MinIO kubectl minio initial commit
Minor fixups after testing locally

Additional refinement

Nitish fixups

Fixups for storageClassName

Ritesh feedback Round 2
2020-10-22 13:59:22 -04:00

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.

Required Fields

Automatic TLS Certificate

MinIO Console Service

MinIO Key Encryption Service

Pod Management and Priority

Security Context Configuration