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

202 lines
4.7 KiB
ReStructuredText

.. _minio-operator:
=========================
MinIO Kubernetes Operator
=========================
.. default-domain:: minio
.. contents:: Table of Contents
:local:
:depth: 2
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 :ref:`minio-kubernetes` for deploying
and managing MinIO Tenants.
Deploying the MinIO Operator
----------------------------
You can use :github:`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 :mc:`minio` server processes.
- 4 Volumes per server.
- 2 MinIO Console Service (MCS) proccesses.
.. ToDo : - 2 MinIO Key Encryption Service (KES) processes.
.. code-block:: yaml
:class: copyable
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
:kube-api:`CustomResourceDefinition
<#customresourcedefinition-v1-apiextensions-k8s-io>` that extends the
Kubernetes Object API to support creating MinIO ``Tenant`` objects.
.. tabs::
.. tab:: ``Tenant`` Object Overview
The following ``YAML`` block describes a MinIO Tenant object and its
top-level fields.
.. code-block:: yaml
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
:guilabel:`YAML Field Description` tab for a more detailed description of
each field.
.. tab:: YAML Field Description
The following table describes each top-level field in the MinIO Tenant
object.
.. list-table::
:header-rows: 1
:widths: 30 10 60
:width: 100%
* - Field
- | Required /
| Recommended /
| Optional
- Description
* - foo
- bar
- baz
Select the :guilabel:`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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~