Using MinIO for S3 compatible object storage
By default external access to the MinIO UI isn't available. This is easily changed by applying the following YAML to your cluster with
kubectl apply -f minio-service.yaml (or whatever you call the file containing the contents below):
apiVersion: v1 kind: Service metadata: name: minio-service spec: type: LoadBalancer ports: - port: 9000 targetPort: 9000 protocol: TCP selector: app: minio
This will open up http://YOURCLUSTERID.k8s.civo.com:9000 to the whole world. You should lock this down in the firewall automatically created in Civo for your Kubernetes cluster. Locking down the firewall will only affect access from OUTSIDE of your Kubernetes cluster, access from your applications within Kubernetes will not be affected.
We'd recommend installing mc the MinIO client for your operating system, to allow easy file operations from the command line.
Other than that, your access key and secret key should be above this message and you can use those to configure your application to access MinIO just as you would with S3. For example, Ruby on Rails ActiveStorage is configured with something like:
minio: service: S3 access_key_id: YOUR_ACCESS_KEY_HERE secret_access_key: YOUR_SECRET_KEY_HERE region: us-east-1 bucket: your_own_bucket endpoint: "http://YOUR_CLUSTER_ID.k8s.civo.com:9000" force_path_style: true
We would also recommend installing TLS certificates and using the pre-installed Traefik as an Ingress controller.