すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:Fluid を使用したエッジノードからの OSS アクセス高速化

最終更新日:Apr 03, 2026

Fluid は、オープンソースの Kubernetes ネイティブ分散データセットのオーケストレーションおよびアクセラレーションエンジンです。クラウドネイティブ環境におけるデータ集約型アプリケーション(例:ビッグデータおよび AI アプリケーション)向けに設計されています。エッジシナリオでは、Fluid を使用することで、エッジノードから Object Storage Service (OSS) へのファイルアクセスを大幅に高速化できます。このトピックでは、ACK Edge クラスター での Fluid のデータアクセラレーション機能の使用方法について説明します。

前提条件

  • ACK Edge クラスター(バージョン 1.18 以降)があります。詳細については、「ACK Edge クラスターの作成」をご参照ください。

  • エッジノードプールを作成し、エッジノードを追加済みであること。詳細については、「エッジノードプールの作成」および「エッジノードの追加」をご参照ください。

  • クラウドネイティブ AI スイートをインストールし、ack-fluid コンポーネントをデプロイ済みであること。

    重要

    オープンソースの Fluid をインストールしている場合は、ack-fluid コンポーネントをデプロイする前にアンインストールしてください。

    • クラウドネイティブ AI スイートがインストールされていない場合:スイートをインストールする際に、[Fluid データアクセラレーション] を有効化します。詳細については、「AI スイートコンソールのデプロイ」をご参照ください。

    • クラウドネイティブ AI スイートがすでにインストールされている場合: [ACK コンソール]クラウドネイティブ AI コンポーネントセット ページで [ack-fluid] をデプロイします。

  • kubectl を使用して Kubernetes クラスターに接続済みであること。詳細については、「kubectl を使用した ACK クラスターへの接続」をご参照ください。

  • Object Storage Service (OSS) をアクティブ化済みであること。詳細については、「OSS のアクティブ化」をご参照ください。

ステップ 1: OSS データの準備

  1. 次のコマンドを実行して、テストデータを ECS インスタンスにダウンロードします。

    wget https://archive.apache.org/dist/spark/spark-3.0.1/spark-3.0.1-bin-hadoop2.7.tgz
  2. ダウンロードしたテストデータを、OSS バケットにアップロードします。

    重要

    以下の手順では、Alibaba Cloud Linux 3.2104 LTS 64-bit を実行している ECS インスタンスを例として、OSS へのデータのアップロード方法を示します。その他のオペレーティングシステムについては、「ossutil クイックスタート」および「ossutil コマンドリファレンス 1.0」をご参照ください。

    1. ossutil をインストールします。

    2. examplebucket という名前のバケットを作成します。

      • 次のコマンドを実行して examplebucket を作成します。

        ossutil mb oss://examplebucket
      • 次の出力は、examplebucket が作成されたことを示します。

        0.668238(s) elapsed
    3. ダウンロードしたテストデータを examplebucket バケットにアップロードします。

      ossutil cp spark-3.0.1-bin-hadoop2.7.tgz oss://examplebucket

ステップ 2: データセットと JindoRuntime の作成

  1. 次の内容で resource.yaml ファイルを作成します。このファイルには 2 つの目的があります。

    • リモートデータセットを記述し、基盤となるファイルシステム (UFS) に関する情報を提供するデータセットを作成します。

    • データキャッシュ用の JindoFS クラスターを起動する JindoRuntime を作成します。

    apiVersion: data.fluid.io/v1alpha1
    kind: Dataset
    metadata:
      name: hadoop
    spec:
      nodeAffinity:
        required:
          nodeSelectorTerms:
            - matchExpressions:
              - key: alibabacloud.com/nodepool-id
                operator: In
                values:
                  - npxxxxxxxxxxxxxx
      mounts:
        - mountPoint: oss://<oss_bucket>/<bucket_dir>
          options:
            fs.oss.endpoint: <oss_endpoint>
          name: hadoop
          path: "/"
          encryptOptions:
            - name: fs.oss.accessKeyId
              valueFrom:
                secretKeyRef:
                  name: mysecret
                  key: fs.oss.accessKeyId
            - name: fs.oss.accessKeySecret
              valueFrom:
                secretKeyRef:
                  name: mysecret
                  key: fs.oss.accessKeySecret
    ---
    apiVersion: data.fluid.io/v1alpha1
    kind: JindoRuntime
    metadata:
      name: hadoop
    spec:
      nodeSelector:
        alibabacloud.com/nodepool-id: npxxxxxxxxxxxxxx
      replicas: 2
      tieredstore:
        levels:
          - mediumtype: MEM
            path: /dev/shm
            volumeType: emptyDir
            quota: 2Gi
            high: "0.99"
            low: "0.95"
    説明
    • ACK エッジクラスターでは、nodeAffinitynodeSelector を使用して Dataset と JindoRuntime を同じノードプールにデプロイする必要があります。これにより、ノードプール内のノードが通信できるようになります。

    • エッジノード管理と OSS アクセスの両方にクラウド-エッジ間ネットワーク通信が必要なため、コントロールチャンネルの安定性を維持するために十分なネットワーク帯域幅を確保することを推奨します。

    次の表はパラメーターを説明します。

    パラメーター

    説明

    mountPoint

    oss://<oss_bucket>/<bucket_dir> は、マウントする UFS のパスを指定します。このパスは単一ファイルではなく、ディレクトリを指す必要があります。このパスにはエンドポイントを含めないでください。

    fs.oss.endpoint

    replicas

    mediumtype

    path

    quota

    high

    low

ステップ 3: データアクセス高速化のテスト

  1. 次の内容で app.yaml という名前のファイルを作成します。

    apiVersion: v1
    kind: Pod
    metadata:
      name: demo-app
    spec:
      nodeSelector:
        alibabacloud.com/nodepool-id: npxxxxxxxxxxxxx
      containers:
        - name: demo
          image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
          volumeMounts:
            - mountPath: /data
              name: hadoop
      volumes:
        - name: hadoop
          persistentVolumeClaim:
            claimName: hadoop
    説明

    ACK Edge クラスターでは、nodeSelector を使用して、ステップ 2 で指定されたノードプールにテスト Pod をデプロイする必要があります。

  2. Pod でシェルを開き、ファイルサイズを確認します。

    kubectl exec -it demo-app -- bash
    du -sh /data/spark-3.0.1-bin-hadoop2.7.tgz

    期待される出力:

    210M    /data/spark-3.0.1-bin-hadoop2.7.tgz

(オプション) クリーンアップ

データアクセラレーションが不要になった場合は、Pod、データセット、および JindoRuntime を削除します。

Pod の削除:

kubectl delete pod demo-app

データセットと JindoRuntime の削除:

kubectl delete dataset hadoop