You can install and configure MinIO, an S3-compatible storage service that runs locally on the Linux VM. However, apart from MinIO you can also install and configure any other S3-compatible object storage service as the destination for Kubernetes workload backups.

For information on the S3-compatible object storage services that Velero supports, see S3-Compatible object store providers.

Prerequisites

  • Your environment has a Linux VM with sufficient storage to install MinIO and store backups. MinIO service will not operate if disk has less than 1GB of free disk space.

  • Target workload clusters can access the MinIO Linux VM.

Procedure

  1. Download MinIO binary on the VM.
  2. Grant permissions to run the MinIO binary.
    # chmod +x minio
  3. Move the MinIO binary to the directory /usr/local/bin.
    # mv minio /usr/local/bin
  4. Create a new minio-user account to run the MinIO service.
    # mkdir -p /usr/local/share/minio
  5. Create a new folder to store MinIO data files and grant ownership of the folder to minio-users.
    # mkdir -p /usr/local/share/minio 
    # chown minio-user:minio-user /usr/local/share/minio 
  6. Create a new folder for MinIO configuration files and grant ownership of the folder to minio-users.
    # mkdir -p /etc/minio 
    # chown minio-user:minio-user /etc/minio
  7. Create a new file for default configurations of MinIO service and enter the details.
    # vim /etc/default/minio

    Option

    Description

    MINIO_VOLUMES

    Stores the MinIO data files.

    MINIO_OPTS

    Stores the server configurations.

    • Use the -C parameter to set the folder for MinIO configuration files

    • Use the –address parameter to set the IP address and port that MinIO binds to.

      Note:

      If the IP address is not specified, MinIO will bind to every address configured on the server. Therefore, it is recommended to specify the IP address that Velero add-on can connect to. The default port is 9000.

    Access ID

    ID to access the backup storage.

    Access Key

    Password to access the backup storage.

    The following is a sample file content in the folder /etc/default/minio:

    MINIO_VOLUMES="/usr/local/share/minio/" 
    MINIO_OPTS="-C /etc/minio --address 10.196.46.27:9000" 
    MINIO_ACCESS_KEY="minio" 
    MINIO_SECRET_KEY="minio123"
  8. Download the MinIO service descriptor file.
    # curl -O https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service
  9. Move minio.service to the folder /etc/systemd/system.
    # mv minio.service /etc/systemd/system
  10. Reload all the systemd units.
    # systemctl daemon-reload
  11. Enable MinIO to start on booting the system.
    # systemctl enable minio
  12. Start the MinIO server.
    # systemctl start minio

    For more information on installing and configuring MinIO storage service, see MinIO Documentation.

  13. If necessary, enable Transport Layer Security (TLS) encryption of incoming and outgoing traffic on MinIO. For more information, see Enabling TLS.