Skip to content

Commit 25bae93

Browse files
eedugonkilfoyle
andauthored
MinIO updates in ECE docs (#1996)
In relation with elastic/cloud#134936, we have realized that the doc `/deploy-manage/tools/snapshot-and-restore/minio-on-premise-repository.md` was really outdated and needed some love. This is the main page to review: [MinIO self-managed repository](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/1996/deploy-manage/tools/snapshot-and-restore/minio-on-premise-repository) Applied changes: - Changed wording to `MinIO` across all docs. No minio or Minio anymore. - Fixed a lot of broken links to MinIO docs. - Removed screenshots (thanks @Kushmaro for pointing that out), and replacing them by proper links and instructions. - Adding a note to recommend installing MinIO in separate hosts, although we support installing it in ECE allocator hosts. - Removed the manual steps to restore a snapshot from another cluster as now that's offered and documented as an ECE feature. I've linked to the right doc for that. - Improved the structure of certain sections as they were hard to understand (the bucket creation step for example was incorrect). - Renamed `offline` to `air-gapped` (for consistency with the new IA and new docs). - Changed title from `on-premise` to `self-managed` (because ECE hosts or the customer minio hosts could be on-premises or on cloud VMs technically. What they are in reality is `self-managed`). - Added useful links to other parts of the documentation. - Removed the statements about 6.x and 5.x versions of Elasticsearch. These are unneeded as in ECE 4.0 it's mandatory for all deployments to be on 8.0.0 or above. So there's no need to mention it. Closes elastic/cloud#134936 --------- Co-authored-by: David Kilfoyle <41695641+kilfoyle@users.noreply.github.com>
1 parent 018b991 commit 25bae93

File tree

7 files changed

+64
-97
lines changed

7 files changed

+64
-97
lines changed

deploy-manage/deploy/cloud-enterprise/add-custom-bundles-plugins.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ In this example, we assume the Identity Provider does not publish its SAML metad
184184
185185
## Example: Custom JVM trust store bundle [ece-add-custom-bundle-example-cacerts]
186186
187-
If you are using SSL certificates signed by non-public certificate authorities, {{es}} is not able to communicate with the services using those certificates unless you import a custom JVM trust store containing the certificates of your signing authority into your {{ece}} installation. You’ll need the trust store to access snapshot repositories like Minio, for your {{ece}} proxy, or to reindex from remote.
187+
If you are using SSL certificates signed by non-public certificate authorities, {{es}} is not able to communicate with the services using those certificates unless you import a custom JVM trust store containing the certificates of your signing authority into your {{ece}} installation. You’ll need the trust store to access snapshot repositories like MinIO, for your {{ece}} proxy, or to reindex from remote.
188188
189189
To import a JVM trust store:
190190
Binary file not shown.
Binary file not shown.
Binary file not shown.

deploy-manage/tools/snapshot-and-restore/cloud-enterprise.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ When a repository is assigned to a deployment, a snapshot is taken every 30 minu
2222
* AWS S3
2323
* Azure Blob Storage
2424
* Google Cloud Storage
25-
* Minio S3
25+
* MinIO S3
2626

2727
::::{note}
2828
No repository types other than those listed are supported in the {{ece}} platform, even if they are supported by {{es}}.
@@ -36,7 +36,7 @@ For more details about how snapshots are used with {{es}}, check [Snapshot and R
3636
* [Google Cloud Storage documentation](https://cloud.google.com/storage/docs/)
3737

3838
::::{tip}
39-
If you are installing ECE without internet access (commonly called an offline or air-gapped installation), you will need to use an on-premise storage service. We suggest that you use [Minio](https://www.minio.io/). For our installation notes, check [Snapshotting to Minio On-Premise Storage](minio-on-premise-repository.md).
39+
If you are installing ECE without internet access (commonly called an offline or air-gapped installation), you will need to use an on-premise storage service. We suggest that you use [MinIO](https://www.minio.io/). For our installation notes, check [Snapshotting to MinIO On-Premise Storage](minio-on-premise-repository.md).
4040
::::
4141

4242

@@ -47,7 +47,7 @@ The following guides provide instructions on adding a snapshot repository in ECE
4747
* [AWS S3](/deploy-manage/tools/snapshot-and-restore/ece-aws-custom-repository.md)
4848
* [Azure](/deploy-manage/tools/snapshot-and-restore/azure-storage-repository.md)
4949
* [Google Cloud Storage](/deploy-manage/tools/snapshot-and-restore/google-cloud-storage-gcs-repository.md)
50-
* [Minio](/deploy-manage/tools/snapshot-and-restore/minio-on-premise-repository.md)
50+
* [MinIO](/deploy-manage/tools/snapshot-and-restore/minio-on-premise-repository.md)
5151

5252
## Edit snapshot repository configurations [ece_edit_snapshot_repository_configurations]
5353

deploy-manage/tools/snapshot-and-restore/manage-snapshot-repositories.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ When a platform-level repository is associated with a deployment, the `found-sna
5454
* [AWS S3](/deploy-manage/tools/snapshot-and-restore/ece-aws-custom-repository.md)
5555
* [Azure](/deploy-manage/tools/snapshot-and-restore/azure-storage-repository.md)
5656
* [Google Cloud Storage](/deploy-manage/tools/snapshot-and-restore/google-cloud-storage-gcs-repository.md)
57-
* [Minio](/deploy-manage/tools/snapshot-and-restore/minio-on-premise-repository.md)
57+
* [MinIO](/deploy-manage/tools/snapshot-and-restore/minio-on-premise-repository.md)
5858

5959
:::{note}
6060
No repository types other than those listed are supported in the {{ece}} platform, even if they are supported by {{es}}.

deploy-manage/tools/snapshot-and-restore/minio-on-premise-repository.md

Lines changed: 59 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -8,83 +8,76 @@ products:
88
- id: cloud-enterprise
99
---
1010

11-
# Minio on-premise repository [ece-configuring-minio]
11+
# MinIO self-managed repository [ece-configuring-minio]
1212

13-
Minio is a popular, open-source distributed object storage server compatible with the Amazon AWS S3 API. You can use it with {{ece}} installations when you want to store your {{es}} snapshots locally.
13+
[MinIO](https://min.io/docs/minio/container/index.html) is a popular, open-source object storage server compatible with the Amazon AWS S3 API. As an [S3 compatible service](/deploy-manage/tools/snapshot-and-restore/s3-repository.md#repository-s3-compatible-services), MinIO is supported for use as a snapshot repository in {{ece}} (ECE).
1414

15+
This guide walks you through integrating MinIO with ECE to store your {{es}} snapshots.
1516

16-
## Create a test environment [ece-minio-test]
17+
::::{important}
18+
Avoid running MinIO directly on ECE hosts. Sharing infrastructure can lead to resource contention, especially disk I/O, and may affect the performance and stability of your Elastic workloads. It also complicates upgrades, troubleshooting, and supportability.
1719

18-
We recommend following the [Minio Quickstart Guide Docker Container instructions](https://docs.minio.io/docs/minio-docker-quickstart-guide) to create a simple Minio standalone installation for your initial evaluation and development.
19-
20-
Be sure to use the `docker -v` option to map persistent storage to the container.
21-
22-
23-
## Production environment prerequisites [ece-minio-requirements]
24-
25-
Installing Minio for production requires a high-availability configuration where Minio is running in [Distributed mode](https://docs.minio.io/docs/distributed-minio-quickstart-guide).
26-
27-
As mentioned in the Minio documentation, you will need to have 4-16 Minio drive mounts. There is no hard limit on the number of Minio nodes. It might be convenient to place the Minio node containers on your ECE hosts to ensure you have a suitable level of availability, but those can not be located on the same hosts as ECE proxies since they both listen on the same port.
28-
29-
The following illustration is a sample architecture for a [large ECE installation](../../deploy/cloud-enterprise/deploy-large-installation.md). Note that there is at least one MinIO container in *each* availability zone.
30-
31-
There are a number of different ways of orchestrating the Minio deployment (Docker Compose, Kubernetes, and so on). We suggest you use the method most familiar to you.
32-
33-
We recommend:
34-
35-
* Using a single Minio endpoint with the {{ece}} installation, to simplify repository management.
36-
* Securing access to the Minio endpoint with TLS.
20+
If you're evaluating MinIO in a test system, do not place MinIO containers on the same hosts as ECE proxies, as both services use the same port.
21+
::::
3722

38-
:::{image} /deploy-manage/images/cloud-enterprise-ece-minio-large-arch.png
39-
:alt: Architecture diagram
40-
:name: img-ece-minio-large-arch
41-
:::
23+
## Deploy MinIO
4224

25+
This section provides guidance and recommendations for deploying MinIO. It does not include installation steps. As MinIO is a third-party product, its deployment, configuration, and maintenance are outside the scope of Elastic support.
4326

44-
## Create an offline installation [ece-minio-offline-installation]
27+
For installation instructions, refer to the official [MinIO documentation](https://min.io/docs/).
4528

46-
If you are installing MinIO offline, the process is very similar to the [offline installation of {{ece}}](../../deploy/cloud-enterprise/air-gapped-install.md). There are two options:
29+
The performance and reliability of MinIO depend on its configuration and the underlying infrastructure. Consider the following best practices:
4730

48-
* Use a private Docker repository and [install the Minio images in the private repository](https://docs.docker.com/registry/deploying/).
49-
* Download the Minio images from an internet-connected machine, then use docker save to bundle the images into tar files. Copy the TAR files to the target hosts and use `docker load` to install.
31+
* For production use, deploy MinIO in [distributed mode](https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-multi-node-multi-drive.html#minio-mnmd).
32+
* Use a single MinIO endpoint with the ECE installation, to simplify repository configuration.
33+
* Secure access to the MinIO endpoint with TLS.
5034

51-
Gather the following after your installation:
35+
After deployment, make sure you collect the following values:
5236

53-
* Minio AccessKey
54-
* Minio SecretKey
55-
* Endpoint URL
37+
* MinIO Access Key
38+
* MinIO Secret Key
39+
* MinIO endpoint URL
5640

5741
::::{tip}
58-
Minio might report various Endpoint URLs, be sure to choose the one that will be routable from your {{es}} Docker containers.
42+
MinIO may report multiple endpoint URLs. Be sure to select the one reachable from your {{es}} containers running on ECE allocator hosts.
5943
::::
6044

45+
### Testing and evaluation
6146

47+
Use the [MinIO Quickstart Guide](https://charts.min.io/) or the [container deployment guide](https://min.io/docs/minio/container/index.html) to spin up a simple standalone MinIO container. Use `-v` to map persistent storage when using the `docker` or `podman` options.
6248

63-
## Create the S3 bucket [ece-minio-create-s3-bucket]
64-
65-
How you create the AWS S3 bucket depends on what version of {{es}} you are using:
49+
### Production environments
6650

67-
* For version 7.x:
51+
Set up MinIO in distributed mode across multiple nodes and drives. You can use Docker Compose, Kubernetes, or another orchestration tool of your choice.
6852

69-
1. Using the Minio browser or an S3 client application, create an S3 bucket to store your snapshots.
70-
2. [Log into the Cloud UI](../../deploy/cloud-enterprise/log-into-cloud-ui.md) and [add the S3 repository plugin](elasticsearch://reference/elasticsearch-plugins/plugin-management.md) to your cluster.
53+
## Create the S3 bucket [ece-minio-create-s3-bucket]
7154

72-
* For versions 8.0 and later, {{es}} has built-in support for AWS S3 repositories; no repository plugin is needed. Use the Minio browser or an S3 client application to create an S3 bucket to store your snapshots.
55+
After installing MinIO you will need to create a bucket to store your deployments' snapshots. Use the MinIO browser or an S3 client application to create an S3 bucket to store your snapshots.
7356

7457
::::{tip}
7558
Don’t forget to make the bucket name DNS-friendly, for example no underscores or uppercase letters. For more details, read the [bucket restrictions](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html).
7659
::::
7760

61+
## {{ece}} configuration [ece-install-with-minio]
7862

63+
This section describes the configuration changes required to use MinIO storage within ECE to make periodic snapshots of your deployments. The required steps include:
7964

80-
## {{ece}} configuration [ece-install-with-minio]
65+
* Configuring the repository at ECE level
66+
* Associating it with your deployments
67+
* Applying specific YAML settings to the deployments
8168

82-
You can configure existing deployments, or create new ones, with the following changes to use Minio storage.
69+
### Prerequisites
8370

71+
Before integrating ECE with MinIO, ensure you have the following details from your MinIO deployment:
72+
73+
* MinIO Access Key
74+
* MinIO Secret Key
75+
* MinIO endpoint URL
76+
* S3 bucket name
8477

8578
### Add the repository to {{ece}} [ece-add-repository]
8679

87-
You must add the new repository to {{ece}} before it can be used with your {{es}} clusters.
80+
You must add the new repository at ECE platform level before it can be used by your {{es}} deployments.
8881

8982
1. [Log into the Cloud UI](../../deploy/cloud-enterprise/log-into-cloud-ui.md).
9083
2. From the **Platform** menu, select **Repositories**.
@@ -97,76 +90,50 @@ You must add the new repository to {{ece}} before it can be used with your {{es}
9790
"type": "s3",
9891
"settings": {
9992
"bucket": "ece-backup",
100-
"access_key": "<your Minio AccessKey>",
101-
"secret_key": "<your Minio SecretKey>",
102-
"endpoint": "<your Minio endpoint URL>:9000",
93+
"access_key": "<your MinIO AccessKey>",
94+
"secret_key": "<your MinIO SecretKey>",
95+
"endpoint": "<your MinIO endpoint URL>:9000",
10396
"path_style_access": "true",
10497
"protocol": "http"
10598
}
10699
}
107100
```
108101

109-
:::{image} /deploy-manage/images/cloud-enterprise-ece-minio-repository.png
110-
:alt: Create form
111-
:name: img-ece-minio-repository
112-
:::
113-
114102
6. Select **Save** to submit your configuration.
115103

116-
The Minio repository is now available from the drop-down list of repositories when creating deployments.
104+
### Associate repository with deployments
117105

118-
:::{image} /deploy-manage/images/cloud-enterprise-ece-minio-deployment.png
119-
:alt: Create deployment
120-
:name: img-ece-minio-deployment
121-
:::
106+
Once the MinIO repository is created at the ECE platform level, you can associate it with your {{es}} deployments in two ways:
122107

108+
* For new deployments, select the repository from the **Snapshot repository** drop-down list while [creating the deployment](/deploy-manage/deploy/cloud-enterprise/create-deployment.md).
123109

124-
### Additional settings for 6.x clusters [ece-6.x-settings]
110+
* For existing deployments, associate the repository by following the instructions in [Manage {{es}} clusters repositories](/deploy-manage/tools/snapshot-and-restore/cloud-enterprise.md#ece-manage-repositories-clusters).
125111

126-
For {{es}} versions 6.0 and later, after selecting the repository, you also need to set your **User Settings** YAML to specify the endpoint and protocol. For example:
112+
### Additional settings for {{es}} [ece-6.x-settings]
113+
114+
After selecting the repository, you also need to configure your [{{es}} user settings YAML](/deploy-manage/deploy/cloud-enterprise/edit-stack-settings-elasticsearch.md) to specify the endpoint and protocol. For example:
127115

128116
```
129-
s3.client.default.endpoint: "<your Minio endpoint>:9000"
117+
s3.client.default.endpoint: "<your MinIO endpoint>:9000"
130118
s3.client.default.protocol: http
131119
```
132-
Check the [{{es}} S3 plugin details](https://www.elastic.co/guide/en/elasticsearch/plugins/6.8/repository-s3-client.html) for more information.
133120
121+
Refer to the [{{es}} S3 plugin details](/deploy-manage/tools/snapshot-and-restore/s3-repository.md) for more information.
134122
135-
## Upgrade from 5.x to 6.x {{es}} clusters [ece-upgrade-minio]
123+
#### Add S3 repository plugin (only for {{es}} 7.x)
136124
137-
The configuration options for the {{es}} S3 repository plugin have changed from 5.x to 6.x versions and you must copy the endpoint and protocol values from your repository configuration to your **User Settings** YAML before you upgrade.
125+
For {{es}} clusters in version 7.x you must add the S3 repository plugin to your cluster. Refer to [Managing plugins for ECE](elasticsearch://reference/elasticsearch-plugins/plugin-management.md#managing-plugins-for-ece) for more details.
138126
127+
::::{note}
128+
For versions 8.0 and later, {{es}} has built-in support for AWS S3 repositories; no repository plugin is needed.
129+
::::
139130
140131
## Verify snapshots [ece-minio-verify-snapshot]
141132
142-
The cluster should make a snapshot when the repository is set up. You can check that by going to the **Elasticsearch** and then the **Snapshots** page.
143-
144-
As an extra verification step, you can restore a cluster using the snapshots that have been taken.
145-
146-
1. [Log into the Cloud UI](../../deploy/cloud-enterprise/log-into-cloud-ui.md).
147-
2. Get the plan from your test cluster.
148-
149-
1. From the **Deployments** page, select your deployment.
150-
151-
Narrow the list by name, ID, or choose from several other filters. To further define the list, use a combination of filters.
152-
153-
2. From your deployment menu, go to the **Edit** page then go to the bottom of the page and select **advanced {{es}} configuration**.
154-
3. Copy the JSON format under the **Deployment configuration** heading.
155-
156-
3. Create a new {{es}} cluster as your target.
157-
4. On the new cluster, open the advanced cluster configuration editor. In the transient section, add the `restore_snapshot` settings to the plan.
158-
159-
```json
160-
...
161-
"transient": {
162-
"restore_snapshot": {
163-
"repository_name": "<Minio repository name>",
164-
"snapshot_name": "latest_success"
165-
}
166-
}
167-
```
133+
The cluster should make periodic snapshots when the repository is set up and associated to it. You can check this in the **Elasticsearch > Snapshots** section of the deployment page in the [Cloud UI](../../deploy/cloud-enterprise/log-into-cloud-ui.md).
168134
169-
5. Select **Save** to restore from the snapshot. When the plan update is complete, you can check the restored indexes in your target cluster.
135+
As an extra verification step, you can [restore snapshots across clusters](/deploy-manage/tools/snapshot-and-restore/ece-restore-across-clusters.md).
170136
171-
More details are available to [work with snapshots](../snapshot-and-restore.md).
137+
Refer to [work with snapshots](../snapshot-and-restore.md) for more information around {{es}} snapshot and restore.
172138
139+
For additional considerations on performance, reliability, and troubleshooting when using MinIO as a snapshot repository, refer to [Using MinIO with {{es}}](/deploy-manage/tools/snapshot-and-restore/s3-repository.md#using-minio-with-elasticsearch).

0 commit comments

Comments
 (0)