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

Elastic Container Instance:eci-profile を設定して DataCache を自動的に使用する

最終更新日:Apr 02, 2026

DataCache に依存する多数の Pod を実行する場合、各 Pod の spec に手動で DataCache のアノテーションを追加するのは、エラーが発生しやすく、メンテナンスも困難です。eci-profile の ECI Effect 機能を使用すると、ラベルセレクターに一致するすべての Pod に DataCache のアノテーションを自動的にインジェクトできます。個々の Pod の spec を変更する必要はありません。

このトピックでは、eci-profile のセレクターを設定して、特定のラベルを持つ Pod に k8s.aliyun.com/eci-data-cache-bucket アノテーションを自動的に追加する方法について説明します。

仕組み

eci-profile は、設定されているすべてのセレクターに対して Pod のラベルを評価します。Pod がセレクターの namespaceSelector または objectSelector の基準に一致する場合、eci-profile はセレクターの effect フィールドで定義されたアノテーションを Pod にインジェクトします。

前提条件

開始する前に、以下をご確認ください:

  • kube-system 名前空間の ConfigMap を編集する権限を持つ、クラスターへの kubectl アクセス

  • DataCache データを格納するためのバケット

eci-profile セレクターの設定

セレクターのフィールド

selectors 配列の各エントリには、name フィールドを含める必要があります。以下のフィールドも利用可能です:

フィールド必須説明
nameはいこのセレクターの一意の識別子
namespaceSelectorいいえ名前空間のラベルに基づいて Pod を照合します。これを使用して、特定のラベルを持つ名前空間内のすべての Pod にアノテーションを適用します。
objectSelectorいいえPod 自身のラベルに基づいて Pod を照合します。これを使用して、ラベルによって個々の Pod をターゲットにします。
effectいいえ一致する Pod にインジェクトするアノテーションとラベル

DataCache セレクターの追加

  1. eci-profile の ConfigMap を編集します。

    kubectl -n kube-system edit cm eci-profile
  2. selectors セクションにセレクターを追加します。次の例では、data-cache: "true" というラベルが付いたすべての Pod に k8s.aliyun.com/eci-data-cache-bucket: "default" アノテーションを自動的にインジェクトします。

    data:
      selectors: |
        [
          {
            "name": "datacache-selector",
            "objectSelector": {
              "matchLabels": {
                "data-cache": "true"
              }
            },
            "effect": {
              "annotations": {
                "k8s.aliyun.com/eci-data-cache-bucket": "default"
              }
            }
          }
        ]
  3. DataCache を作成します。詳細については、「DataCache の作成」をご参照ください。

  4. DataCache を使用して Pod を作成します。

    kubectl create -f test-edc.yaml

    以下は test-edc.yaml のサンプルです。この Pod には data-cache: "true" ラベルが付与されており、これにより eci-profile がトリガーされ、k8s.aliyun.com/eci-data-cache-bucket: "default" アノテーションが自動的にインジェクトされます。

    重要

    DataCache を使用して Pod を作成する場合、HostPath パラメーターを使用して、DataCache を格納するバケットとデータが格納されるパスを指定する必要があります。

    apiVersion: v1
    kind: Pod
    metadata:
      name: test-edc
      labels:
        alibabacloud.com/eci: "true"
        data-cache: "true"   # eci-profile をトリガーして k8s.aliyun.com/eci-data-cache-bucket アノテーションをインジェクトします
    spec:
      containers:
        - name: model
          image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
          command: ["sleep", "999999"]
          volumeMounts:
            - name: "model"
              mountPath: "/model"
      volumes:
        - name: "model"
          hostPath:
            path: "/model/test"   # 必須: DataCache データが格納されるパス。実際のパスに置き換えてください。

次のステップ

  • eci-profile の設定 — eci-profile の完全な構造と利用可能なすべてのフィールドについて説明します。

  • DataCache の作成 — DataCache リソースを作成および管理します。