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

Container Service for Kubernetes:イメージ

最終更新日:Jan 07, 2025

パスワードを指定せずに、Container Registry Enterprise Editionインスタンスからイメージをプルできます。 これにより、操作が簡単になり、画像の引き込みが速くなります。 このトピックでは、ワークフロークラスターのイメージキャッシュを使用してワークフローポッドを作成する方法について説明します。

前提条件

手順1: パスワードなしでContainer Registry Enterprise Editionインスタンスからイメージをプルするようにワークフローを設定する

workflow.yamlファイルにポッド注釈annotations: k8s.aliyun.com/acr-instance-idを追加して、Container Registry Enterprise EditionインスタンスのIDを指定します。 acr-instance-idRegion ID: Instance ID形式で設定します。 ワークフローとContainer Registry Enterprise Editionインスタンスが同じリージョンにデプロイされている場合、リージョンIDを指定する必要はありません。

apiVersion: argoproj.io/v1alpha 1
kind: ワークフロー
メタデータ:
  generateName: hello-world-
spec:
  entrypoint: whalesay
  podMetadata:
    アノテーション:
      k8s.aliyun.com/acr-instance-id: "cn-hangzhou:cri-f34lmbk2rxqx41u8"# Container Registry Enterprise EditionインスタンスのリージョンIDとインスタンスID。 
  templates:
    - name: whalesay
      container:
        image: acr-en-hangzhou-registry.cn-hangzhou.cr.aliyuncs.com/workflow/whalesay# Container Registry Enterprise Editionインスタンスからプルするイメージ。 
        コマンド: [ cowsay]
        args: [ "hello world" ] 

ステップ2: イメージキャッシュを使用したワークフローポッドの作成

次の操作を実行して、自動的または手動でイメージキャッシュを作成し、イメージキャッシュを使用してワークフローポッドを作成します。 イメージキャッシュの使用方法の詳細については、「イメージキャッシュの使用」をご参照ください。

イメージキャッシュを自動的に作成し、イメージキャッシュを使用してワークフローポッドを作成する

ポッド注釈の注釈: k8s.aliyun.com/eci-image-cache: "true" をworkflow.yamlファイルに追加して、画像キャッシュを有効にします。 画像キャッシュ機能を有効にすると、ワークフローは自動的に画像キャッシュを使用できます。

指定されたイメージのイメージキャッシュが既に存在する場合、ワークフローは自動的に既存のイメージキャッシュを使用してポッドを作成します。 これにより、ポッドの作成が高速化されます。

apiVersion: argoproj.io/v1alpha 1
kind: ワークフロー
メタデータ:
  generateName: hello-world-
spec:
  podMetadata:
    アノテーション:
      k8s.aliyun.com/eci-image-cache: "true"# 自動画像キャッシュを有効にするかどうかを指定します。 
  entrypoint: whalesay
  templates:
    - name: whalesay
      container:
        image: docker/whalesay
        コマンド: [ cowsay]
        args: [ "hello world" ] 

イメージキャッシュを手動で作成し、イメージキャッシュを使用してワークフローポッドを作成する

  1. imagecache.yamlという名前のファイルを作成し、次の内容をファイルにコピーします。

    apiVersion: eci.alibabacloud.com/v1
    kind: ImageCache
    メタデータ:
      名前: imagecache-helloworld
      アノテーション:
        k8s.aliyun.com/imc-enable-reuse: "true"# イメージキャッシュの再利用機能を有効にします。 
    仕様:
      images: # キャッシュを有効にするイメージ。 
      -docker/whalesay
      imagePullSecrets: # イメージリポジトリからイメージをプルするために使用されるシークレット。 公開画像を取得するために秘密は必要ありません。 
      -デフォルト: secret1
      imageCacheSize: # イメージキャッシュのサイズ。 単位は USD / GiB です。 デフォルト値は 20 です。 有効な値: 20 ~ 32768 
       20
      retentionDays: # イメージキャッシュの保持期間。 イメージキャッシュは、保存期間が終了すると削除されます。 単位:日 このパラメーターはデフォルトでは空のままです。これは、イメージキャッシュの有効期限が切れないことを示します。 
       7 
  2. 次のコマンドを実行して、イメージキャッシュを作成します。

    kubectl apply -f imagecache.yaml
  3. 次のコマンドを実行して、イメージキャッシュのステータスを照会します。

    kubectl get imagecaches

    期待される出力:

    NAME AGE CACHEID PHASE PROGRESS
    imagecache-helloworld 3m36s imc-f8zfxxxxレディ100% 

    イメージキャッシュが準備完了状態になったら、イメージキャッシュを使用してワークフローを作成できます。

  4. ワークフローの作成を高速化するには、ワークフロー構成でイメージキャッシュのIDを指定します。

    apiVersion: argoproj.io/v1alpha 1
    kind: ワークフロー
    メタデータ:
      generateName: hello-world-
    spec:
      podMetadata:
        アノテーション:
          k8s.aliyun.com/eci-image-snapshot-id: 「imc-f8zf **** 」# ワークフローポッドの作成に使用するイメージキャッシュのIDを指定します。 
      entrypoint: whalesay
      templates:
        - name: whalesay
          container:
            image: docker/whalesay
            コマンド: [ cowsay]
            args: [ "hello world" ]