Create Storage Class: MinIO Object Storage (Alpha)
MinIO Object Storage provides a secure, reliable, and scalable shared file storage service for platforms based on MinIO storage clusters. It is suitable for scenarios such as file sharing and data backup.
Explanation of nouns
| Term | Full Name | Description |
|---|---|---|
| COSI | Container Object Storage Interface | The Container Object Storage Interface aims to be a common abstraction layer across multiple object storage providers, dynamically providing object storage services to workloads. Third-party storage vendors can also use COSI to write plugins, exposing new storage systems in Kubernetes without modifying the core Kubernetes code. |
Function comparison
| StorageClasses Name | Applicable Scenarios and Functions | Access Method |
|---|---|---|
| MinIO Object Storage |
|
Access method based on COSI. |
| Ceph Object Storage |
|
Prerequisites
Prepare the MinIO storage service in advance using any of the following methods:
-
Use the MinIO storage service within the platform, please refer to Create Object Storage for details.
-
Use an external MinIO storage service.
Procedure of operation
Deploy the container object storage interface plugin
To use the object storage feature, you need to first deploy the Container Object Storage Interface (COSI) plugin.
-
In the left navigation pane, click Clusters > Cluster of clusters.
-
Click on the name of the cluster where the component to be deployed resides.
-
On the Plugins tab, click on the
> Deployments button next to Container Object Storage Interface. -
Wait for the deployment status to be Deployment Successful to complete the deployment.
Deployment volume plugin
-
On the left navigation bar, click Storage > ObjectStorageClass.
-
Click on Create Object StorageClass.
-
Click on Deploy on the MinIO Object Storage card.
-
On the Plugins tab, click on the right side of
> Deployments. -
Fill in the Access URL with the
Access Addressfrom Get Information . -
Click on Create, and fill in the values of
ACCESSKEYandSECRETKEYwith the corresponding values ofaccesskeyandsecretkeyfrom Get Information . -
Click on Create, and select the created key from the Key dropdown menu.
-
Click on Deploy.
Create a StorageClasse
-
In the left navigation pane, click Storage > ObjectStorageClass.
-
Click Create Object StorageClass.
Note: The following content is provided as an example using a form. You can also choose to complete the operation by selecting
> YAML Create. -
Select MinIO Object Storage and click Next.
-
Refer to the following instructions to configure some parameters.
Parameter Description Recycle Strategy The recycling strategy for the bucket. The default strategy is delete, which means that when the bucket declaration is deleted, the bound bucket will also be deleted. Allocate Projects Please allocate projects that can use this type of storage.
If there are no projects currently in need of this type of storage, you can choose not to allocate projects for now and update them later. -
Click Create.
Relevant operations
Get Info
Due to different storage locations, the methods for obtaining the access address, ACCESSKEY, and SECRETKEY are also different. Please choose one of the following methods based on your actual configuration.
-
Integration with external MinIO object storage:
-
Access Address: Contact the relevant personnel to obtain the access address of the MinIO object storage service, for example:
http://10.7.122.127:7480. -
ACCESSKEY and SECRETKEY: Contact the relevant personnel to obtain the
accesskeyandsecretkeywith administrator privileges.
-
-
Integration with internal MinIO object storage:
-
Access Address
-
On the left navigation bar, click Storage > Object Storage.
-
Switch to the Access Method tab and concatenate the information in the Access within the Cluster section to form the access address. For example:
http://10.7.122.127:80orhttp://minio.minio-system.svc.cluster.local:80.
-
-
ACCESSKEY and SECRETKEY
-
Use the following command to obtain the object storage name (NAME), select and record the object storage name that needs to be connected.
kubectl get tenant -A -
Replace <Object Storage Name> with the object storage name that needs to be connected, and enter the following command in the Kubectl tool on the platform to obtain the relevant information. The
MINIO_ROOT_USERis theaccess key, and theMINIO_ROOT_PASSWORDis thesecret key.kubectl -n minio-system get secret <Object Storage Name>-env-configuration -o jsonpath='{.data.config\.env}' | base64 -d | grep -E "MINIO_ROOT_USER|MINIO_ROOT_PASSWORD"
-
-