Configure PrimeHub Store
PrimeHub Store is the central storage for storing PrimeHub files. Many features are based on PrimeHub store to persist, transfer, and load the data.
PrimeHub store selects MinIO as the backend and uses one bucket to store the data. To enable the PrimeHub store, set the
store.enabled to true.
|If the PrimeHub store is enabled|
|The access key for the PrimeHub store|
|The secret key for the PrimeHub store|
|The bucket name the PrimeHub store use|
|The MinIO configuration||Please see the chart configuration|
MinIO is installed if PrimeHub store is enabled. By default, MinIO data are stored in a PVC. However, we have these options to store the data.
- Standalone mode: Store data in Kuberentes PVC
- AWS S3 gateway: Store data in AWS S3 and use MinIO as gateway
- Google Cloud Storage gateway: Store data in Google Cloud Storage and use MinIO as gateway
minio.persistence.enabled is true, the MinIO would operate as standalone mode and one PVC is created. Here is the example for standalone mode:
store: bucket: "primehub" minio: persistence: enabled: true storageClass: "gp2" accessMode: ReadWriteOnce size: 1024Gi
As the MinIO is installed, the bucket is also created automatically.
AWS S3 Gateway
According to MinIO S3 Gateway, prepare the AWS S3 bucket before installation.
- Choose an existing bucket or create a bucket from Amazon S3 console
- Create an IAM user and get
- Attach the user with AWS S3 permissions policies
Here is the example for AWS S3:
store: bucket: "the-bucket-your-created" minio: s3gateway: enabled: true accessKey: "[put-your-access-key-id-here]" secretKey: "[put-your-secret-access-key-here]"
MinIO also supports to use s3 gateway to connect to Ceph RGW. Here is the example for connecting to Ceph RGW by Rook.
store: bucket: "primehub" minio: s3gateway: enabled: true serviceEndpoint: "http://rook-ceph-rgw-object-store.rook" accessKey: "[put-your-access-key-id-here]" secretKey: "[put-your-secret-access-key-here]"
Google Cloud Storage Gateway
According to MinIO GCS Gateway, prepare the GCS bucket before installation.
- Choose a existing bucket or create a bucket from Google Cloud Storage console
- Create and manage service accounts
- Generate json keyfile
Here is the example for GCS:
store: bucket: "the-bucket-your-created" minio: gcsgateway: enabled: true projectId: "[your-project-id]" gcsKeyJson: "[the-content-of-your-json-key-file]"
Access the MinIO UI
You could export the MinIO web UI to the public domain
minio: ingress: enabled: true maxBodySize: "8192m"
Enabled ingress would export the handy MinIO object browser to
/minio path. If you upload a large file and see the message
413 Request Entity Too Large. You could increase the value of
However, the ingress only allows you to use MinIO UI. If you want to operate object with AWS S3 compatible library outside of the Kubernetes, do it with
kubectl -n hub port-forward service/primehub-minio 9000
PHFS(PrimeHub File System) is the PrimeHub store based group sharing space. The group data is stored under
mybucket/groups/<group>. It also a fundamental building block for group resources.
By default, if the Primehub store is enabled, the PHFS is enabled as well. But we can manually disable PHFS by configuring
store.phfs.enabled as false.
|If PHFS is enabled|
|The rclone configuration||Please see the chart configuration|
store: enabled: true phfs: enabled: true
The following components would be installed if PHFS is enabled.
- csi-rclone: A CSI implementation for mounting S3-compatible object storage.
- primehub store PVC: csi-rclone-provisioned PVC for PrimeHub store. We use it for mounting the MinIO bucket on the user's pod.
Note for MicroK8s
Because the default kubelet path for MicroK8s is not
/var/lib/kubelet, we need to configure the kubelet path as follow
rclone: kubeletPath: '/var/snap/microk8s/common/var/lib/kubelet'
Configure Log Persistence
Log persistence enables logs to be stored persistently in the PrimeHub store under
mybucket/logs. Currently, only job logs are supported to persist.
By default, if the PrimeHub store is enabled, the log persistence is enabled as well. But we can manually disable log persistence by configuring
store.logPersistence.enabled as false.
|If the log persistence is enabled|
|The fluentd configuration||Please see the chart configuration|
The following components would be installed if log persistence is enabled
- fluentd: The collector to collect container logs and upload to PrimeHub store.