For the complete documentation index, see llms.txt. This page is also available as Markdown.

Use self-managed object storage with MinIO

Learn how to use self-managed object storage with MinIO.

Harness Self-Managed Enterprise Edition enables you to configure self-managed object storage with MinIO. MinIO is an object storage server designed for large-scale private cloud infrastructure. It aggregates persistent volumes into scalable distributed object storage using Amazon S3 REST APIs.

You can install MinIO on your preferred VMs and provide the endpoint in your Harness Helm charts. This topic describes how to set up 4 MinIO servers.

MinIO prerequisites

Make sure to meet the MinIO prerequisites before you set up self-managed object storage. For prerequisites, go to Object Storage for Linux in the MinIO documentation.

MinIO hardware requirements

  • 4 VMs

  • 4 cores per VM

  • 8 GB memory per VM

  • 100 GB disk per VM (SSD preferred)

  • 1GB/s minimum network bandwidth

  • Ubuntu 20.04 LTS operating system

Nginx hardware requirements

  • 1 VM

  • 4 cores per VM

  • 8 GB memory per VM

  • 1GB/s minimum network bandwidth

  • Ubuntu 20.04 LTS operating system

Create an Nginx LoadBalancer VM

To set up MinIO, you must first create a VM for the Nginx LoadBalancer with the above hardware requirements.

To create a new VM instance for the Nginx load balancer, do the following:

  1. Select the machine type based on the hardware requirements for Nginx.

  2. Change the boot disk to Ubuntu 20.04 LTS.

  3. Reserve an internal static IP address.

  4. Reserve an external static IP address.

Create the MinIO server VMs

Next, you must create 4 VMs with the MinIO hardware requirements.

To create the MinIO server VMs, do the following:

  1. Create a new VM instance with the following configuration.

  2. Select the machine type based on the hardware requirements.

  3. Change the boot disk to Ubuntu 20.04 LTS.

  4. Reserve an internal static IP address.

  5. Attach an additional disk to the VM.

Set up the Nginx load balancer

Next, set up the Nginx load balancer.

To set up the Nginx load balancer, do the following:

  1. SSH into the Nginx VM, and install Nginx. For installation instructions, go to Linux packages in the Nginx documentation.

  2. Add the sequential hostnames for your MinIO server instances to your /etc/hosts file (internal IPs should be MinIO instances).

  3. Add the following to the /etc/nginx/sites-enabled/minio.conf file.

  4. Run the following to start Nginix.

Set up MinIO servers

Now you are ready to set up your MinIO servers.

To configure your MinIO servers, do the following:

  1. SSH into one of your MinIO VMs.

  2. Create a minio-user user and group.

  3. Attach the disk device name to the VM using sudo lsblk. For example:

  4. Run the following to format the disk.

  5. Run the following to mount the disk.

  6. Change the disk permissions and user.

  7. Add hostnames in sequential order in your /etc/hosts file.

  8. Download and install MinIO.

  9. Add the following to your /etc/default/minio file.

  10. Start the MinIO service.

  1. Check the MinIO status.

  1. Repeat the process for your other three VMs.

Test MinIO connectivity

To test your MinIO connectivity, do the following:

  1. Go to http://<NGINX_VM_EXTERNAL_IP>, and sign in using the username and password in your /etc/default/minio file.

  2. Create a bucket and upload a test file.

  3. SSH into one of your MinIO VMs.

  4. Check the contents in the /mnt/disks/disk1/ disk.

Configure your Harness environment and Helm chart

Now you're ready to configure your Harness Self-Managed Enterprise Edition environment and Helm chart.

To configure your Harness environment and Helm chart, do the following:

  1. Create a secret in the namespace where Harness is installed with the following data.

  2. Set the following overrides for your installed MinIO with Harness.

Last updated

Was this helpful?