Providers

Kerberos Storage allows you to attach one or more (and different) storage providers. These providers could be in the cloud like S3, Google Cloud Storage or Azure blob storage, or providers on premise such as Minio.

Depending on your use case: Kerberos Storage Cloud or Kerberos Storage Edge, you will opt for a specific storage provider. For example in the case Kerberos Storage Edge, it makes sense to store your recordings also at the edge. The accomplish this you could for example setup a Minio instance.

Below you can find a detailed step-by-step guide to setup different storage providers.

Prerequisites

This installation guide assumes you have setup Kerberos Storage properly.

Installation Minio

Minio is the recommended solution if you want to persist your data at the edge. To setup minio you just have to install a few components. Let’s start with getting the configuration files (if not already done) for setting up Minio.

git clone https://github.com/kerberos-io/storage

Now we have the configrations available, let’s use start with creating a local-storage volume using ./storage/yaml/minio/volume.yaml file. When opening the file we should focus on following attributes.

  spec:
    capacity:
-->   storage: 20Gi
    accessModes:
    - ReadWriteOnce
    persistentVolumeReclaimPolicy: Recycle
    storageClassName: hdd
    local:
-->   path: /home/minio
    nodeAffinity:
      required:
        nodeSelectorTerms:
        - matchExpressions:
          - key: kubernetes.io/hostname
            operator: In
            values:
-->         - hostname

Adapt the storage capacity to the amount of storage you want to assign to Minio, change the local path to the directory where you want to persist your data, and to finish make sure the hostname is the hostname of your node (where the directory is located). Once ready we can create the local.path directory and create the volume.

mkdir /home/minio
kubectl apply -f ./storage/yaml/minio/volume.yaml

Next create Persistent Volume Claim (PVC), open the ./storage/yaml/minio/volume.yaml file and make sure the storage is aligned with the configurations of you volume.yaml.

  resources:
    # This is the request for storage. Should be available in the cluster.
    requests:
-->   storage: 20Gi    

Once ready, create the PVC.

kubectl apply -f ./storage/yaml/minio/pvc.yaml

Ok, let us finish this and deploy the Kerberos Storage deployment. Before applying, we have to make sure the Ingress hostname is aligned. Open the ./storage/yaml/minio/deployment.yaml file and scroll down until you see the Ingress.

  spec:
    rules:
--> - host: minio.domain.com
      http:
        paths:
        - path: /
          backend:
            serviceName: minio
            servicePort: 9000

Adapt the hostname to your needs, and apply the deployment.yaml file when appropriate.

kubectl apply -f ./storage/yaml/minio/deployment.yaml

You should now see Minio being installed, and able to access it from your favourite web browser. You can use with the credentials you have defined in the deployment.yaml file.

When installing at the edge, the preferred installation method is MinIO.

When installing at the edge, the preferred installation method is MinIO.

Edit this page on GitHub