Skip to content

Getting Started

Based on the Fluid documentation for the v1.0.x line. Commands assume a working Kubernetes cluster and Helm 3.

Prerequisites

  • A Kubernetes cluster with at least one schedulable node.
  • kubectl configured against that cluster.
  • Helm 3 installed locally.
  • A remote data source to mount (an object store bucket, HDFS, or a public dataset URL).

Install

Add the chart repository and install Fluid into its own namespace. This deploys the CRDs and the controllers, CSI driver, and webhook.

bash
helm repo add fluid https://fluid-cloudnative.github.io/charts
helm repo update
helm install fluid fluid/fluid -n fluid-system --create-namespace

A first working setup

The core job is: declare a dataset, give it a runtime, and have an application Pod read it through a cache.

  1. Create a Dataset pointing at your under-file-system mount.

    yaml
    apiVersion: data.fluid.io/v1alpha1
    kind: Dataset
    metadata:
      name: demo
    spec:
      mounts:
        - mountPoint: https://mirrors.bit.edu.cn/apache/spark/
          name: spark
  2. Create a same-named AlluxioRuntime. The matching name is what binds them.

    yaml
    apiVersion: data.fluid.io/v1alpha1
    kind: AlluxioRuntime
    metadata:
      name: demo
    spec:
      replicas: 1
      tieredstore:
        levels:
          - mediumtype: MEM
            path: /dev/shm
            quota: 2Gi
  3. Apply both and wait for the dataset to bind.

    bash
    kubectl apply -f dataset.yaml -f runtime.yaml
    kubectl get dataset demo

When the runtime controller finishes setup, the dataset reaches the Bound phase and a PersistentVolumeClaim named demo appears. Mount that PVC in an application Pod to read the data through the cache.

Verify it works

bash
kubectl get dataset demo -o jsonpath='{.status.phase}'
kubectl get pvc demo
kubectl get pods -n fluid-system

A healthy setup shows the dataset phase as Bound, a bound demo PVC, and the Fluid controllers, CSI driver, and webhook Pods running in fluid-system. Optionally create a DataLoad resource to prefetch data into the cache before your job runs.

Where to go next

See the Fluid documentation for tiered store tuning, the other runtimes (JuiceFS, JindoCache, ThinRuntime), data operations (DataLoad, DataMigrate, DataBackup), and production concerns such as HA and metrics. The repository's samples/ directory has runnable examples per engine.