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

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

最終更新日:Dec 28, 2024

eci-profile は、条件を満たす既存の Pod にアノテーションを追加して Elastic Container Instance の機能を使用できるようにする ECI Effect 機能を提供します。このトピックでは、特定の既存の Pod にアノテーションを自動的に追加して DataCache を使用するために eci-profile を構成する方法について説明します。

構成の説明

eci-profile は ECI Effect 機能を提供します。eci-profile の selectors セクションでは、一致させる必要がある名前空間ラベルまたは Pod ラベルを配列形式で指定し、動的に追加する必要がある DataCache 関連のアノテーションを指定できます。指定したアノテーションは、指定したラベルを持つ Pod に自動的に追加されます。詳細については、eci-profile の構成 を参照してください。

selectors パラメーターには複数のセレクターを構成できます。各セレクターの名前を指定する必要があります。また、必要に応じて、各セレクターの以下の情報を指定することもできます。

  • namespaceSelector: 一致させる名前空間ラベル。

  • objectSelector: 一致させる Pod ラベル。

  • effect: Pod に動的に追加するアノテーションとラベル。

k8s.aliyun.com/eci-data-cache-bucket アノテーションを追加して、DataCache の保存に使用するバケットを指定できます。

構成例

  1. eci-profile 構成ファイルを編集します。

    kubectl -n kube-system edit cm eci-profile
  2. selectors セクションにセレクターを追加します。

    次のコードは、data-cache: true ラベルを持つ Pod に k8s.aliyun.com/eci-data-cache-bucket: "default" アノテーションを自動的に追加して、DataCache の保存に使用するバケットを指定する例を示しています。

    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 のサンプルコンテンツ:

    重要

    DataCache を使用して Pod を作成する場合は、DataCache の保存に使用するバケットを指定する必要があります。また、HostPath パラメーターを使用して、データを保存するパスを指定する必要があります。

    apiVersion: v1
    kind: Pod
    metadata:
      name: test-edc
      labels: 
        alibabacloud.com/eci: "true"
        data-cache: "true"   # ラベルが Pod に追加されると、eci-profile によって k8s.aliyun.com/eci-data-cache-bucket: "default" アノテーションが Pod に自動的に追加され、DataCache の保存に使用するバケットが指定されます。
    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"   # データの保存パスを指定します。値を実際の値に置き換えます。