mirror of
https://github.com/minio/docs.git
synced 2025-07-20 00:43:24 +03:00
Alpha Release Work
This commit is contained in:
@ -22,7 +22,7 @@ html {
|
|||||||
|
|
||||||
body {
|
body {
|
||||||
font-family: Mark, Helvetica, sans-serif;
|
font-family: Mark, Helvetica, sans-serif;
|
||||||
font-size: 100%;
|
font-size: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.flexwrapper {
|
div.flexwrapper {
|
||||||
@ -41,20 +41,32 @@ body :target {
|
|||||||
/* Left Column CSS */
|
/* Left Column CSS */
|
||||||
|
|
||||||
body div.left {
|
body div.left {
|
||||||
width: 250px;
|
width: 300px;
|
||||||
/* flex-shrink: 0; */
|
/* flex-shrink: 0; */
|
||||||
position: fixed;
|
position: fixed;
|
||||||
display: block;
|
display: block;
|
||||||
left: 0px;
|
left: 0px;
|
||||||
top: 85px;
|
top: 90px;
|
||||||
color: var(--minio-meridian);
|
color: var(--minio-meridian);
|
||||||
z-index: 5;
|
z-index: 5;
|
||||||
border-right: 1px solid var(--minio-glacier);
|
background: #f9f9f9 0% 0% no-repeat padding-box;
|
||||||
|
opacity: 1;
|
||||||
|
height: 100vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
body div.left a.active {
|
||||||
|
color: var(--minio-meridian);
|
||||||
}
|
}
|
||||||
|
|
||||||
body div.left li.toctree-l1 a {
|
body div.left li.toctree-l1 a {
|
||||||
color: var(--minio-meridian);
|
color: #1C1C1C;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body div.left li.toctree-l2 a {
|
||||||
|
color: #2b2b2b;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
body div.left div.sphinxsidebarwrapper {
|
body div.left div.sphinxsidebarwrapper {
|
||||||
padding: 0 0 0 5px;
|
padding: 0 0 0 5px;
|
||||||
margin-top: 15px;
|
margin-top: 15px;
|
||||||
@ -70,17 +82,15 @@ body div.left button.sphinxsidebarbutton {
|
|||||||
background: none;
|
background: none;
|
||||||
border: none;
|
border: none;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
left: 115px;
|
left: 200px;
|
||||||
top: 75px;
|
top: 90px;
|
||||||
|
color: gray;
|
||||||
}
|
}
|
||||||
|
|
||||||
body div.left div.sphinxsidebarwrapper a.current.reference.internal {
|
body div.left div.sphinxsidebarwrapper a.current.reference.internal {
|
||||||
color: var(--minio-red);
|
color: var(--minio-red);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
position: relative;
|
position: relative;
|
||||||
border-left: 5px solid var(--minio-red);
|
|
||||||
padding-left: 5px;
|
|
||||||
margin-left: -10px;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -93,7 +103,6 @@ body div.left div.sphinxsidebarwrapper li.toctree-l1 {
|
|||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
padding-bottom: 5px;
|
padding-bottom: 5px;
|
||||||
border-bottom: 1px solid var(--table-border-color);
|
|
||||||
list-style: none;
|
list-style: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,7 +111,17 @@ body div.left a.reference {
|
|||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body div.left li.toctree-l2 {
|
||||||
|
margin: 10px 0 10px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
body div.left div.searchformwrapper {
|
||||||
|
margin-top: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#docs-search {
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
/* Center Column CSS */
|
/* Center Column CSS */
|
||||||
|
|
||||||
@ -122,8 +141,8 @@ body div.center {
|
|||||||
flex-grow: 9;
|
flex-grow: 9;
|
||||||
flex-shrink: 4;
|
flex-shrink: 4;
|
||||||
z-index: 0;
|
z-index: 0;
|
||||||
margin-left: 250px;
|
margin-left: 300px;
|
||||||
margin-top: 85px;
|
margin-top: 90px;
|
||||||
scroll-margin-top: 85px;
|
scroll-margin-top: 85px;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
@ -194,8 +213,22 @@ body div.center table.docutils th {
|
|||||||
border-right: none;
|
border-right: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
body div.center p {
|
body div.center dl dd {
|
||||||
padding-left: 10px;
|
margin-left: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
body div.center div.footer {
|
||||||
|
text-align: center;
|
||||||
|
width: auto;
|
||||||
|
/*
|
||||||
|
Future work: Force padding up so that H3s can still scroll within the
|
||||||
|
IntersectionObserver window. Useful for ensuring short sections at the
|
||||||
|
bottom of the page still get picked up. Might be useful for auto-hide of
|
||||||
|
l2 content.
|
||||||
|
|
||||||
|
|
||||||
|
padding-top: 100px;
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Right-Column CSS */
|
/* Right-Column CSS */
|
||||||
@ -204,8 +237,9 @@ body div.right {
|
|||||||
flex: 3;
|
flex: 3;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
margin-top: 85px;
|
margin-top: 90px;
|
||||||
border-left: 1px solid var(--minio-glacier);
|
border-left: 1px solid var(--minio-glacier);
|
||||||
|
font-size: 13px;
|
||||||
}
|
}
|
||||||
|
|
||||||
body div.right div.topic {
|
body div.right div.topic {
|
||||||
@ -223,8 +257,6 @@ body div.right ul.simple {
|
|||||||
}
|
}
|
||||||
|
|
||||||
body div.right ul li {
|
body div.right ul li {
|
||||||
border-top: 1px solid var(--minio-glacier);
|
|
||||||
border-bottom: 1px solid var(--minio-glacier);
|
|
||||||
padding-top: 5px;
|
padding-top: 5px;
|
||||||
padding-bottom: 5px;
|
padding-bottom: 5px;
|
||||||
}
|
}
|
||||||
@ -253,7 +285,7 @@ body div.right p.active-p {
|
|||||||
/* Collapse CSS */
|
/* Collapse CSS */
|
||||||
|
|
||||||
body div.left.collapsed {
|
body div.left.collapsed {
|
||||||
left: -300px;
|
left: -350px;
|
||||||
}
|
}
|
||||||
|
|
||||||
body div.left button.sphinxsidebarbutton.collapsed {
|
body div.left button.sphinxsidebarbutton.collapsed {
|
||||||
@ -278,9 +310,9 @@ nav.navigation {
|
|||||||
position: fixed;
|
position: fixed;
|
||||||
background-color: black;
|
background-color: black;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 75px;
|
height: 90px;
|
||||||
top: 0px;
|
top: 0px;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Admonition CSS TODO*/
|
/* Admonition CSS TODO*/
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
window.addEventListener('DOMContentLoaded', (event) => {
|
window.addEventListener('DOMContentLoaded', (event) => {
|
||||||
console.log('DOM fully loaded and parsed');
|
console.log('DOM fully loaded and parsed');
|
||||||
|
|
||||||
var topic = document.getElementById('on-this-page');
|
var topic = document.getElementById('table-of-contents');
|
||||||
|
|
||||||
if (topic != null) {
|
if (topic != null) {
|
||||||
document.getElementById('localtoc').appendChild(
|
document.getElementById('localtoc').appendChild(
|
||||||
document.getElementById('on-this-page')
|
document.getElementById('table-of-contents')
|
||||||
);
|
);
|
||||||
|
|
||||||
console.log("moving local toc");
|
console.log("moving local toc");
|
||||||
@ -17,45 +17,47 @@ window.addEventListener('DOMContentLoaded', (event) => {
|
|||||||
// this from working, especially if the 'section' is really long. Not sure
|
// this from working, especially if the 'section' is really long. Not sure
|
||||||
// how to resolve that.
|
// how to resolve that.
|
||||||
|
|
||||||
let options = {
|
// Removing this from the logic flow until we have better / cleaner logic.
|
||||||
rootMargin: '-85px 0px 0px 0px'
|
|
||||||
}
|
|
||||||
|
|
||||||
const observer = new IntersectionObserver(entries => {
|
// let options = {
|
||||||
entries.forEach(entry => {
|
// rootMargin: '-100px 0px 0px -100px'
|
||||||
const id = entry.target.getAttribute('id');
|
// }
|
||||||
|
|
||||||
|
// const observer = new IntersectionObserver(entries => {
|
||||||
|
// entries.forEach(entry => {
|
||||||
|
// const id = entry.target.getAttribute('id');
|
||||||
|
|
||||||
if (id == document.querySelector('.section[id]').getAttribute('id'))
|
// if (id == document.querySelector('.section[id]').getAttribute('id'))
|
||||||
return 0
|
// return 0
|
||||||
if (entry.intersectionRatio > 0) {
|
// if (entry.intersectionRatio > 0) {
|
||||||
|
|
||||||
|
|
||||||
pElement = document.querySelector(`#on-this-page li a[href="#${id}"]`).parentElement;
|
// pElement = document.querySelector(`#on-this-page li a[href="#${id}"]`).parentElement;
|
||||||
liElement = document.querySelector(`#on-this-page li a[href="#${id}"]`).parentElement.parentElement;
|
// liElement = document.querySelector(`#on-this-page li a[href="#${id}"]`).parentElement.parentElement;
|
||||||
|
|
||||||
liElement.classList.add('active');
|
// liElement.classList.add('active');
|
||||||
pElement.classList.add('active-p');
|
// pElement.classList.add('active-p');
|
||||||
|
|
||||||
liElementParent = liElement.parentElement.parentElement
|
// liElementParent = liElement.parentElement.parentElement
|
||||||
|
|
||||||
if (liElementParent.tagName == "LI") {
|
// if (liElementParent.tagName == "LI") {
|
||||||
//liElementParent.classList.remove("active")
|
// //liElementParent.classList.remove("active")
|
||||||
// Need to re-visit this logic
|
// // Need to re-visit this logic
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} else {
|
// } else {
|
||||||
document.querySelector(`#on-this-page li a[href="#${id}"]`).parentElement.parentElement.classList.remove('active');
|
// document.querySelector(`#on-this-page li a[href="#${id}"]`).parentElement.parentElement.classList.remove('active');
|
||||||
document.querySelector(`#on-this-page li a[href="#${id}"]`).parentElement.classList.remove('active-p');
|
// document.querySelector(`#on-this-page li a[href="#${id}"]`).parentElement.classList.remove('active-p');
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
},options);
|
// },options);
|
||||||
|
|
||||||
// Track all sections that have an `id` applied
|
// // Track all sections that have an `id` applied
|
||||||
document.querySelectorAll('.section[id]').forEach((section) => {
|
// document.querySelectorAll('.section[id]').forEach((section) => {
|
||||||
observer.observe(section);
|
// observer.observe(section);
|
||||||
});
|
// });
|
||||||
|
|
||||||
const leftcolumn = document.querySelector('.left');
|
const leftcolumn = document.querySelector('.left');
|
||||||
const centercolumn = document.querySelector('.center');
|
const centercolumn = document.querySelector('.center');
|
||||||
|
2
source/_templates/navigation.html
Normal file
2
source/_templates/navigation.html
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
{{ toctree(includehidden=theme_sidebar_includehidden, collapse=theme_sidebar_collapse) }}
|
11
source/_templates/searchbox.html
Normal file
11
source/_templates/searchbox.html
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{%- if pagename != "search" and builder != "singlehtml" %}
|
||||||
|
<div id="searchbox" style="display: none" role="search">
|
||||||
|
<div class="searchformwrapper">
|
||||||
|
<form class="search" action="{{ pathto('search') }}" method="get">
|
||||||
|
<input type="text" id="docs-search" name="q" aria-labelledby="searchlabel" placeholder="Search documentation" />
|
||||||
|
<input type="submit" value="{{ _('Go') }}" />
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script>$('#searchbox').show(0);</script>
|
||||||
|
{%- endif %}
|
363
source/bare-metal/minio-baremetal-overview.rst
Normal file
363
source/bare-metal/minio-baremetal-overview.rst
Normal file
@ -0,0 +1,363 @@
|
|||||||
|
.. _minio-baremetal:
|
||||||
|
|
||||||
|
====================
|
||||||
|
MinIO for Bare Metal
|
||||||
|
====================
|
||||||
|
|
||||||
|
.. default-domain:: minio
|
||||||
|
|
||||||
|
.. contents:: Table of Contents
|
||||||
|
:local:
|
||||||
|
:depth: 2
|
||||||
|
|
||||||
|
MinIO is a high performance distributed object storage server, designed for
|
||||||
|
large-scale private cloud infrastructure. MinIO fully supports deployment onto
|
||||||
|
bare-metal hardware with or without containerization for process management.
|
||||||
|
|
||||||
|
Standalone Installation
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
Standalone MinIO deployments consist of a single ``minio`` server process with
|
||||||
|
one or more disks. Standalone deployments are best suited for local development
|
||||||
|
environments.
|
||||||
|
|
||||||
|
1) Install the ``minio`` Server
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Install the :program:`minio` server onto the host machine. Select the tab that
|
||||||
|
corresponds to the host machine operating system or environment:
|
||||||
|
|
||||||
|
.. include:: /includes/minio-server-installation.rst
|
||||||
|
|
||||||
|
2) Add TLS/SSL Certificates (Optional)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Enable TLS/SSL connectivity to the MinIO server by specifying a private key
|
||||||
|
(``.key``) and public certificate (``.crt``) to the MinIO ``certs`` directory:
|
||||||
|
|
||||||
|
- For Linux/MacOS: ``${HOME}/.minio/certs``
|
||||||
|
|
||||||
|
- For Windows: ``%%USERPROFILE%%\.minio\certs``
|
||||||
|
|
||||||
|
The MinIO server automatically enables TLS/SSL connectivity if it detects
|
||||||
|
the required certificates in the ``certs`` directory.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
The MinIO documentation makes a best-effort to provide generally applicable
|
||||||
|
and accurate information on TLS/SSL connectivity in the context of MinIO
|
||||||
|
products and services, and is not intended as a complete guide to the larger
|
||||||
|
topic of TLS/SSL certificate creation and management.
|
||||||
|
|
||||||
|
3) Run the ``minio`` Server
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Issue the following command to start the :program:`minio` server. The following
|
||||||
|
example assumes the host machine has *at least* four disks, which is the minimum
|
||||||
|
required number of disks to enable :ref:`erasure coding <minio-erasure-coding>`:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
:class: copyable
|
||||||
|
|
||||||
|
export MINIO_ACCESS_KEY=minio-admin
|
||||||
|
export MINIO_SECRET_KEY=minio-secret-key-CHANGE-ME
|
||||||
|
minio server /mnt/disk{1...4}/data
|
||||||
|
|
||||||
|
The example command breaks down as follows:
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:widths: 40 60
|
||||||
|
:width: 100%
|
||||||
|
|
||||||
|
* - :envvar:`MINIO_ACCESS_KEY`
|
||||||
|
- The access key for the :ref:`root <minio-auth-authz-root>` user.
|
||||||
|
|
||||||
|
Replace this value with a unique, random, and long string.
|
||||||
|
|
||||||
|
* - :envvar:`MINIO_SECRET_KEY`
|
||||||
|
- The corresponding secret key to use for the
|
||||||
|
:ref:`root <minio-auth-authz-root>` user.
|
||||||
|
|
||||||
|
Replace this value with a unique, random, and long string.
|
||||||
|
|
||||||
|
* - ``/mnt/disk{1...4}/data``
|
||||||
|
- The path to each disk on the host machine.
|
||||||
|
|
||||||
|
``/data`` is an optional folder in which the ``minio`` server stores
|
||||||
|
all information related to the deployment.
|
||||||
|
|
||||||
|
See :mc-cmd:`minio server DIRECTORIES` for more information on
|
||||||
|
configuring the backing storage for the :mc:`minio server` process.
|
||||||
|
|
||||||
|
The command uses MinIO expansion notation ``{x...y}`` to denote a sequential
|
||||||
|
series. Specifically, ``/mnt/disk{1...4}/data`` expands to:
|
||||||
|
|
||||||
|
- ``/mnt/disk1/data``
|
||||||
|
- ``/mnt/disk2/data``
|
||||||
|
- ``/mnt/disk3/data``
|
||||||
|
- ``/mnt/disk4/data``
|
||||||
|
|
||||||
|
4) Connect to the Server
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Use the :mc-cmd:`mc alias set` command from a machine with connectivity to
|
||||||
|
the host running the ``minio`` server. See :ref:`mc-install` for documentation
|
||||||
|
on installing :program:`mc`.
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
:class: copyable
|
||||||
|
|
||||||
|
mc alias set mylocalminio 192.0.2.10:9000 minioadmin minio-secret-key-CHANGE-ME
|
||||||
|
|
||||||
|
Replace the IP address and port with one of the ``minio`` servers endpoints.
|
||||||
|
|
||||||
|
See :ref:`minio-mc-commands` for a list of commands you can run on the
|
||||||
|
MinIO server.
|
||||||
|
|
||||||
|
Distributed Installation
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
Distributed MinIO deployments consist of multiple ``minio`` servers with
|
||||||
|
one or more disks each. Distributed deployments are best suited for
|
||||||
|
staging and production environments.
|
||||||
|
|
||||||
|
MinIO *requires* using sequentially-numbered hostnames to represent each
|
||||||
|
``minio`` server in the deployment. For example, the following hostnames support
|
||||||
|
a 4-node distributed deployment:
|
||||||
|
|
||||||
|
- ``minio1.example.com``
|
||||||
|
- ``minio2.example.com``
|
||||||
|
- ``minio3.example.com``
|
||||||
|
- ``minio4.example.com``
|
||||||
|
|
||||||
|
Create the necessary DNS hostname mappings *prior* to starting this
|
||||||
|
procedure.
|
||||||
|
|
||||||
|
1) Install the ``minio`` Server
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Install the :program:`minio` server onto each host machine in the deployment.
|
||||||
|
Select the tab that corresponds to the host machine operating system or
|
||||||
|
environment:
|
||||||
|
|
||||||
|
.. include:: /includes/minio-server-installation.rst
|
||||||
|
|
||||||
|
2) Add TLS/SSL Certificates (Optional)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Enable TLS/SSL connectivity to the MinIO server by specifying a private key
|
||||||
|
(``.key``) and public certificate (``.crt``) to the MinIO ``certs`` directory:
|
||||||
|
|
||||||
|
- For Linux/MacOS: ``${HOME}/.minio/certs``
|
||||||
|
|
||||||
|
- For Windows: ``%%USERPROFILE%%\.minio\certs``
|
||||||
|
|
||||||
|
The MinIO server automatically enables TLS/SSL connectivity if it detects
|
||||||
|
the required certificates in the ``certs`` directory.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
The MinIO documentation makes a best-effort to provide generally applicable
|
||||||
|
and accurate information on TLS/SSL connectivity in the context of MinIO
|
||||||
|
products and services, and is not intended as a complete guide to the larger
|
||||||
|
topic of TLS/SSL certificate creation and management.
|
||||||
|
|
||||||
|
3) Run the ``minio`` Server
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Issue the following command on each host machine in the deployment. The
|
||||||
|
following example assumes that:
|
||||||
|
|
||||||
|
- The deployment has four host machines with sequential hostnames
|
||||||
|
(i.e. ``minio1.example.com``, ``minio2.example.com``).
|
||||||
|
|
||||||
|
- Each host machine has *at least* four disks mounted at ``/data``. 4 disks is
|
||||||
|
the minimum required for :ref:`erasure coding
|
||||||
|
<minio-erasure-coding>`.
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
:class: copyable
|
||||||
|
|
||||||
|
export MINIO_ACCESS_KEY=minio-admin
|
||||||
|
export MINIO_SECRET_KEY=minio-secret-key-CHANGE-ME
|
||||||
|
minio server https://minio{1...4}.example.com/mnt/disk{1...4}/data
|
||||||
|
|
||||||
|
The example command breaks down as follows:
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:widths: 40 60
|
||||||
|
:width: 100%
|
||||||
|
|
||||||
|
* - :envvar:`MINIO_ACCESS_KEY`
|
||||||
|
- The access key for the :ref:`root <minio-auth-authz-root>` user.
|
||||||
|
|
||||||
|
Replace this value with a unique, random, and long string.
|
||||||
|
|
||||||
|
* - :envvar:`MINIO_SECRET_KEY`
|
||||||
|
- The corresponding secret key to use for the
|
||||||
|
:ref:`root <minio-auth-authz-root>` user.
|
||||||
|
|
||||||
|
Replace this value with a unique, random, and long string.
|
||||||
|
|
||||||
|
* - ``https://minio{1...4}.example.com/``
|
||||||
|
- The DNS hostname of each server in the distributed deployment.
|
||||||
|
|
||||||
|
* - ``/mnt/disk{1...4}/data``
|
||||||
|
- The path to each disk on the host machine.
|
||||||
|
|
||||||
|
``/data`` is an optional folder in which the ``minio`` server stores
|
||||||
|
all information related to the deployment.
|
||||||
|
|
||||||
|
See :mc-cmd:`minio server DIRECTORIES` for more information on
|
||||||
|
configuring the backing storage for the :mc:`minio server` process.
|
||||||
|
|
||||||
|
The command uses MinIO expansion notation ``{x...y}`` to denote a sequential
|
||||||
|
series. Specifically:
|
||||||
|
|
||||||
|
- The hostname ``https://minio{1...4}.example.com`` expands to:
|
||||||
|
|
||||||
|
- ``https://minio1.example.com``
|
||||||
|
- ``https://minio2.example.com``
|
||||||
|
- ``https://minio3.example.com``
|
||||||
|
- ``https://minio4.example.com``
|
||||||
|
|
||||||
|
- ``/mnt/disk{1...4}/data`` expands to
|
||||||
|
|
||||||
|
- ``/mnt/disk1/data``
|
||||||
|
- ``/mnt/disk2/data``
|
||||||
|
- ``/mnt/disk3/data``
|
||||||
|
- ``/mnt/disk4/data``
|
||||||
|
|
||||||
|
4) Connect to the Server
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Use the :mc-cmd:`mc alias set` command from a machine with connectivity to any
|
||||||
|
hostname running the ``minio`` server. See :ref:`mc-install` for documentation
|
||||||
|
on installing :program:`mc`.
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
:class: copyable
|
||||||
|
|
||||||
|
mc alias set mylocalminio minio1.example.net minioadmin minio-secret-key-CHANGE-ME
|
||||||
|
|
||||||
|
See :ref:`minio-mc-commands` for a list of commands you can run on the
|
||||||
|
MinIO server.
|
||||||
|
|
||||||
|
Docker Installation
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
Stable MinIO
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
|
The following ``docker`` command creates a container running the latest stable
|
||||||
|
version of the ``minio`` server process:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
:class: copyable
|
||||||
|
|
||||||
|
docker run -p 9000:9000 \
|
||||||
|
-e "MINIO_ACCESS_KEY=ROOT_ACCESS_KEY" \
|
||||||
|
-e "MINIO_SECRET_KEY=SECRET_ACCESS_KEY_CHANGE_ME" \
|
||||||
|
-v /mnt/disk1:/disk1 \
|
||||||
|
-v /mnt/disk2:/disk2 \
|
||||||
|
-v /mnt/disk3:/disk3 \
|
||||||
|
-v /mnt/disk4:/disk4 \
|
||||||
|
minio/minio server /disk{1...4}
|
||||||
|
|
||||||
|
The command uses the following options:
|
||||||
|
|
||||||
|
- ``-e MINIO_ACCESS_KEY`` and ``-e MINIO_SECRET_KEY`` for configuring the
|
||||||
|
:ref:`root <minio-auth-authz-root>` user credentials.
|
||||||
|
|
||||||
|
- ``-v /mnt/disk<int>:/disk<int>`` for configuring each disk the ``minio``
|
||||||
|
server uses.
|
||||||
|
|
||||||
|
Bleeding Edge MinIO
|
||||||
|
~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
*Do not use bleeding-edge deployments of MinIO in production environments*
|
||||||
|
|
||||||
|
The following ``docker`` command creates a container running the latest
|
||||||
|
bleeding-edge version of the ``minio`` server process:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
:class: copyable
|
||||||
|
|
||||||
|
docker run -p 9000:9000 \
|
||||||
|
-e "MINIO_ACCESS_KEY=ROOT_ACCESS_KEY" \
|
||||||
|
-e "MINIO_SECRET_KEY=SECRET_ACCESS_KEY_CHANGE_ME" \
|
||||||
|
-v /mnt/disk1:/disk1 \
|
||||||
|
-v /mnt/disk2:/disk2 \
|
||||||
|
-v /mnt/disk3:/disk3 \
|
||||||
|
-v /mnt/disk4:/disk4 \
|
||||||
|
minio/minio:edge server /disk{1...4}
|
||||||
|
|
||||||
|
The command uses the following options:
|
||||||
|
|
||||||
|
- ``MINIO_ACCESS_KEY`` and ``MINIO_SECRET_KEY`` for configuring the
|
||||||
|
:ref:`root <minio-auth-authz-root>` user credentials.
|
||||||
|
|
||||||
|
- ``-v /mnt/disk<int>:/disk<int>`` for configuring each disk the ``minio``
|
||||||
|
server uses.
|
||||||
|
|
||||||
|
Deployment Recommendations
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
Minimum Nodes per Deployment
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
For all production deployments, MinIO recommends a *minimum* of 4 nodes per
|
||||||
|
cluster. MinIO deployments with *at least* 4 nodes can tolerate the loss of up
|
||||||
|
to half the nodes *or* half the disks in the deployment while maintaining
|
||||||
|
read and write availability.
|
||||||
|
|
||||||
|
For example, assuming a 4-node deployment with 4 drives per node, the
|
||||||
|
cluster can tolerate the loss of:
|
||||||
|
|
||||||
|
- Any two nodes, *or*
|
||||||
|
- Any 8 drives.
|
||||||
|
|
||||||
|
The minimum recommendation reflects MinIO's experience with assisting enterprise
|
||||||
|
customers in deploying on a variety of IT infrastructures while
|
||||||
|
maintaining the desired SLA/SLO. While MinIO may run on less than the
|
||||||
|
minimum recommended topology, any potential cost savings come at the risk of
|
||||||
|
decreased reliability.
|
||||||
|
|
||||||
|
Recommended Hardware
|
||||||
|
~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
For MinIO's recommended hardware, please see
|
||||||
|
`MinIO Reference Hardware <https://min.io/product/reference-hardware>`__.
|
||||||
|
|
||||||
|
Bare Metal Infrastructure
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
A distributed MinIO deployment can only provide as much availability as the
|
||||||
|
bare metal infrastructure on which it is deployed. In particular, consider the
|
||||||
|
following potential failure points which could result in cluster downtime
|
||||||
|
when configuring your bare metal infrastructure:
|
||||||
|
|
||||||
|
- Shared networking resources (switches, routers, ISP).
|
||||||
|
- Shared power resources.
|
||||||
|
- Shared physical location (rack, datacenter, region).
|
||||||
|
|
||||||
|
MinIO deployments using virtual machines or containerized environments should
|
||||||
|
also consider the following:
|
||||||
|
|
||||||
|
- Shared physical hardware (CPU, Memory, Storage)
|
||||||
|
- Shared orchestration management layer (Kubernetes, Docker Swarm)
|
||||||
|
|
||||||
|
FreeBSD
|
||||||
|
-------
|
||||||
|
|
||||||
|
MinIO does not provide an official FreeBSD binary. FreeBSD maintains an
|
||||||
|
`upstream release <https://www.freshports.org/www/minio>`__ you can
|
||||||
|
install using `pkg <https://github.com/freebsd/pkg>`__:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
:class: copyable
|
||||||
|
|
||||||
|
pkg install minio
|
||||||
|
sysrc minio_enable=yes
|
||||||
|
sysrc minio_disks=/path/to/disks
|
||||||
|
service minio start
|
@ -85,14 +85,14 @@ html_favicon = '_static/favicon.png'
|
|||||||
|
|
||||||
html_sidebars = {
|
html_sidebars = {
|
||||||
'**' : [
|
'**' : [
|
||||||
'about.html',
|
|
||||||
'navigation.html',
|
|
||||||
'searchbox.html',
|
'searchbox.html',
|
||||||
|
'navigation.html',
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
html_theme_options = {
|
html_theme_options = {
|
||||||
'fixed_sidebar' : 'true',
|
'fixed_sidebar' : 'true',
|
||||||
|
'show_relbars': 'true',
|
||||||
}
|
}
|
||||||
|
|
||||||
# Add any paths that contain custom static files (such as style sheets) here,
|
# Add any paths that contain custom static files (such as style sheets) here,
|
||||||
|
96
source/includes/minio-server-installation.rst
Normal file
96
source/includes/minio-server-installation.rst
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
.. tabs::
|
||||||
|
|
||||||
|
.. tab:: Linux
|
||||||
|
|
||||||
|
The following commands add a *temporary* extension to your system
|
||||||
|
PATH for running the ``minio`` utility. Defer to your operating system
|
||||||
|
instructions for making permanent modifications to your system PATH.
|
||||||
|
|
||||||
|
Alternatively, execute ``minio`` by navigating to the download folder and
|
||||||
|
running ``./minio --help``
|
||||||
|
|
||||||
|
**64-bit Intel**
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
:class: copyable
|
||||||
|
|
||||||
|
curl https://dl.min.io/server/minio/release/linux-amd64/minio \
|
||||||
|
--create-dirs \
|
||||||
|
-o $HOME/minio-binaries/minio
|
||||||
|
|
||||||
|
chmod +x $HOME/minio-binaries/minio
|
||||||
|
export PATH=$PATH:$HOME/minio-binaries/
|
||||||
|
|
||||||
|
minio --help
|
||||||
|
|
||||||
|
**64-bit PPC**
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
:class: copyable
|
||||||
|
|
||||||
|
curl https://dl.min.io/server/minio/release/linux-ppc64le/minio \
|
||||||
|
--create-dirs \
|
||||||
|
-o $HOME/minio-binaries/minio
|
||||||
|
|
||||||
|
chmod +x $HOME/minio-binaries/minio
|
||||||
|
export PATH=$PATH:$HOME/minio-binaries/
|
||||||
|
|
||||||
|
minio --help
|
||||||
|
|
||||||
|
.. tab:: macOS
|
||||||
|
|
||||||
|
|
||||||
|
**Homebrew**
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
:class: copyable
|
||||||
|
|
||||||
|
brew install minio/stable/minio
|
||||||
|
minio --help
|
||||||
|
|
||||||
|
**Binary Download**
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
:class: copyable
|
||||||
|
|
||||||
|
curl https://dl.min.io/server/minio/release/darwin-amd64/minio \
|
||||||
|
--create-dirs \
|
||||||
|
-o $HOME/minio-binaries/minio
|
||||||
|
|
||||||
|
chmod +x $HOME/minio-binaries/minio
|
||||||
|
export PATH=$PATH:$HOME/minio-binaries/
|
||||||
|
|
||||||
|
|
||||||
|
.. tab:: Windows
|
||||||
|
|
||||||
|
Open the following file in a browser:
|
||||||
|
|
||||||
|
https://dl.min.io/server/minio/release/windows-amd64/minio.exe
|
||||||
|
|
||||||
|
Execute the file by double clicking on it, *or* by running the
|
||||||
|
following in the command prompt or powershell:
|
||||||
|
|
||||||
|
.. code-block:: powershell
|
||||||
|
|
||||||
|
\path\to\mc.exe --help
|
||||||
|
|
||||||
|
.. tab:: Source
|
||||||
|
|
||||||
|
Installation from source is intended for developers and advanced users
|
||||||
|
and requires a working Golang environment. See
|
||||||
|
`How to install Golang <https://golang.org/doc/install>`__.
|
||||||
|
|
||||||
|
Run the following commands in a terminal environment to install ``minio``
|
||||||
|
from source:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
:class: copyable
|
||||||
|
|
||||||
|
go get -d github.com/minio/minio
|
||||||
|
cd ${GOPATH}/src/github.com/minio/minio
|
||||||
|
make
|
||||||
|
|
||||||
|
To update a source-based installation, use ``go get -u``.
|
||||||
|
:mc-cmd:`minio update` does not support source-based installations.
|
||||||
|
|
||||||
|
|
@ -12,15 +12,17 @@ First-time users of MinIO *or* object storage services should start with
|
|||||||
our :doc:`Introduction </introduction/minio-overview>`.
|
our :doc:`Introduction </introduction/minio-overview>`.
|
||||||
|
|
||||||
Users deploying onto a Kubernetes cluster should start with our
|
Users deploying onto a Kubernetes cluster should start with our
|
||||||
:doc:`Kubernetes-specific documentation </kubernetes/minio-kubernetes>`.
|
:doc:`Kubernetes documentation </kubernetes/minio-kubernetes-overview>`.
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:titlesonly:
|
:titlesonly:
|
||||||
:hidden:
|
:hidden:
|
||||||
|
|
||||||
/introduction/minio-overview
|
/introduction/minio-overview
|
||||||
/minio-features/overview.rst
|
/minio-features/overview
|
||||||
/kubernetes/minio-kubernetes
|
/bare-metal/minio-baremetal-overview
|
||||||
|
/kubernetes/minio-kubernetes-overview
|
||||||
/security/minio-security
|
/security/minio-security
|
||||||
/minio-cli/minio-mc
|
/minio-cli/minio-mc
|
||||||
/minio-cli/minio-mc-admin
|
/minio-cli/minio-mc-admin
|
||||||
|
/minio-server/minio-server
|
||||||
|
@ -1,75 +0,0 @@
|
|||||||
.. _minio-bucket:
|
|
||||||
|
|
||||||
=======
|
|
||||||
Buckets
|
|
||||||
=======
|
|
||||||
|
|
||||||
.. default-domain:: minio
|
|
||||||
|
|
||||||
.. contents:: On This Page
|
|
||||||
:local:
|
|
||||||
:depth: 2
|
|
||||||
|
|
||||||
|
|
||||||
A :ref:`bucket <minio-bucket>` is a folder or storage container that can hold an
|
|
||||||
arbitrary number of :ref:`objects <minio-object>`. Minio buckets provide the
|
|
||||||
same functionality as an Amazon Web Services (AWS) S3 Bucket. The MinIO API is
|
|
||||||
fully compatible with the Amazon S3 API, where applications can seamlessly
|
|
||||||
transition to using the MinIO deployment with minimal code changes.
|
|
||||||
|
|
||||||
Bucket Notifications
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
MinIO Bucket Notifications allow you to automatically publish notifications
|
|
||||||
to one or more configured endpoints when specific events occur in a bucket.
|
|
||||||
|
|
||||||
See :doc:`/minio-features/bucket-notifications` for more information.
|
|
||||||
|
|
||||||
Push Notifications
|
|
||||||
~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
MinIO supports pushing events to the following targets:
|
|
||||||
|
|
||||||
- AMQP
|
|
||||||
- MQTT
|
|
||||||
- Elasticsearch
|
|
||||||
- NSQ
|
|
||||||
- Redis
|
|
||||||
- NATS
|
|
||||||
- PostgreSQL
|
|
||||||
- MySQL
|
|
||||||
- Apache Kafka
|
|
||||||
- Webhooks
|
|
||||||
|
|
||||||
Use the ``mc admin`` utility to configure the MinIO deployment to actively
|
|
||||||
push notifications to each configured target. For more complete documentation,
|
|
||||||
see <logging tbd>
|
|
||||||
|
|
||||||
Listener API
|
|
||||||
~~~~~~~~~~~~
|
|
||||||
|
|
||||||
MinIO provides two routes to listen for events for a given bucket:
|
|
||||||
|
|
||||||
- The ``mc event`` command.
|
|
||||||
- The ``BucketNotification`` API.
|
|
||||||
|
|
||||||
.. todo: Add more information here as its available.
|
|
||||||
|
|
||||||
Write Once Read Many (WORM)
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
MinIO supports enabling Write-Once Read-Many (WORM) for specific objects
|
|
||||||
in a bucket *or* for all objects in the bucket. Objects with WORM applied
|
|
||||||
are immutable, and can only be deleted if the WORM configuration includes an
|
|
||||||
expiry.
|
|
||||||
|
|
||||||
Configure WORM for Bucket
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
ToDo: Enable, Disable WORM
|
|
||||||
|
|
||||||
Configure WORM for Specific Objects
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
ToDo: Enable, Disable WORM per object
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
|||||||
Deployment Topologies
|
Deployment Topologies
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
|
.. default-domain:: minio
|
||||||
|
|
||||||
MinIO supports three deployment topologies:
|
MinIO supports three deployment topologies:
|
||||||
|
|
||||||
.. list-table::
|
.. list-table::
|
||||||
@ -25,7 +27,7 @@ MinIO supports three deployment topologies:
|
|||||||
|
|
||||||
* - :ref:`Active-Active <minio-deployment-active-active>`
|
* - :ref:`Active-Active <minio-deployment-active-active>`
|
||||||
- Multiple distributed deployments with intra-deployment
|
- Multiple distributed deployments with intra-deployment
|
||||||
replication to synchronize :ref:`objects <minio-object>` across
|
replication to synchronize :ref:`objects <objects>` across
|
||||||
deployments.
|
deployments.
|
||||||
|
|
||||||
Active-Active Distributed deployments are ideal for production
|
Active-Active Distributed deployments are ideal for production
|
||||||
@ -43,6 +45,7 @@ TBD:
|
|||||||
- Link to deployment tutorials (kubernetes, bare-metal)
|
- Link to deployment tutorials (kubernetes, bare-metal)
|
||||||
|
|
||||||
.. _minio-deployment-distributed:
|
.. _minio-deployment-distributed:
|
||||||
|
.. _minio-zones:
|
||||||
|
|
||||||
Distributed Deployment
|
Distributed Deployment
|
||||||
----------------------
|
----------------------
|
||||||
@ -51,6 +54,7 @@ TBD:
|
|||||||
- Add a diagram of a distributed deployment
|
- Add a diagram of a distributed deployment
|
||||||
- List the drawbacks (if any)
|
- List the drawbacks (if any)
|
||||||
- Link to deployment tutorials (kubernetes, bare-metal)
|
- Link to deployment tutorials (kubernetes, bare-metal)
|
||||||
|
- Discuss horizontal expansion / zones
|
||||||
|
|
||||||
.. _minio-deployment-active-active:
|
.. _minio-deployment-active-active:
|
||||||
|
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
Erasure Coding
|
Erasure Coding
|
||||||
==============
|
==============
|
||||||
|
|
||||||
|
.. default-domain:: minio
|
||||||
|
|
||||||
MinIO protects data with per-object, inline erasure coding, which is written in
|
MinIO protects data with per-object, inline erasure coding, which is written in
|
||||||
assembly code to deliver the highest performance possible. MinIO uses
|
assembly code to deliver the highest performance possible. MinIO uses
|
||||||
Reed-Solomon code to stripe objects into `n/2` data and ``n/2`` parity blocks -
|
Reed-Solomon code to stripe objects into `n/2` data and ``n/2`` parity blocks -
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
Introduction
|
Introduction
|
||||||
============
|
============
|
||||||
|
|
||||||
|
.. default-domain:: minio
|
||||||
|
|
||||||
MinIO is a High Performance Object Storage released under Apache License v2.0.
|
MinIO is a High Performance Object Storage released under Apache License v2.0.
|
||||||
It is API compatible with Amazon S3 cloud storage service. Use MinIO to build
|
It is API compatible with Amazon S3 cloud storage service. Use MinIO to build
|
||||||
high performance infrastructure for machine learning, analytics and application
|
high performance infrastructure for machine learning, analytics and application
|
||||||
@ -10,50 +12,55 @@ data workloads.
|
|||||||
What Is Object Storage?
|
What Is Object Storage?
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
Applications create, update, retrieve, and delete data as part of normal
|
.. _objects:
|
||||||
operations. MinIO provides a complete solution for managing the storage
|
|
||||||
and access of that data as :ref:`objects <minio-object>`. Applications group
|
|
||||||
objects into one or more :ref:`buckets <minio-bucket>`.
|
|
||||||
|
|
||||||
MinIO is fully compatible with the Amazon Web Services Simple Storage Service
|
An :ref:`object <objects>` is binary data, sometimes referred to as a Binary
|
||||||
(AWS S3) API. Applications using the AWS S3 API can seamlessly transition to
|
Large OBject (BLOB). Blobs can be images, audio files, spreadsheets, or even
|
||||||
using a MinIO deployment for managing their application's object storage with
|
binary executable code. Object Storage platforms like MinIO provide dedicated
|
||||||
minimal code changes.
|
tools and capabilities for storing, retrieving, and searching for blobs.
|
||||||
|
|
||||||
Erasure Coding
|
.. _buckets:
|
||||||
--------------
|
|
||||||
|
|
||||||
MinIO Erasure Coding guarantees object retrieval as long as the deployment
|
MinIO Object Storage uses :ref:`buckets <buckets>` to organize objects.
|
||||||
has at least half of its drives operational. Specifically, the deployment
|
A bucket is similar to a folder or directory in a filesystem, where each
|
||||||
can lose `(n/2)-1` drives and still service create, retrieval, update, and
|
bucket can hold an arbitrary number of objects. MinIO buckets provide the
|
||||||
delete operations.
|
same functionality as AWS S3 buckets.
|
||||||
|
|
||||||
For example, consider a deployment with 12 data drives. MinIO splits the
|
For example, consider an application that hosts a web blog. The application
|
||||||
12 drive set into 6 data drives and 6 parity drives. As long as *at least* 7
|
needs to store a variety of blobs, including rich multimedia like videos and
|
||||||
drives are online, the MinIO server can guarantee retrieval of any stored
|
images. The structure of objects on the MinIO server might look similar to the
|
||||||
object.
|
following:
|
||||||
|
|
||||||
For more information on MinIO Erasure Coding, see
|
.. code-block:: shell
|
||||||
:ref:`minio-erasure-coding`.
|
|
||||||
|
|
||||||
Bitrot Protection
|
/ #root
|
||||||
-----------------
|
/images/
|
||||||
|
2020-01-02-blog-title.png
|
||||||
|
2020-01-03-blog-title.png
|
||||||
|
/videos/
|
||||||
|
2020-01-03-blog-cool-video.mp4
|
||||||
|
/blogs/
|
||||||
|
2020-01-02-blog.md
|
||||||
|
2020-01-03-blog.md
|
||||||
|
/comments/
|
||||||
|
2020-01-02-blog-comments.json
|
||||||
|
2020-01-02-blog-comments.json
|
||||||
|
|
||||||
MinIO Bitrot Protection heals objects that have degraded due to
|
Deploying MinIO
|
||||||
disk corruption. When applications request a specific object, MinIO
|
---------------
|
||||||
automatically checks for corruption and applies a healing algorithm to
|
|
||||||
reconstruct the object.
|
|
||||||
|
|
||||||
For more information on MinIO Bitrot Protection, see
|
For Kubernetes clusters, use the MinIO Kubernetes Operator.
|
||||||
:ref:`minio-bitrot-protection`.
|
See :ref:`minio-kubernetes` for more information.
|
||||||
|
|
||||||
|
For bare-metal environments, including private cloud services
|
||||||
|
or containerized environments, install and run the :mc:`minio server` on
|
||||||
|
each host in the MinIO deployment. See :ref:`minio-baremetal` for more
|
||||||
|
information.
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:hidden:
|
:hidden:
|
||||||
:titlesonly:
|
:titlesonly:
|
||||||
|
|
||||||
/introduction/buckets.rst
|
|
||||||
/introduction/objects.rst
|
|
||||||
/introduction/deployment-topologies.rst
|
/introduction/deployment-topologies.rst
|
||||||
/introduction/erasure-coding.rst
|
/introduction/erasure-coding.rst
|
||||||
/introduction/bitrot-protection.rst
|
/introduction/bitrot-protection.rst
|
@ -1,15 +0,0 @@
|
|||||||
.. _minio-object:
|
|
||||||
|
|
||||||
=======
|
|
||||||
Objects
|
|
||||||
=======
|
|
||||||
|
|
||||||
An :ref:`object <minio-object>` is any kind of data with no limit to its
|
|
||||||
size, format, or type. Examples of objects include digital images,
|
|
||||||
text documents, or video files. Applications can store, retrieve, and
|
|
||||||
delete objects from a MinIO deployment.
|
|
||||||
|
|
||||||
MinIO objects provide the same core functionality as an Amazon Web Services (AWS)
|
|
||||||
S3 Object. The MinIO API is fully compatible with the Amazon S3 API,
|
|
||||||
where applications can seamlessly transition to using the MinIO deployment
|
|
||||||
with minimal code changes.
|
|
@ -1,87 +0,0 @@
|
|||||||
====================================
|
|
||||||
Deploy MinIO on a Kubernetes Cluster
|
|
||||||
====================================
|
|
||||||
|
|
||||||
.. default-domain:: minio
|
|
||||||
|
|
||||||
.. contents:: On This Page
|
|
||||||
:local:
|
|
||||||
:depth: 2
|
|
||||||
|
|
||||||
Overview
|
|
||||||
--------
|
|
||||||
|
|
||||||
This tutorial uses the MinIO Kubernetes Operator to deploy MinIO to your
|
|
||||||
Kubernetes cluster in a distributed configuration. Distributed MinIO deployments
|
|
||||||
are suitable for development, staging, and production environments. For
|
|
||||||
a tutorial on creating a more simple MinIO deployment for local development
|
|
||||||
and evaluation, see :doc:`/kubernetes/quickstart`.
|
|
||||||
|
|
||||||
By default, this tutorial creates a distributed MinIO deployment with the
|
|
||||||
following components:
|
|
||||||
|
|
||||||
- 4 MinIO server instances with TLS enabled.
|
|
||||||
- 4 x 1TB storage volumes per MinIO server instance.
|
|
||||||
- 1 MinIO KES key management instance.
|
|
||||||
- 1 MinIO Minio Console Service instance.
|
|
||||||
- 1 MinIO Operator instance.
|
|
||||||
|
|
||||||
This tutorial includes instructions for modifying the deployment configuration
|
|
||||||
for your specific requirements.
|
|
||||||
|
|
||||||
You should have basic familiarity with Kubernetes, its associated terminology,
|
|
||||||
and its command line tools prior to starting this tutorial. While the MinIO
|
|
||||||
documentation makes a best-effort to address Kubernetes-specific information,
|
|
||||||
you should review the official Kubernetes :kube-docs:`documentation <>` for more
|
|
||||||
complete coverage.
|
|
||||||
|
|
||||||
.. _minio-kubernetes-deploy-minio-prerequisites:
|
|
||||||
|
|
||||||
Prerequisites
|
|
||||||
-------------
|
|
||||||
|
|
||||||
This tutorial requires the following resources:
|
|
||||||
|
|
||||||
- The :minio-git:`minio-operator <minio-operator>` github repository.
|
|
||||||
|
|
||||||
- A Kubernetes cluster with *at least* **four**
|
|
||||||
:kube-docs:`node` per MinIO server instance. Each node must have *at least*
|
|
||||||
**four** persistent volumes.
|
|
||||||
|
|
||||||
- A host machine with ``kubectl`` installed. See
|
|
||||||
:kube-docs:`Install and Set Up kubectl <tasks/tools/install-kubectl/>`
|
|
||||||
|
|
||||||
The host machine should be configured such that ``kubectl`` can access the
|
|
||||||
Kubernetes cluster. See :kube-docs:`Access Applications in a Cluster
|
|
||||||
<tasks/access-application-cluster>` for more information.
|
|
||||||
|
|
||||||
Considerations
|
|
||||||
--------------
|
|
||||||
|
|
||||||
.. ToDo:
|
|
||||||
|
|
||||||
- Document recommended resource allocation (CPU, RAM, etc.)
|
|
||||||
- Document recommended number of MinIO pods to Nodes
|
|
||||||
- Document recommended ratio of PV to Physical Disk
|
|
||||||
|
|
||||||
Procedure
|
|
||||||
---------
|
|
||||||
|
|
||||||
1) First Step Header
|
|
||||||
~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
a) First Substep
|
|
||||||
````````````````
|
|
||||||
|
|
||||||
b) Second Substep
|
|
||||||
`````````````````
|
|
||||||
|
|
||||||
2) Second Step Header
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
a) First Substep
|
|
||||||
````````````````
|
|
||||||
|
|
||||||
b) Second Substep
|
|
||||||
`````````````````
|
|
||||||
|
|
@ -1,113 +0,0 @@
|
|||||||
========================================
|
|
||||||
Enforce Security for MinIO in Kubernetes
|
|
||||||
========================================
|
|
||||||
|
|
||||||
.. default-domain:: minio
|
|
||||||
|
|
||||||
.. contents:: On This Page
|
|
||||||
:local:
|
|
||||||
:depth: 2
|
|
||||||
|
|
||||||
Overview
|
|
||||||
--------
|
|
||||||
|
|
||||||
This page covers multiple procedures for configuring MinIO security features
|
|
||||||
using the MinIO Kubernetes Operator.
|
|
||||||
|
|
||||||
You should have basic familiarity with Kubernetes, its associated terminology,
|
|
||||||
and its command line tools prior to starting any of the documented procedures.
|
|
||||||
While the MinIO documentation makes a best-effort to address Kubernetes-specific
|
|
||||||
information, you should review the official Kubernetes :kube-docs:`documentation
|
|
||||||
<>` for more complete coverage.
|
|
||||||
|
|
||||||
.. _minio-kubernetes-enforce-security-prerequisites:
|
|
||||||
|
|
||||||
Prerequisites
|
|
||||||
-------------
|
|
||||||
|
|
||||||
This tutorial requires the following resources:
|
|
||||||
|
|
||||||
- The :minio-git:`minio-operator <minio-operator>` github repository.
|
|
||||||
|
|
||||||
- A Kubernetes cluster with *at least* **four**
|
|
||||||
:kube-docs:`node` per MinIO server instance. Each node must have *at least*
|
|
||||||
**four** persistent volumes.
|
|
||||||
|
|
||||||
- A host machine with ``kubectl`` installed. See
|
|
||||||
:kube-docs:`Install and Set Up kubectl <tasks/tools/install-kubectl/>`
|
|
||||||
|
|
||||||
The host machine should be configured such that ``kubectl`` can access the
|
|
||||||
Kubernetes cluster. See :kube-docs:`Access Applications in a Cluster
|
|
||||||
<tasks/access-application-cluster>` for more information.
|
|
||||||
|
|
||||||
Considerations
|
|
||||||
--------------
|
|
||||||
|
|
||||||
.. ToDo:
|
|
||||||
|
|
||||||
- Document recommended resource allocation (CPU, RAM, etc.)
|
|
||||||
- Document recommended number of MinIO pods to Nodes
|
|
||||||
- Document recommended ratio of PV to Physical Disk
|
|
||||||
|
|
||||||
Enable TLS
|
|
||||||
----------
|
|
||||||
|
|
||||||
1) First Step Header
|
|
||||||
~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
a) First Substep
|
|
||||||
````````````````
|
|
||||||
|
|
||||||
b) Second Substep
|
|
||||||
`````````````````
|
|
||||||
|
|
||||||
2) Second Step Header
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
a) First Substep
|
|
||||||
````````````````
|
|
||||||
|
|
||||||
b) Second Substep
|
|
||||||
`````````````````
|
|
||||||
|
|
||||||
Configure Root Access to MinIO Servers
|
|
||||||
--------------------------------------
|
|
||||||
|
|
||||||
1) First Step Header
|
|
||||||
~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
a) First Substep
|
|
||||||
````````````````
|
|
||||||
|
|
||||||
b) Second Substep
|
|
||||||
`````````````````
|
|
||||||
|
|
||||||
2) Second Step Header
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
a) First Substep
|
|
||||||
````````````````
|
|
||||||
|
|
||||||
b) Second Substep
|
|
||||||
`````````````````
|
|
||||||
|
|
||||||
Another Deployment-Level Security Feature
|
|
||||||
-----------------------------------------
|
|
||||||
|
|
||||||
1) First Step Header
|
|
||||||
~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
a) First Substep
|
|
||||||
````````````````
|
|
||||||
|
|
||||||
b) Second Substep
|
|
||||||
`````````````````
|
|
||||||
|
|
||||||
2) Second Step Header
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
a) First Substep
|
|
||||||
````````````````
|
|
||||||
|
|
||||||
b) Second Substep
|
|
||||||
`````````````````
|
|
@ -1,77 +0,0 @@
|
|||||||
====================================
|
|
||||||
Expand MinIO in a Kubernetes Cluster
|
|
||||||
====================================
|
|
||||||
|
|
||||||
.. default-domain:: minio
|
|
||||||
|
|
||||||
.. contents:: On This Page
|
|
||||||
:local:
|
|
||||||
:depth: 2
|
|
||||||
|
|
||||||
Overview
|
|
||||||
--------
|
|
||||||
|
|
||||||
This tutorial uses the MinIO Kubernetes Operator to expand an existing
|
|
||||||
distributed MinIO deployment in your Kubernetes cluster. Specifically,
|
|
||||||
this tutorial covers:
|
|
||||||
|
|
||||||
- Adding additional MinIO server instances to the deployment, *and*
|
|
||||||
- Adding additional drives to a MinIO server instance.
|
|
||||||
|
|
||||||
This tutorial includes instructions for modifying the deployment configuration
|
|
||||||
for your specific requirements.
|
|
||||||
|
|
||||||
You should have basic familiarity with Kubernetes, its associated terminology,
|
|
||||||
and its command line tools prior to starting this tutorial. While the MinIO
|
|
||||||
documentation makes a best-effort to address Kubernetes-specific information,
|
|
||||||
you should review the official Kubernetes :kube-docs:`documentation <>` for more
|
|
||||||
complete coverage.
|
|
||||||
|
|
||||||
.. _minio-kubernetes-expand-minio-prerequisites:
|
|
||||||
|
|
||||||
Prerequisites
|
|
||||||
-------------
|
|
||||||
|
|
||||||
This tutorial requires the following resources:
|
|
||||||
|
|
||||||
- The :minio-git:`minio-operator <minio-operator>` github repository.
|
|
||||||
|
|
||||||
- An existing Kubernetes cluster with a distributed MinIO deployment.
|
|
||||||
|
|
||||||
- A host machine with ``kubectl`` installed. See
|
|
||||||
:kube-docs:`Install and Set Up kubectl <tasks/tools/install-kubectl/>`
|
|
||||||
|
|
||||||
The host machine should be configured such that ``kubectl`` can access the
|
|
||||||
Kubernetes cluster. See :kube-docs:`Access Applications in a Cluster
|
|
||||||
<tasks/access-application-cluster>` for more information.
|
|
||||||
|
|
||||||
Considerations
|
|
||||||
--------------
|
|
||||||
|
|
||||||
.. ToDo:
|
|
||||||
|
|
||||||
- Document recommended resource allocation (CPU, RAM, etc.)
|
|
||||||
- Document recommended number of MinIO pods to Nodes
|
|
||||||
- Document recommended ratio of PV to Physical Disk
|
|
||||||
|
|
||||||
Procedure
|
|
||||||
---------
|
|
||||||
|
|
||||||
1) First Step Header
|
|
||||||
~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
a) First Substep
|
|
||||||
````````````````
|
|
||||||
|
|
||||||
b) Second Substep
|
|
||||||
`````````````````
|
|
||||||
|
|
||||||
2) Second Step Header
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
a) First Substep
|
|
||||||
````````````````
|
|
||||||
|
|
||||||
b) Second Substep
|
|
||||||
`````````````````
|
|
||||||
|
|
27
source/kubernetes/minio-kubernetes-overview.rst
Normal file
27
source/kubernetes/minio-kubernetes-overview.rst
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
.. _minio-kubernetes:
|
||||||
|
|
||||||
|
=====================
|
||||||
|
MinIO for Kuberenetes
|
||||||
|
=====================
|
||||||
|
|
||||||
|
.. default-domain:: minio
|
||||||
|
|
||||||
|
MinIO is a high performance distributed object storage server, designed for
|
||||||
|
large-scale private cloud infrastructure. MinIO is designed in a cloud-native
|
||||||
|
manner to scale sustainably in multi-tenant environments.
|
||||||
|
|
||||||
|
Orchestration platforms like Kubernetes provide perfect cloud-native environment
|
||||||
|
to deploy and scale MinIO. The :minio-git:`MinIO Kubernetes Operator
|
||||||
|
</minio-operator>` brings native MinIO support to Kubernetes.
|
||||||
|
|
||||||
|
.. image:: /images/Kubernetes-Minio.svg
|
||||||
|
:align: center
|
||||||
|
:width: 90%
|
||||||
|
:class: no-scaled-link
|
||||||
|
:alt: Kubernetes Orchestration with the MinIO Operator facilitates automated deployment of MinIO clusters.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
More complete documentation for the MinIO Kubernetes Operator is in progress.
|
||||||
|
See the :minio-git:`MinIO Kubernetes Operator </minio-operator>` Github
|
||||||
|
Repository for the most up-to-date progress on the project.
|
@ -1,41 +0,0 @@
|
|||||||
=====================
|
|
||||||
MinIO for Kuberenetes
|
|
||||||
=====================
|
|
||||||
|
|
||||||
.. default-domain:: minio
|
|
||||||
|
|
||||||
.. contents:: On This Page
|
|
||||||
:local:
|
|
||||||
:depth: 2
|
|
||||||
|
|
||||||
MinIO is a high performance distributed object storage server, designed for
|
|
||||||
large-scale private cloud infrastructure. MinIO is designed in a cloud-native
|
|
||||||
manner to scale sustainably in multi-tenant environments. Orchestration
|
|
||||||
platforms like Kubernetes provide perfect cloud-native environment to deploy and
|
|
||||||
scale MinIO. The :minio-git:`MinIO Kubernetes Operator </minio-operator>` brings
|
|
||||||
native MinIO support to Kubernetes.
|
|
||||||
|
|
||||||
.. image:: /images/Kubernetes-Minio.svg
|
|
||||||
:align: center
|
|
||||||
:width: 90%
|
|
||||||
:class: no-scaled-link
|
|
||||||
:alt: Kubernetes Orchestration with the MinIO Operator facilitates automated deployment of MinIO clusters.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. versionchanged:: VERSION.VERSION
|
|
||||||
|
|
||||||
This feature was added in VERSION, upgrade to VERSION
|
|
||||||
|
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:titlesonly:
|
|
||||||
:hidden:
|
|
||||||
|
|
||||||
/kubernetes/quickstart
|
|
||||||
/kubernetes/deploy-on-kubernetes
|
|
||||||
/kubernetes/manage-on-kubernetes
|
|
||||||
/kubernetes/enforce-security
|
|
||||||
/kubernetes/operator-kes
|
|
||||||
/kubernetes/operator-mcs
|
|
||||||
/kubernetes/operator-reference
|
|
@ -1,79 +0,0 @@
|
|||||||
========================================
|
|
||||||
Deploy MinIO KES on a Kubernetes Cluster
|
|
||||||
========================================
|
|
||||||
|
|
||||||
.. default-domain:: minio
|
|
||||||
|
|
||||||
.. contents:: On This Page
|
|
||||||
:local:
|
|
||||||
:depth: 2
|
|
||||||
|
|
||||||
MinIO KES is a stateless and distributed key-management system for
|
|
||||||
high-performance applications. KES provides a bridge between applications
|
|
||||||
running in containerized deployments, like Kubernetes, and centralized Key
|
|
||||||
Mannagement Systems (KMS) like Hashicorp Vault or Amazon Web Services (AWS) KMS. This
|
|
||||||
tutorial covers the information necessary for using the MinIO Kubernetes
|
|
||||||
Operator (``minio-operator``) to deploy MinIO KES instances on a Kubernetes
|
|
||||||
Cluster.
|
|
||||||
|
|
||||||
You should have basic familiarity with the Kubernetes ecosystem and your
|
|
||||||
preferred KMS backend prior to starting this tutorial. Defer to the official
|
|
||||||
documentation for :kube-docs:`Kubernetes` and your preferred KMS backend for
|
|
||||||
more complete learning resource. While the MinIO docs make a best-effort
|
|
||||||
to cover third-party concepts and configurations, you should not depend on
|
|
||||||
this tutorial as the only source of information on third-party products.
|
|
||||||
|
|
||||||
For more complete documentation on MinIO KES, see <future page>.
|
|
||||||
|
|
||||||
Prerequisites
|
|
||||||
-------------
|
|
||||||
|
|
||||||
This tutorial requires the following resources:
|
|
||||||
|
|
||||||
Kubernetes Cluster
|
|
||||||
You should have access to a running Kubernetes cluster.
|
|
||||||
|
|
||||||
The Kubernetes cluster
|
|
||||||
|
|
||||||
- The Kubernetes cluster must have at least one running
|
|
||||||
:minio-git:`minio-operator <minio-operator>` instance. See
|
|
||||||
<future minio-operator deployment proc> for installation instructions.
|
|
||||||
|
|
||||||
The Kubernetes cluster should have *at least* **one** node with enough
|
|
||||||
resources to launch additional pods.
|
|
||||||
|
|
||||||
- The ``minio-operator`` has TLS configured and enabled. See
|
|
||||||
<future minio-operator security config docs> for configuration instructions.
|
|
||||||
|
|
||||||
- An x.509 Certificate and corresponding private key for MinIO KES to use
|
|
||||||
for mTLS authentication and authorization.
|
|
||||||
|
|
||||||
- A supported Key Management System backend. MinIO KES supports the following KMS providers:
|
|
||||||
|
|
||||||
- `Hashicorp Vault <https://www.vaultproject.io/?ref=minio>`__
|
|
||||||
- `Amazon Web Services KMS <https://aws.amazon.com/kms/?ref=minio>`__
|
|
||||||
- `Gemalto SafeNet KeySecure <https://www.netapp.com/us/products/storage-security-systems/key-management/keysecure-k460.aspx?ref=minio>`__
|
|
||||||
|
|
||||||
Procedure
|
|
||||||
---------
|
|
||||||
|
|
||||||
Procedure
|
|
||||||
---------
|
|
||||||
|
|
||||||
1) First Step Header
|
|
||||||
~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
a) First Substep
|
|
||||||
````````````````
|
|
||||||
|
|
||||||
b) Second Substep
|
|
||||||
`````````````````
|
|
||||||
|
|
||||||
2) Second Step Header
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
a) First Substep
|
|
||||||
````````````````
|
|
||||||
|
|
||||||
b) Second Substep
|
|
||||||
`````````````````
|
|
@ -1,74 +0,0 @@
|
|||||||
===================================================
|
|
||||||
Deploy MinIO Console Server on a Kubernetes Cluster
|
|
||||||
===================================================
|
|
||||||
|
|
||||||
.. default-domain:: minio
|
|
||||||
|
|
||||||
.. contents:: On This Page
|
|
||||||
:local:
|
|
||||||
:depth: 2
|
|
||||||
|
|
||||||
MinIO Console Server (MCS) is a graphical user interface for administrating
|
|
||||||
MinIO servers. This tutorial covers the information necessary for using the
|
|
||||||
MinIO Kubernetes Operator (``minio-operator``) to deploy MinIO MCS instances on
|
|
||||||
a Kubernetes Cluster.
|
|
||||||
|
|
||||||
You should have basic familiarity with the Kubernetes ecosystem prior to
|
|
||||||
starting this tutorial. Defer to the official documentation for
|
|
||||||
:kube-docs:`Kubernetes` for more complete learning resources. While the MinIO
|
|
||||||
docs make a best-effort to cover third-party concepts and configurations, you
|
|
||||||
should not depend on this tutorial as the only source of information on
|
|
||||||
third-party products.
|
|
||||||
|
|
||||||
For more complete documentation on MinIO MCS, see <future page>.
|
|
||||||
|
|
||||||
Prerequisites
|
|
||||||
-------------
|
|
||||||
|
|
||||||
This tutorial requires the following resources:
|
|
||||||
|
|
||||||
Kubernetes Cluster
|
|
||||||
You should have access to a running Kubernetes cluster.
|
|
||||||
|
|
||||||
The Kubernetes cluster should have *at least* **one** node with enough
|
|
||||||
resources to launch additional pods.
|
|
||||||
|
|
||||||
MinIO Kubernetes Operator
|
|
||||||
The Kubernetes cluster must have at least one running
|
|
||||||
:minio-git:`minio-operator <minio-operator>` instance. See <future
|
|
||||||
minio-operator deployment proc> for installation instructions.
|
|
||||||
|
|
||||||
The MinIO operator *must* have TLS configured and enabled. See <future
|
|
||||||
security config docs> for configuration instructions.
|
|
||||||
|
|
||||||
MinIO Deployment
|
|
||||||
For a tutorial on deploying MinIO on Kubernetes, see
|
|
||||||
:doc:`/kubernetes/deploy-on-kubernetes`.
|
|
||||||
|
|
||||||
For a shorter tutorial for local development only, see
|
|
||||||
:doc:`/kubernetes/quickstart`.
|
|
||||||
|
|
||||||
The MinIO deployment must have at least one MinIO user with administrative
|
|
||||||
privileges for the MCS instance to use for authentication and authorization.
|
|
||||||
See <future security docs> for more information on configuring MinIO users.
|
|
||||||
|
|
||||||
Procedure
|
|
||||||
---------
|
|
||||||
|
|
||||||
1) First Step Header
|
|
||||||
~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
a) First Substep
|
|
||||||
````````````````
|
|
||||||
|
|
||||||
b) Second Substep
|
|
||||||
`````````````````
|
|
||||||
|
|
||||||
2) Second Step Header
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
a) First Substep
|
|
||||||
````````````````
|
|
||||||
|
|
||||||
b) Second Substep
|
|
||||||
`````````````````
|
|
@ -1,133 +0,0 @@
|
|||||||
========================
|
|
||||||
MinIO Operator Reference
|
|
||||||
========================
|
|
||||||
|
|
||||||
.. default-domain:: minio
|
|
||||||
|
|
||||||
.. contents:: On This Page
|
|
||||||
:local:
|
|
||||||
:depth: 2
|
|
||||||
|
|
||||||
This document explains the various fields supported by MinIO Operator and its
|
|
||||||
CRD's and how to use these fields to deploy and access MinIO server clusters.
|
|
||||||
|
|
||||||
MinIO Operator creates native Kubernetes resources within the cluster. The
|
|
||||||
operator uses the name of the created MinIO Instance as a prefix for
|
|
||||||
all resources created by the operator. For example, if deploying a
|
|
||||||
MinIO instance named ``minioinstance``, the operator creates the following
|
|
||||||
resources with their associated names:
|
|
||||||
|
|
||||||
- Headless Service: ``minioinstance-hl-svc``
|
|
||||||
- StatefulSet: ``minioinstance``
|
|
||||||
- Secret: ``minioinstance-tls`` (If :kubeconf:`spec.requestAutoCert` is enabled)
|
|
||||||
- CertificateSigningRequest: ``minioinstance-csr`` (If :kubeconf:`spec.requestAutoCert` is enabled)
|
|
||||||
|
|
||||||
The MinIO Kubernetes Operator is under active development. The contents of
|
|
||||||
this page may change at any time.
|
|
||||||
|
|
||||||
Configuration File Overview
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
The following example shows all possible MinIO Kubernetes Operator configuration
|
|
||||||
options.
|
|
||||||
|
|
||||||
.. code-block:: yaml
|
|
||||||
:class: copyable
|
|
||||||
|
|
||||||
apiVerison: operator.min.io/v1
|
|
||||||
kind: "MinIOInstance"
|
|
||||||
metadata: <object>
|
|
||||||
scheduler: <string>
|
|
||||||
spec:
|
|
||||||
metadata: <object>
|
|
||||||
image: <string>
|
|
||||||
zones: <int>
|
|
||||||
volumesPerServer: <int>
|
|
||||||
imagePullSecret: <string>
|
|
||||||
credsSecret: <string>
|
|
||||||
replicas: <int>
|
|
||||||
podManagementPolicy: <string>
|
|
||||||
mountPath: <string>
|
|
||||||
subPath: <string>
|
|
||||||
volumeClaimTemplate: <object>
|
|
||||||
env: <object>
|
|
||||||
requestAutoCert: <bool>
|
|
||||||
certConfig: <object>
|
|
||||||
externalCertSecret: <object>
|
|
||||||
resources: <object>
|
|
||||||
liveness: <object>
|
|
||||||
nodeSelector: <object>
|
|
||||||
tolerations: <object>
|
|
||||||
securityContext: <object>
|
|
||||||
serviceAccountName: <string>
|
|
||||||
mcs:
|
|
||||||
image: <string>
|
|
||||||
replicas: <int>
|
|
||||||
mcsSecret: <string>
|
|
||||||
metadata: <object>
|
|
||||||
kes:
|
|
||||||
replicas: <int>
|
|
||||||
image: <string>
|
|
||||||
configSecret: <string>
|
|
||||||
metadata: <object>
|
|
||||||
|
|
||||||
Configuration Options
|
|
||||||
---------------------
|
|
||||||
|
|
||||||
.. kubeconf:: kind
|
|
||||||
|
|
||||||
*Type*: String
|
|
||||||
|
|
||||||
Specify ``MinIOInstance``.
|
|
||||||
|
|
||||||
.. kubeconf:: metadata
|
|
||||||
|
|
||||||
*Type*: Object
|
|
||||||
|
|
||||||
Metadata related to the ``MinIOInstance``. For example, the
|
|
||||||
following sets the ``label`` for the ``MinIOInstance`` object:
|
|
||||||
|
|
||||||
.. code-block:: yaml
|
|
||||||
|
|
||||||
metadata:
|
|
||||||
labels: minio
|
|
||||||
|
|
||||||
See :kube-api:`#objectmeta-v1-meta` for more complete documentation on
|
|
||||||
supported metadata options.
|
|
||||||
|
|
||||||
.. kubeconf:: spec
|
|
||||||
|
|
||||||
*Type*: Object
|
|
||||||
|
|
||||||
The specifications used by the MinIO Operator to deploy the MinIO
|
|
||||||
server cluster.
|
|
||||||
|
|
||||||
Options marked as **Required** must be included in the configuration
|
|
||||||
document.
|
|
||||||
|
|
||||||
.. kubeconf:: spec.metadata
|
|
||||||
|
|
||||||
*Type* : Object
|
|
||||||
|
|
||||||
Metadata related to all pods launched by the MinIO operator. For example, the
|
|
||||||
following sets the ``label`` for all pods launched by the MinIO instance
|
|
||||||
|
|
||||||
.. code-block:: yaml
|
|
||||||
|
|
||||||
metadata:
|
|
||||||
labels: minio
|
|
||||||
|
|
||||||
See :kube-api:`metadata reference documentation <#objectmeta-v1-meta>` for
|
|
||||||
more complete documentation on supported metadata options.
|
|
||||||
|
|
||||||
.. kubeconf:: spec.requestAutoCert
|
|
||||||
|
|
||||||
*Type*: Boolean
|
|
||||||
|
|
||||||
*Defaults*: ``false``
|
|
||||||
|
|
||||||
Specify ``true`` to enable automatic TLS certificate generation for each
|
|
||||||
resource created by the MinIO Operator. The operator uses the root
|
|
||||||
Certificate Authority (CA) configured for the Kubernetes cluster to generate
|
|
||||||
the required Certificate Signing Requests (CSR).
|
|
||||||
|
|
@ -1,229 +0,0 @@
|
|||||||
============================================
|
|
||||||
Quickstart: Deploy a Standalone MinIO Server
|
|
||||||
============================================
|
|
||||||
|
|
||||||
.. default-domain:: minio
|
|
||||||
|
|
||||||
.. contents:: On This Page
|
|
||||||
:local:
|
|
||||||
:depth: 1
|
|
||||||
|
|
||||||
Overview
|
|
||||||
--------
|
|
||||||
|
|
||||||
This tutorial uses the MinIO Operator to create a standalone MinIO server on a
|
|
||||||
local Kubernetes cluster. Standalone MinIO deployments are best suited for local
|
|
||||||
development of applications using MinIO for object storage. For a tutorial on
|
|
||||||
creating a production-grade MinIO deployment on a Kubernetes cluster, see
|
|
||||||
:doc:`/kubernetes/deploy-on-kubernetes`.
|
|
||||||
|
|
||||||
By default, this tutorial creates a standalone MinIO deployment with the
|
|
||||||
following components:
|
|
||||||
|
|
||||||
- 1 MinIO server instance with TLS enabled.
|
|
||||||
- 4 x 100MB storage volumes
|
|
||||||
- 1 MinIO Minio Console Service instance.
|
|
||||||
- 1 MinIO Operator instance.
|
|
||||||
|
|
||||||
You should have basic familiarity with Kubernetes, its associated terminology,
|
|
||||||
and its command line tools prior to starting this tutorial. While the MinIO
|
|
||||||
documentation makes a best-effort to address Kubernetes-specific information,
|
|
||||||
you should review the official Kubernetes :kube-docs:`documentation <>` for more
|
|
||||||
complete coverage.
|
|
||||||
|
|
||||||
.. _minio-kubernetes-quickstart-prerequisites:
|
|
||||||
|
|
||||||
Prerequisites
|
|
||||||
-------------
|
|
||||||
|
|
||||||
This tutorial requires the following resources:
|
|
||||||
|
|
||||||
- The :minio-git:`minio-operator <minio-operator>` github repository.
|
|
||||||
|
|
||||||
- The `kind <https://kind.sigs.k8s.io/>`__ Kubernetes cluster deployment tool.
|
|
||||||
Defer to the ``kind``
|
|
||||||
`Quick Start <https://kind.sigs.k8s.io/docs/user/quick-start/>`__ for
|
|
||||||
installation instructions and related dependencies.
|
|
||||||
|
|
||||||
- A host machine where you have rights to install and run software. The
|
|
||||||
host machine **must** have *at least* the following available resources:
|
|
||||||
|
|
||||||
- 10GB of free storage space.
|
|
||||||
- 2GB of free system memory (RAM)
|
|
||||||
- 2 or more physical CPUs.
|
|
||||||
|
|
||||||
Procedure
|
|
||||||
---------
|
|
||||||
|
|
||||||
1) Download and Configure Prerequisites
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
a\) Clone the ``minio-operator`` github repository
|
|
||||||
Issue the following command in a terminal or shell on the host machine
|
|
||||||
to clone the :minio-git:`minio-operator <minio-operator>` github repository.
|
|
||||||
|
|
||||||
.. include:: /includes/minio-kubernetes-operator.rst
|
|
||||||
|
|
||||||
The github repository contains the MinIO Kubernetes Operator and the example
|
|
||||||
configuration files used as part of this tutorial.
|
|
||||||
|
|
||||||
b\) Install and configure ``kind``
|
|
||||||
Follow the instructions on the ``kind``
|
|
||||||
`Quick Start <https://kind.sigs.k8s.io/docs/user/quick-start/>`__ guide.
|
|
||||||
|
|
||||||
Once installed, use the following ``kind`` cluster configuration file to
|
|
||||||
create a Kubernetes cluster that can support a standalone MinIO server:
|
|
||||||
|
|
||||||
.. code-block:: yaml
|
|
||||||
:class: copyable
|
|
||||||
|
|
||||||
kind: Cluster
|
|
||||||
apiVersion: kind.x-k8s.io/v1alpha4
|
|
||||||
nodes:
|
|
||||||
- role: control-plane
|
|
||||||
- role: worker
|
|
||||||
|
|
||||||
Issue the following command in a terminal or shell on the host machine to
|
|
||||||
create the local Kubernetes cluster:
|
|
||||||
|
|
||||||
.. code-block:: shell
|
|
||||||
:class: copyable
|
|
||||||
|
|
||||||
kind create cluster --name minio-local --config.yaml
|
|
||||||
|
|
||||||
To confirm the cluster is available, run the following command:
|
|
||||||
|
|
||||||
.. code-block:: shell
|
|
||||||
:class: copyable
|
|
||||||
|
|
||||||
kubectl --cluster-info --context kind-minio-local
|
|
||||||
|
|
||||||
Take note of the hostnames assigned to each component in the Kubernetes
|
|
||||||
cluster.
|
|
||||||
|
|
||||||
2) Start the MinIO Kubernetes Operator
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Issue the following command in a terminal or shell on the host machine to
|
|
||||||
start the MinIO Kubernetes Operator.
|
|
||||||
|
|
||||||
.. code-block:: shell
|
|
||||||
:class: copyable
|
|
||||||
|
|
||||||
kubectl apply -f ~/minio-kubernetes/git/minio-operator/minio-operator.yaml
|
|
||||||
|
|
||||||
The ``minio-operator.yaml`` configuration file creates a
|
|
||||||
``minio-operator`` deployment in the Kubernetes cluster.
|
|
||||||
|
|
||||||
3) Configure the Storage Layer
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
The example MinIO server configuration used in this tutorial requires four
|
|
||||||
:kube-docs:`persistent volumes <storage/persistent-volumes/>` to start
|
|
||||||
successfully. This configuration enables features such as :ref:`erasure coding
|
|
||||||
<minio-erasure-coding>`.
|
|
||||||
|
|
||||||
Create four Kubernetes persistent volumes for use by the MinIO server instance.
|
|
||||||
MinIO recommends creating :kube-docs:`local <storage/volumes/#local>` persistent
|
|
||||||
volumes. The following template provides all required fields for creating the
|
|
||||||
required persistent volumes:
|
|
||||||
|
|
||||||
.. code-block:: yaml
|
|
||||||
:class: copyable
|
|
||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: PersistentVolume
|
|
||||||
metadata:
|
|
||||||
name: minioexample-pv1
|
|
||||||
spec:
|
|
||||||
capacity:
|
|
||||||
storage: 10Gi # specify the maximum size of the storage device
|
|
||||||
volumeMode: Filesystem
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
persistentVolumeReclaimPolicy: Retain
|
|
||||||
storageClassName: local-storage-class
|
|
||||||
local:
|
|
||||||
path: /var/export1 # specify path to local volume on host
|
|
||||||
nodeAffinity:
|
|
||||||
required:
|
|
||||||
nodeSelectorTerms:
|
|
||||||
- matchExpressions:
|
|
||||||
- key: kubernetes.io/hostname
|
|
||||||
operator: In
|
|
||||||
values:
|
|
||||||
- minio-local-worker #specify hostname prefix of preferred node
|
|
||||||
|
|
||||||
Change the following configuration options as appropriate for the host
|
|
||||||
machine configuration:
|
|
||||||
|
|
||||||
- ``spec.capacity.storage`` ( :kube-docs:`reference <concepts/storage/persistent-volumes/#capacity>`)
|
|
||||||
- ``spec.local.path`` ( :kube-api:`reference <#localvolumesource-v1-core>`)
|
|
||||||
- ``spec.nodeAffinity.required.matchExpressions.key.values`` (:kube-api:`reference <#nodeselectorrequirement-v1-core>`)
|
|
||||||
|
|
||||||
Issue the following command against each persistent volume configuration file
|
|
||||||
to create the associated resources. Replace ``<pv-filename>`` with the name
|
|
||||||
of each persistent volume configuration file.
|
|
||||||
|
|
||||||
.. code-block:: shell
|
|
||||||
|
|
||||||
kubectl apply -f ~/minio-kubernetes/<pv-filename>.yaml
|
|
||||||
|
|
||||||
Issue the following command to check the state of the persistent volumes:
|
|
||||||
|
|
||||||
.. code-block:: shell
|
|
||||||
:class: copyable
|
|
||||||
|
|
||||||
kubectl get pv
|
|
||||||
|
|
||||||
The output should include the four created persistent volumes.
|
|
||||||
|
|
||||||
4) Create the MinIO Server
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Issue the following command in a terminal or shell to create the MinIO
|
|
||||||
standalone instance using the MinIO Kubernetes Operator:
|
|
||||||
|
|
||||||
.. code-block:: shell
|
|
||||||
|
|
||||||
kubectl apply -f ~/minio-kubernetes/minio-operator/examples/minioinstance-standalone.yaml
|
|
||||||
|
|
||||||
Issue the following command to check the state of the minio instance:
|
|
||||||
|
|
||||||
.. code-block:: shell
|
|
||||||
|
|
||||||
kubectl get pods
|
|
||||||
|
|
||||||
The output should include a pod running the MinIO server.
|
|
||||||
|
|
||||||
5) Connect to the MinIO Server
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
The ``minioinstance-standalone.yaml`` configuration file also creates a
|
|
||||||
Kubernetes Service to manage communications to and from pods running the MinIO
|
|
||||||
service. Issue the following command to get the IP address of the service:
|
|
||||||
|
|
||||||
.. code-block:: shell
|
|
||||||
|
|
||||||
kubectl get services
|
|
||||||
|
|
||||||
The default access key is ``minio-admin`` and the default secret key is
|
|
||||||
``minio-admin``.
|
|
||||||
|
|
||||||
You must use the IP address of the ``minio-service`` to access the MinIO
|
|
||||||
server. For example, if the IP address is ``192.51.100.21``, enter the URL
|
|
||||||
``http://192.51.100.21:9000`` into your browser to access the MinIO server.
|
|
||||||
|
|
||||||
To connect using the ``mc`` client, issue the following command on in a
|
|
||||||
terminal or shell:
|
|
||||||
|
|
||||||
.. code-block:: shell
|
|
||||||
|
|
||||||
mc config host add minio http://192.51.100.21 minio-admin minio-admin
|
|
||||||
|
|
||||||
Next Steps
|
|
||||||
~~~~~~~~~~
|
|
||||||
|
|
||||||
- Perform CRUD operations on a MinIO Server (ToDo)
|
|
||||||
-
|
|
||||||
|
|
7
source/meta/404.rst
Normal file
7
source/meta/404.rst
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
:orphan:
|
||||||
|
|
||||||
|
==============
|
||||||
|
Page Not Found
|
||||||
|
==============
|
||||||
|
|
||||||
|
The page you are looking for has moved, been deleted, or does not exist.
|
@ -4,7 +4,7 @@ MinIO Admin (``mc admin``)
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
@ -62,8 +62,8 @@ Ensure that the host machine has :command:`mc`
|
|||||||
security best practices for your operating system for inputting sensitive
|
security best practices for your operating system for inputting sensitive
|
||||||
information on the command line.
|
information on the command line.
|
||||||
|
|
||||||
Use the :subcommand:`mc alias add` command to add the
|
Use the :mc-cmd:`mc alias set` command to add the
|
||||||
deployment to the :command:`mc` configuration.
|
deployment to the :program:`mc` configuration.
|
||||||
|
|
||||||
.. code-block:: shell
|
.. code-block:: shell
|
||||||
:class: copyable
|
:class: copyable
|
||||||
@ -111,7 +111,7 @@ The command has the following syntax:
|
|||||||
|
|
||||||
If the specified ``<ALIAS>`` corresponds to a distributed MinIO deployment, the
|
If the specified ``<ALIAS>`` corresponds to a distributed MinIO deployment, the
|
||||||
command returns information for each MinIO server in the deployment. Use
|
command returns information for each MinIO server in the deployment. Use
|
||||||
:subcommand:`mc alias add` to list the currently configured aliases and their
|
:subcommand:`mc alias set` to list the currently configured aliases and their
|
||||||
corresponding endpoints.
|
corresponding endpoints.
|
||||||
|
|
||||||
*Display MinIO Server Information*
|
*Display MinIO Server Information*
|
||||||
@ -148,7 +148,7 @@ The command has the following syntax:
|
|||||||
|
|
||||||
If the specified ``<ALIAS>`` corresponds to a distributed MinIO deployment, the
|
If the specified ``<ALIAS>`` corresponds to a distributed MinIO deployment, the
|
||||||
command adds the policy to each MinIO server in the deployment. Use
|
command adds the policy to each MinIO server in the deployment. Use
|
||||||
:subcommand:`mc alias add` to list the currently configured aliases and their
|
:subcommand:`mc alias set` to list the currently configured aliases and their
|
||||||
corresponding endpoints.
|
corresponding endpoints.
|
||||||
|
|
||||||
MinIO servers include the following canned policies:
|
MinIO servers include the following canned policies:
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 2
|
:depth: 2
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 2
|
:depth: 2
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 2
|
:depth: 2
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 2
|
:depth: 2
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 2
|
:depth: 2
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 2
|
:depth: 2
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 2
|
:depth: 2
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 2
|
:depth: 2
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 2
|
:depth: 2
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 2
|
:depth: 2
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 2
|
:depth: 2
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 2
|
:depth: 2
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 2
|
:depth: 2
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 2
|
:depth: 2
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
=================
|
=====================
|
||||||
MinIO Client (mc)
|
MinIO Client (``mc``)
|
||||||
=================
|
=====================
|
||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
@ -21,14 +21,16 @@ support for both filesystems and Amazon S3-compatible cloud storage services
|
|||||||
|
|
||||||
mc [FLAGS] COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...] ALIAS
|
mc [FLAGS] COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...] ALIAS
|
||||||
|
|
||||||
|
.. _mc-install:
|
||||||
|
|
||||||
Quickstart
|
Quickstart
|
||||||
----------
|
----------
|
||||||
|
|
||||||
1) Install ``mc``
|
1) Install ``mc``
|
||||||
~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Ensure that the host machine has :mc-cmd:`mc`
|
Install the :program:`mc` command line tool onto the host machine. Click
|
||||||
:ref:`installed <mc-install>` prior to starting this procedure:
|
the tab that corresponds to the host machine operating system or environment:
|
||||||
|
|
||||||
.. include:: /includes/minio-mc-installation.rst
|
.. include:: /includes/minio-mc-installation.rst
|
||||||
|
|
||||||
@ -43,27 +45,25 @@ Ensure that the host machine has :mc-cmd:`mc`
|
|||||||
security best practices for your operating system for inputting sensitive
|
security best practices for your operating system for inputting sensitive
|
||||||
information on the command line.
|
information on the command line.
|
||||||
|
|
||||||
Use the :mc-cmd:`mc alias add` command to add an Amazon S3-compatible host
|
Use the :mc-cmd:`mc alias set` command to add an Amazon S3-compatible service
|
||||||
to the :mc-cmd:`mc` :ref:`configuration <mc-configuration>`.
|
to the :mc-cmd:`mc` :ref:`configuration <mc-configuration>`.
|
||||||
|
|
||||||
.. code-block:: shell
|
.. code-block:: shell
|
||||||
:class: copyable
|
:class: copyable
|
||||||
|
|
||||||
bash +o history
|
bash +o history
|
||||||
mc alias add ALIAS ENDPOINT ACCESS_KEY SECRET_KEY --api [S3v2|S3v4]
|
mc alias set ALIAS HOSTNAME ACCESS_KEY SECRET_KEY
|
||||||
bash -o history
|
bash -o history
|
||||||
|
|
||||||
- Replace ``ALIAS`` with a name to associate to the S3 service.
|
- Replace ``ALIAS`` with a name to associate to the S3 service.
|
||||||
:mc-cmd:`mc` commands typically require ``ALIAS`` as an argument for
|
:mc-cmd:`mc` commands typically require ``ALIAS`` as an argument for
|
||||||
identifying which S3 service to execute against.
|
identifying which S3 service to execute against.
|
||||||
|
|
||||||
- Replace ``ENDPOINT`` with the URL endpoint of the S3 service.
|
- Replace ``HOSTNAME`` with the URL endpoint or IP address of the S3 service.
|
||||||
|
|
||||||
- Replace ``ACCESS_KEY`` and ``SECRET_KEY`` with the access and secret
|
- Replace ``ACCESS_KEY`` and ``SECRET_KEY`` with the access and secret
|
||||||
keys for a user on the S3 service.
|
keys for a user on the S3 service.
|
||||||
|
|
||||||
- The ``--api`` flag is optional and defaults to ``S3v4`` if ommitted.
|
|
||||||
|
|
||||||
Replace each argument with the required values. Specifying only the
|
Replace each argument with the required values. Specifying only the
|
||||||
``mc config host add`` command starts an input prompt for entering the
|
``mc config host add`` command starts an input prompt for entering the
|
||||||
required values.
|
required values.
|
||||||
@ -77,21 +77,21 @@ Each of the following tabs contains a provider-specific example:
|
|||||||
.. code-block:: shell
|
.. code-block:: shell
|
||||||
:class: copyable
|
:class: copyable
|
||||||
|
|
||||||
mc alias add myminio https://minioserver.example.net ACCESS_KEY SECRET KEY
|
mc alias set myminio https://minioserver.example.net ACCESS_KEY SECRET KEY
|
||||||
|
|
||||||
.. tab:: AWS S3 Storage
|
.. tab:: AWS S3 Storage
|
||||||
|
|
||||||
.. code-block:: shell
|
.. code-block:: shell
|
||||||
:class: copyable
|
:class: copyable
|
||||||
|
|
||||||
mc alias add myS3 https://s3.amazon.com/endpoint ACCESS_KEY SECRET KEY
|
mc alias set myS3 https://s3.amazon.com/endpoint ACCESS_KEY SECRET KEY
|
||||||
|
|
||||||
.. tab:: Google Cloud Storage
|
.. tab:: Google Cloud Storage
|
||||||
|
|
||||||
.. code-block:: shell
|
.. code-block:: shell
|
||||||
:class: copyable
|
:class: copyable
|
||||||
|
|
||||||
mc alias add myGCS https://storage.googleapis.com/endpoint ACCESS_KEY SECRET KEY
|
mc alias set myGCS https://storage.googleapis.com/endpoint ACCESS_KEY SECRET KEY
|
||||||
|
|
||||||
3) Test the Connection
|
3) Test the Connection
|
||||||
~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
@ -118,6 +118,8 @@ unsuccessful, check each of the following:
|
|||||||
for more information on user access permissions. For other S3-compatible
|
for more information on user access permissions. For other S3-compatible
|
||||||
services, defer to the documentation for that service.
|
services, defer to the documentation for that service.
|
||||||
|
|
||||||
|
.. _minio-mc-commands:
|
||||||
|
|
||||||
Command Quick Reference
|
Command Quick Reference
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
@ -294,27 +296,6 @@ The following list describes each possible file path location in the order
|
|||||||
|
|
||||||
You can use the ``--config-dir``
|
You can use the ``--config-dir``
|
||||||
|
|
||||||
.. _mc-install:
|
|
||||||
|
|
||||||
Installation
|
|
||||||
------------
|
|
||||||
|
|
||||||
.. include:: /includes/minio-mc-installation.rst
|
|
||||||
|
|
||||||
:mc:`mc` includes a default :mc-cmd:`alias <mc alias>` for the
|
|
||||||
https://play.min.io MinIO deployment. If the host machine has internet access,
|
|
||||||
you can use the ``play`` alias for testing and development purposes. For
|
|
||||||
example, the following lists all buckets on ``https://play.min.io``:
|
|
||||||
|
|
||||||
.. code-block:: shell
|
|
||||||
:class: copyable
|
|
||||||
|
|
||||||
mc ls play
|
|
||||||
|
|
||||||
The ``play`` MinIO deployment provides a simple sandbox for testing core S3
|
|
||||||
functionality. Any S3-compatible tool can view and interact with data on
|
|
||||||
``play``. Any data stored on ``play`` is public-facing and modifyable.
|
|
||||||
|
|
||||||
.. _minio-mc-global-options:
|
.. _minio-mc-global-options:
|
||||||
|
|
||||||
Global Options
|
Global Options
|
||||||
@ -322,6 +303,8 @@ Global Options
|
|||||||
|
|
||||||
.. program:: mc
|
.. program:: mc
|
||||||
|
|
||||||
|
All :ref:`commands <minio-mc-commands>` support the following global options:
|
||||||
|
|
||||||
.. option:: --debug
|
.. option:: --debug
|
||||||
|
|
||||||
Enables verbose output to the console.
|
Enables verbose output to the console.
|
||||||
|
@ -4,9 +4,9 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 2
|
||||||
|
|
||||||
.. mc:: mc alias
|
.. mc:: mc alias
|
||||||
|
|
||||||
@ -28,43 +28,77 @@ Using :mc-cmd:`mc alias` to add or remove an S3-compatible host is equivalent
|
|||||||
to manually editing entries in the :program:`mc`
|
to manually editing entries in the :program:`mc`
|
||||||
:ref:`configuration file <mc-configuration>`.
|
:ref:`configuration file <mc-configuration>`.
|
||||||
|
|
||||||
.. important::
|
S3 Access Control and Limitations
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
:mc-cmd:`mc alias` requires specifying an access key and corresponding
|
:mc-cmd:`mc alias` requires specifying an access key and corresponding secret
|
||||||
secret key for a user on the S3-compatible host. :program:`mc` can
|
key for a user on the S3-compatible host. :program:`mc` can only perform
|
||||||
only perform operations on that host for which the user has explicit
|
operations on that host for which the user has explicit permission. If the
|
||||||
permission. If the specified user cannot perform an action or access
|
specified user cannot perform an action or access a resource on the S3 host,
|
||||||
a resource on the S3 host, :program:`mc` inherits those restrictions.
|
:program:`mc` inherits those restrictions.
|
||||||
|
|
||||||
Quick Reference
|
For more information on MinIO Access Control, see
|
||||||
---------------
|
:ref:`minio-auth-authz-overview`.
|
||||||
|
|
||||||
:mc-cmd:`mc alias add ALIAS HOSTNAME ACCESSKEY SECRETKEY <mc alias add>`
|
For more complete documentation on S3 Access Control, see
|
||||||
Adds the specified S3-compatible host to the
|
:s3-docs:`Amazon S3 Security <security.html>`.
|
||||||
:program:`mc` :ref:`configuration file <mc-configuration>`.
|
|
||||||
:program:`mc` commands can access the host using the
|
|
||||||
specified ``ALIAS``.
|
|
||||||
|
|
||||||
:mc-cmd:`mc alias remove ALIAS <mc alias remove>`
|
For all other S3-compatible services, defer to the documentation for that
|
||||||
Removes the S3-compatible host associated to the specified alias from the
|
service.
|
||||||
:program:`mc` :ref:`configuration file <mc-configuration>`.
|
|
||||||
|
Common Operations
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Add an S3-Compatible Service
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Use :mc-cmd:`mc alias set` to add an S3-compatible service for use with
|
||||||
|
:program:`mc`:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
:class: copyable
|
||||||
|
|
||||||
|
mc alias set ALIAS HOSTNAME ACCESSKEY SECRETKEY
|
||||||
|
|
||||||
|
- Replace ``ALIAS`` with the name of the alias to associate to the S3-compatible service.
|
||||||
|
|
||||||
|
- Replace ``HOSTNAME`` with the hostname or IP address of the S3-compatible service.
|
||||||
|
|
||||||
|
- Replace ``ACCESSKEY`` and ``SECRETKEY`` with the access and secret key for a
|
||||||
|
user on the S3-compatible service.
|
||||||
|
|
||||||
|
Remove a Configured S3-Compatible Service
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Use :mc-cmd:`mc alias remove` to remove an S3-compatible alias from the
|
||||||
|
:program:`mc` configuration:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
:class: copyable
|
||||||
|
|
||||||
|
mc alias remove ALIAS
|
||||||
|
|
||||||
|
- Replace ``ALIAS`` with the name of the S3-compatible service to remove.
|
||||||
|
|
||||||
|
Use :mc-cmd:`mc alias list` to list the currently configured S3-compatible
|
||||||
|
services.
|
||||||
|
|
||||||
|
List Configured S3-Compatible Services
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Use :mc-cmd:`mc alias list` to list all configured S3-compatible aliases:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
:class: copyable
|
||||||
|
|
||||||
|
mc alias list
|
||||||
|
|
||||||
:mc-cmd:`mc alias list <mc alias list>`
|
|
||||||
Lists all S3-compatible hosts and aliases in the :program:`mc`
|
|
||||||
:ref:`configuration file <mc-configuration>`.
|
|
||||||
|
|
||||||
Syntax
|
Syntax
|
||||||
------
|
------
|
||||||
|
|
||||||
:mc-cmd:`~mc alias` has the following syntax:
|
.. mc-cmd:: set, s
|
||||||
|
:fullpath:
|
||||||
.. code-block:: shell
|
|
||||||
|
|
||||||
mc alias COMMAND [COMMAND FLAGS | -h ] [ARGUMENTS]
|
|
||||||
|
|
||||||
:mc-cmd:`~mc alias` supports the following commands:
|
|
||||||
|
|
||||||
.. mc-cmd:: add, a
|
|
||||||
|
|
||||||
Adds a new S3-compatible host to the configuration file. The command
|
Adds a new S3-compatible host to the configuration file. The command
|
||||||
has the following syntax:
|
has the following syntax:
|
||||||
@ -72,9 +106,9 @@ Syntax
|
|||||||
.. code-block:: shell
|
.. code-block:: shell
|
||||||
:class: copyable
|
:class: copyable
|
||||||
|
|
||||||
mc alias add ALIAS HOSTNAME ACCESS_KEY SECRET_KEY --api [S3v2|S3v4]
|
mc alias set ALIAS HOSTNAME ACCESS_KEY SECRET_KEY --api [S3v2|S3v4]
|
||||||
|
|
||||||
:mc-cmd:`mc alias add` supports the following arguments:
|
:mc-cmd:`mc alias set` supports the following arguments:
|
||||||
|
|
||||||
.. mc-cmd:: ALIAS
|
.. mc-cmd:: ALIAS
|
||||||
|
|
||||||
@ -111,6 +145,7 @@ Syntax
|
|||||||
|
|
||||||
|
|
||||||
.. mc-cmd:: remove, rm
|
.. mc-cmd:: remove, rm
|
||||||
|
:fullpath:
|
||||||
|
|
||||||
Removes a host entry from the configuration file. The command has the
|
Removes a host entry from the configuration file. The command has the
|
||||||
following syntax:
|
following syntax:
|
||||||
@ -121,6 +156,7 @@ Syntax
|
|||||||
mc alias remove ALIAS
|
mc alias remove ALIAS
|
||||||
|
|
||||||
.. mc-cmd:: list, ls
|
.. mc-cmd:: list, ls
|
||||||
|
:fullpath:
|
||||||
|
|
||||||
Lists all hosts in the configuration file. The command has the following
|
Lists all hosts in the configuration file. The command has the following
|
||||||
syntax:
|
syntax:
|
||||||
@ -130,9 +166,6 @@ Syntax
|
|||||||
|
|
||||||
mc alias list
|
mc alias list
|
||||||
|
|
||||||
Behavior
|
|
||||||
--------
|
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
--------
|
--------
|
||||||
|
|
||||||
@ -142,21 +175,4 @@ Add a New S3 Service Alias
|
|||||||
.. code-block:: shell
|
.. code-block:: shell
|
||||||
:class: copyable
|
:class: copyable
|
||||||
|
|
||||||
mc alias add myminio https://myminio.example.net myminioaccesskey myminiosecretkey
|
mc alias set myminio https://myminio.example.net myminioaccesskey myminiosecretkey
|
||||||
|
|
||||||
Remove an Existing S3 Service Alias
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
.. code-block:: shell
|
|
||||||
:class: copyable
|
|
||||||
|
|
||||||
mc alias remove myminio
|
|
||||||
|
|
||||||
|
|
||||||
List All Configured S3 Service Aliases
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
.. code-block:: shell
|
|
||||||
:class: copyable
|
|
||||||
|
|
||||||
mc alias list
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 2
|
:depth: 2
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 2
|
:depth: 2
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 2
|
:depth: 2
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 2
|
:depth: 2
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ Bucket Versioning
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 2
|
:depth: 2
|
||||||
|
|
||||||
|
323
source/minio-server/minio-server.rst
Normal file
323
source/minio-server/minio-server.rst
Normal file
@ -0,0 +1,323 @@
|
|||||||
|
========================
|
||||||
|
MinIO Server (``minio``)
|
||||||
|
========================
|
||||||
|
|
||||||
|
.. default-domain:: minio
|
||||||
|
|
||||||
|
.. contents:: Table of Contents
|
||||||
|
:local:
|
||||||
|
:depth: 2
|
||||||
|
|
||||||
|
.. mc:: minio
|
||||||
|
|
||||||
|
The :mc:`minio` command line executable starts either the MinIO Object Storage
|
||||||
|
process *or* the MinIO Gateway process.
|
||||||
|
|
||||||
|
MinIO Server
|
||||||
|
------------
|
||||||
|
|
||||||
|
The :mc:`minio server` command starts the MinIO server process:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
:class: copyable
|
||||||
|
|
||||||
|
minio server /mnt/disk{1...4}
|
||||||
|
|
||||||
|
For examples of deploying :mc:`minio server` on a bare metal environment,
|
||||||
|
see :ref:`minio-baremetal`.
|
||||||
|
|
||||||
|
For examples of deploying :mc:`minio server` on a Kubernetes environment,
|
||||||
|
see :ref:`minio-kubernetes`.
|
||||||
|
|
||||||
|
Configuration Settings
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
The :mc:`minio server` process stores its configuration in the storage
|
||||||
|
backend :mc-cmd:`directory <minio server DIRECTORIES>`. You can modify
|
||||||
|
configuration options using the
|
||||||
|
:mc-cmd:`mc admin config` command.
|
||||||
|
|
||||||
|
Syntax
|
||||||
|
~~~~~~~
|
||||||
|
|
||||||
|
.. mc:: minio server
|
||||||
|
|
||||||
|
Starts the ``minio`` server process.
|
||||||
|
|
||||||
|
The command has the following syntax:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
:class: copyable
|
||||||
|
|
||||||
|
minio server [FLAGS] HOSTNAME/DIRECTORIES [HOSTNAME/DIRECTORIES..]
|
||||||
|
|
||||||
|
The command accepts the following arguments:
|
||||||
|
|
||||||
|
.. mc-cmd:: HOSTNAME
|
||||||
|
|
||||||
|
The hostname of a :mc:`minio server` process.
|
||||||
|
|
||||||
|
For standalone deployments, this field is *optional*. You can start a
|
||||||
|
standalone :mc:`minio <minio server>` process with only the
|
||||||
|
:mc-cmd:`~minio server DIRECTORIES` argument.
|
||||||
|
|
||||||
|
For distributed deployments, specify the hostname of each
|
||||||
|
:mc:`minio <minio server>` in the deployment.
|
||||||
|
|
||||||
|
:mc-cmd:`~minio server HOSTNAME` supports MinIO expansion notation
|
||||||
|
``{x...y}`` to denote a sequential series of hostnames. For example,
|
||||||
|
``https://minio{1...4}.example.net`` expands to:
|
||||||
|
|
||||||
|
- ``https://minio1.example.net``
|
||||||
|
- ``https://minio2.example.net``
|
||||||
|
- ``https://minio3.example.net``
|
||||||
|
- ``https://minio4.example.net``
|
||||||
|
|
||||||
|
The set of :mc:`minio server` processes in :mc-cmd:`~minio server HOSTNAME`
|
||||||
|
define a single :ref:`zone <minio-zones>`. MinIO *requires* sequential
|
||||||
|
hostnames to identify each :mc:`minio server` process in the zone.
|
||||||
|
|
||||||
|
Each additional ``HOSTNAME/DIRECTORIES`` pair denotes an additional zone for
|
||||||
|
the purpose of horizontal expansion of the MinIO deployment. For more
|
||||||
|
information on zones, see :ref:`minio-zones`.
|
||||||
|
|
||||||
|
.. mc-cmd:: DIRECTORIES
|
||||||
|
|
||||||
|
The directories or disks the :mc:`minio server` process uses as the
|
||||||
|
storage backend.
|
||||||
|
|
||||||
|
:mc-cmd:`~minio server DIRECTORIES` supports MinIO expansion notation
|
||||||
|
``{x...y}`` to denote a sequential series of folders or disks. For example,
|
||||||
|
``/mnt/disk{1...4}`` expands to:
|
||||||
|
|
||||||
|
- ``/mnt/disk1``
|
||||||
|
- ``/mnt/disk2``
|
||||||
|
- ``/mnt/disk3``
|
||||||
|
- ``/mnt/disk4``
|
||||||
|
|
||||||
|
The :mc-cmd:`~minio server DIRECTORIES` path(s) *must* be empty when first
|
||||||
|
starting the :mc:`minio <minio server>` process.
|
||||||
|
|
||||||
|
The :mc:`minio server` process requires *at least* 4 disks or directories
|
||||||
|
to enable :ref:`erasure coding <minio-erasure-coding>`.
|
||||||
|
|
||||||
|
.. important::
|
||||||
|
|
||||||
|
MinIO recommends locally-attached disks, where the
|
||||||
|
:mc-cmd:`~minio server DIRECTORIES` path points to each disk on the
|
||||||
|
host machine.
|
||||||
|
|
||||||
|
For development or evaluation, you can specify multiple logical
|
||||||
|
directories or partitions on a single physical volume to enable erasure
|
||||||
|
coding on the deployment.
|
||||||
|
|
||||||
|
For production environments, MinIO does **not recommend** using multiple
|
||||||
|
logical directories or partitions on a single physical disk. While MinIO
|
||||||
|
supports those configurations, the potential cost savings come at the risk
|
||||||
|
of decreased reliability.
|
||||||
|
|
||||||
|
|
||||||
|
.. mc-cmd:: address
|
||||||
|
:option:
|
||||||
|
|
||||||
|
*Optional* Binds the :mc:`minio <minio server>` server process to a
|
||||||
|
specific network address and port number. Specify the address and port as
|
||||||
|
``ADDRESS:PORT``, where ``ADDRESS`` is an IP address or hostname and
|
||||||
|
``PORT`` is a valid and open port on the host system.
|
||||||
|
|
||||||
|
To change the port number for all IP addresses or hostnames configured
|
||||||
|
on the host machine, specify ``:PORT`` where ``PORT`` is a valid
|
||||||
|
and open port on the host.
|
||||||
|
|
||||||
|
If omitted, :mc:`minio <minio server>` binds to port ``9000`` on all
|
||||||
|
configured IP addresses or hostnames on the host machine.
|
||||||
|
|
||||||
|
.. mc-cmd:: certs-dir, -S
|
||||||
|
:option:
|
||||||
|
|
||||||
|
*Optional* Specifies the path to the folder containing certificates the
|
||||||
|
:mc:`minio` process uses for configuring TLS/SSL connectivity.
|
||||||
|
|
||||||
|
Omit to use the default directory paths:
|
||||||
|
|
||||||
|
- Linux/OSX: ``${HOME}/.minio/certs``
|
||||||
|
- Windows: ``%%USERPROFILE%%\.minio\certs``.
|
||||||
|
|
||||||
|
See :ref:`minio-TLS` for more information on TLS/SSL connectivity.
|
||||||
|
|
||||||
|
.. mc-cmd:: quiet
|
||||||
|
:option:
|
||||||
|
|
||||||
|
*Optional* Disables startup information.
|
||||||
|
|
||||||
|
.. mc-cmd:: anonymous
|
||||||
|
:option:
|
||||||
|
|
||||||
|
*Optional* Hides sensitive information from logging.
|
||||||
|
|
||||||
|
.. mc-cmd:: json
|
||||||
|
:option:
|
||||||
|
|
||||||
|
*Optional* Outputs server logs and startup information in ``JSON``
|
||||||
|
format.
|
||||||
|
|
||||||
|
MinIO Gateway
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Syntax
|
||||||
|
~~~~~~
|
||||||
|
|
||||||
|
.. mc:: minio gateway
|
||||||
|
|
||||||
|
Starts the MinIO Gateway process.
|
||||||
|
|
||||||
|
The command has the following syntax:
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
:class: copyable
|
||||||
|
|
||||||
|
minio gateway [FLAGS] SUBCOMMAND [ARGUMENTS]
|
||||||
|
|
||||||
|
:mc:`minio gateway` supports the following flags:
|
||||||
|
|
||||||
|
.. mc-cmd:: address
|
||||||
|
:option:
|
||||||
|
|
||||||
|
*Optional* Binds the MinIO Gateway to a specific network address and port
|
||||||
|
number. Specify the address and port as ``ADDRESS:PORT``, where ``ADDRESS``
|
||||||
|
is an IP address or hostname and ``PORT`` is a valid and open port on the
|
||||||
|
host system.
|
||||||
|
|
||||||
|
To change the port number for all IP addresses or hostnames configured
|
||||||
|
on the host machine, specify ``:PORT`` where ``PORT`` is a valid
|
||||||
|
and open port on the host.
|
||||||
|
|
||||||
|
.. mc-cmd:: certs-dir, -S
|
||||||
|
:option:
|
||||||
|
|
||||||
|
*Optional* Specifies the path to the folder containing certificates the
|
||||||
|
MinIO Gateway process uses for configuring TLS/SSL connectivity.
|
||||||
|
|
||||||
|
Omit to use the default directory paths:
|
||||||
|
|
||||||
|
- Linux/OSX: ``${HOME}/.minio/certs``
|
||||||
|
- Windows: ``%%USERPROFILE%%\.minio\certs``.
|
||||||
|
|
||||||
|
See :ref:`minio-TLS` for more information on TLS/SSL connectivity.
|
||||||
|
|
||||||
|
.. mc-cmd:: quiet
|
||||||
|
:option:
|
||||||
|
|
||||||
|
*Optional* Disables startup information.
|
||||||
|
|
||||||
|
.. mc-cmd:: anonymous
|
||||||
|
:option:
|
||||||
|
|
||||||
|
*Optional* Hides sensitive information from logging.
|
||||||
|
|
||||||
|
.. mc-cmd:: json
|
||||||
|
:option:
|
||||||
|
|
||||||
|
*Optional* Outputs server logs and startup information in ``JSON``
|
||||||
|
format.
|
||||||
|
|
||||||
|
:mc:`minio gateway` supports the following subcommands:
|
||||||
|
|
||||||
|
.. mc-cmd:: nas
|
||||||
|
:fullpath:
|
||||||
|
|
||||||
|
Creates a MinIO Gateway process configured for Network-Attached Storage
|
||||||
|
(NAS).
|
||||||
|
|
||||||
|
.. mc-cmd:: azure
|
||||||
|
:fullpath:
|
||||||
|
|
||||||
|
Creates a MinIO Gateway process configured for Microsoft Azure Blob Storage.
|
||||||
|
|
||||||
|
.. mc-cmd:: s3
|
||||||
|
:fullpath:
|
||||||
|
|
||||||
|
Creates a MinIO Gateway process configured for Amazon Simple Storage Service
|
||||||
|
(S3).
|
||||||
|
|
||||||
|
.. mc-cmd:: hdfs
|
||||||
|
:fullpath:
|
||||||
|
|
||||||
|
Creates a MinIO Gateway process configured for Hadoop Distributed File
|
||||||
|
System (HDFS).
|
||||||
|
|
||||||
|
.. mc-cmd:: gcs
|
||||||
|
:fullpath:
|
||||||
|
|
||||||
|
Creates a MinIO Gateway process configured for Google Cloud Storage.
|
||||||
|
|
||||||
|
Environment Variables
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
The :mc:`minio server` and :mc:`minio gateway` processes can use the following
|
||||||
|
environment variables when creating its configuration settings:
|
||||||
|
|
||||||
|
Root Credentials
|
||||||
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
.. envvar:: MINIO_ACCESS_KEY
|
||||||
|
|
||||||
|
The access key for the :ref:`root <minio-auth-authz-root>` user.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
If :envvar:`MINIO_ACCESS_KEY` is unset,
|
||||||
|
:mc:`minio` defaults to ``minioadmin``.
|
||||||
|
|
||||||
|
**NEVER** use the default credentials in production environments.
|
||||||
|
MinIO strongly recommends specifying a unique, long, and random
|
||||||
|
:envvar:`MINIO_ACCESS_KEY` value for all environments.
|
||||||
|
|
||||||
|
.. envvar:: MINIO_SECRET_KEY
|
||||||
|
|
||||||
|
The secret key for the :ref:`root <minio-auth-authz-root>` user.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
If :envvar:`MINIO_SECRET_KEY` is unset,
|
||||||
|
:mc:`minio` defaults to ``minioadmin``.
|
||||||
|
|
||||||
|
**NEVER** use the default credentials in production environments.
|
||||||
|
MinIO strongly recommends specifying a unique, long, and random
|
||||||
|
:envvar:`MINIO_ACCESS_KEY` value for all environments.
|
||||||
|
|
||||||
|
.. envvar:: MINIO_ACCESS_KEY_OLD
|
||||||
|
|
||||||
|
Used for rotating the :ref:`root <minio-auth-authz-root>` user access
|
||||||
|
key.
|
||||||
|
|
||||||
|
Restart the :mc:`minio server` process with *all* of the following
|
||||||
|
environment variables to rotate the root credentials:
|
||||||
|
|
||||||
|
- :envvar:`MINIO_ACCESS_KEY_OLD` set to the old access key.
|
||||||
|
- :envvar:`MINIO_ACCESS_KEY` set to the new access key.
|
||||||
|
- :envvar:`MINIO_SECRET_KEY_OLD` set to the old secret key.
|
||||||
|
- :envvar:`MINIO_SECRET_KEY` set to the new secret key.
|
||||||
|
|
||||||
|
The :mc:`minio server` process automatically detects and re-encrypts
|
||||||
|
the server configuration with the new credentials. After the process
|
||||||
|
restarts successfully, you can restart it without
|
||||||
|
:envvar:`MINIO_ACCESS_KEY_OLD`.
|
||||||
|
|
||||||
|
.. envvar:: MINIO_SECRET_KEY_OLD
|
||||||
|
|
||||||
|
Used for rotating the :ref:`root <minio-auth-authz-root>` user secret
|
||||||
|
key.
|
||||||
|
|
||||||
|
Restart the :mc:`minio server` process with *all* of the following
|
||||||
|
environment variables to rotate the root credentials:
|
||||||
|
|
||||||
|
- :envvar:`MINIO_ACCESS_KEY_OLD` set to the old access key.
|
||||||
|
- :envvar:`MINIO_ACCESS_KEY` set to the new access key.
|
||||||
|
- :envvar:`MINIO_SECRET_KEY_OLD` set to the old secret key.
|
||||||
|
- :envvar:`MINIO_SECRET_KEY` set to the new secret key.
|
||||||
|
|
||||||
|
The :mc:`minio server` process automatically detects and re-encrypts
|
||||||
|
the server configuration with the new credentials. After the process
|
||||||
|
restarts successfully, you can restart it without
|
||||||
|
:envvar:`SECRET_KEY_OLD`.
|
@ -1,10 +1,12 @@
|
|||||||
|
.. _minio-auth-authz-overview:
|
||||||
|
|
||||||
================================
|
================================
|
||||||
Authentication and Authorization
|
Authentication and Authorization
|
||||||
================================
|
================================
|
||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 2
|
:depth: 2
|
||||||
|
|
||||||
@ -105,6 +107,8 @@ their assigned groups.
|
|||||||
:iam-docs:`Determining Whether a Request is Allowed or Denied Within an Account
|
:iam-docs:`Determining Whether a Request is Allowed or Denied Within an Account
|
||||||
<reference_policies_evaluation-logic.html#policy-eval-denyallow>`.
|
<reference_policies_evaluation-logic.html#policy-eval-denyallow>`.
|
||||||
|
|
||||||
|
.. _minio-auth-authz-root:
|
||||||
|
|
||||||
``root`` User
|
``root`` User
|
||||||
~~~~~~~~~~~~~
|
~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
|
.. _minio-TLS:
|
||||||
|
|
||||||
==============================
|
==============================
|
||||||
MinIO Transport Layer Security
|
MinIO Transport Layer Security
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ MinIO Security Token Service
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ Server-Side Object Encryption
|
|||||||
|
|
||||||
.. default-domain:: minio
|
.. default-domain:: minio
|
||||||
|
|
||||||
.. contents:: On This Page
|
.. contents:: Table of Contents
|
||||||
:local:
|
:local:
|
||||||
:depth: 1
|
:depth: 1
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ MinIO provides support for the following security features:
|
|||||||
:titlesonly:
|
:titlesonly:
|
||||||
:hidden:
|
:hidden:
|
||||||
|
|
||||||
/security/minio-authentication-authorization-review
|
/security/minio-authentication-authorization
|
||||||
/security/minio-security-TLS-encryption
|
/security/minio-security-TLS-encryption
|
||||||
/security/minio-security-server-side-encryption
|
/security/minio-security-server-side-encryption
|
||||||
/security/minio-security-security-token-service
|
/security/minio-security-security-token-service
|
||||||
|
@ -533,6 +533,7 @@ class MinIODomain(Domain):
|
|||||||
'mc-cmd': ObjType(_('mc-cmd'), 'mc-cmd'),
|
'mc-cmd': ObjType(_('mc-cmd'), 'mc-cmd'),
|
||||||
'mc-cmd-option': ObjType(_('mc-cmd-option'), 'mc-cmd-option'),
|
'mc-cmd-option': ObjType(_('mc-cmd-option'), 'mc-cmd-option'),
|
||||||
'policy-action': ObjType(_('policy-action'), 'policy-action'),
|
'policy-action': ObjType(_('policy-action'), 'policy-action'),
|
||||||
|
'envvar': ObjType(_('envvar'), 'envvar')
|
||||||
}
|
}
|
||||||
directives = {
|
directives = {
|
||||||
'data': MinioObject,
|
'data': MinioObject,
|
||||||
@ -543,7 +544,8 @@ class MinIODomain(Domain):
|
|||||||
'flag': MinioObject,
|
'flag': MinioObject,
|
||||||
'mc': MinioMCCommand,
|
'mc': MinioMCCommand,
|
||||||
'mc-cmd': MinioMCObject,
|
'mc-cmd': MinioMCObject,
|
||||||
'policy-action': MinioObject
|
'policy-action': MinioObject,
|
||||||
|
'envvar': MinioObject
|
||||||
}
|
}
|
||||||
roles = {
|
roles = {
|
||||||
'data': MinioXRefRole(),
|
'data': MinioXRefRole(),
|
||||||
@ -556,6 +558,7 @@ class MinIODomain(Domain):
|
|||||||
'mc-cmd': MinioXRefRole(),
|
'mc-cmd': MinioXRefRole(),
|
||||||
'mc-cmd-option': MinioCMDOptionXRefRole(),
|
'mc-cmd-option': MinioCMDOptionXRefRole(),
|
||||||
'policy-action': MinioXRefRole(),
|
'policy-action': MinioXRefRole(),
|
||||||
|
'envvar': MinioXRefRole(),
|
||||||
|
|
||||||
}
|
}
|
||||||
initial_data = {
|
initial_data = {
|
||||||
|
Reference in New Issue
Block a user