3.5. ワークスペースの起動を迅速化するイメージのキャッシュ


OpenShift Dev Spaces ワークスペースの起動時間のパフォーマンスを改善するには、Image Puller を使用して OpenShift クラスターのイメージの事前プルに使用できる OpenShift Dev Spaces に依存しないコンポーネントを使用します。

Image Puller は、関連する OpenShift Dev Spaces ワークスペースイメージを各ノードで事前にプルするように設定できる DaemonSet を作成する追加の OpenShift デプロイメントです。これらのイメージは、OpenShift Dev Spaces ワークスペースの起動時にすでに利用可能なため、ワークスペースの開始時間が改善されています。

3.5.1. CLI を使用した OpenShift への Image Puller のインストール

OpenShift oc 管理ツールを使用して、OpenShift に Kubernetes Image Puller をインストールできます。

前提条件

手順

  1. リンクに移動して、プルする関連コンテナーイメージのリストを収集します。

    • https://<openshift_dev_spaces_fqdn>/plugin-registry/v3/external_images.txt
    • https://<openshift_dev_spaces_fqdn>/devfile-registry/devfiles/external_images.txt
  2. メモリー要求および制限パラメーターを定義して、コンテナーをプルし、プラットフォームに実行するのに十分なメモリーがあることを確認します。

    CACHING_MEMORY_REQUEST または CACHING_MEMORY_LIMIT の最小値を定義する場合は、プルする各コンテナーイメージの実行に必要なメモリー容量を考慮してください。

    CACHING_MEMORY_REQUEST または CACHING_MEMORY_LIMIT の最大値を定義する場合は、クラスターのデーモンセット Pod に割り当てられるメモリーの合計を考慮します。

    (memory limit) * (number of images) * (number of nodes in the cluster)

    コンテナーのメモリー制限が 20Mi の 20 ノードで 5 つのイメージをプルする場合、2000Mi のメモリーが必要です。

  3. Image Puller リポジトリーのクローンを作成し、OpenShift テンプレートが含まれるディレクトリーを取得します。

    $ git clone https://github.com/che-incubator/kubernetes-image-puller
    $ cd kubernetes-image-puller/deploy/openshift
  4. 以下のパラメーターを使用して、app.yamlconfigmap.yaml および serviceaccount.yaml OpenShift テンプレートを設定します。

    表3.37 app.yaml の Image Puller OpenShift テンプレートパラメーター
    使用方法デフォルト

    DEPLOYMENT_NAME

    ConfigMap の DEPLOYMENT_NAME の値

    kubernetes-image-puller

    IMAGE

    kubernetes-image-puller デプロイメントに使用されるイメージ

    registry.redhat.io/devspaces/imagepuller-rhel8

    IMAGE_TAG

    プルするイメージタグ

    latest

    SERVICEACCOUNT_NAME

    デプロイメントで作成され、使用される ServiceAccount の名前

    kubernetes-image-puller

    表3.38 configmap.yaml の Image Puller OpenShift テンプレートパラメーター
    使用方法デフォルト

    CACHING_CPU_LIMIT

    ConfigMap の CACHING_CPU_LIMIT の値

    .2

    CACHING_CPU_REQUEST

    ConfigMap の CACHING_CPU_REQUEST の値

    .05

    CACHING_INTERVAL_HOURS

    ConfigMap の CACHING_INTERVAL_HOURS の値

    "1"

    CACHING_MEMORY_LIMIT

    ConfigMap の CACHING_MEMORY_LIMIT の値

    "20Mi"

    CACHING_MEMORY_REQUEST

    ConfigMap の CACHING_MEMORY_REQUEST の値

    "10Mi"

    DAEMONSET_NAME

    ConfigMap の DAEMONSET_NAME の値

    kubernetes-image-puller

    DEPLOYMENT_NAME

    ConfigMap の DEPLOYMENT_NAME の値

    kubernetes-image-puller

    IMAGES

    ConfigMap の IMAGES の値

    {}

    NAMESPACE

    ConfigMap の NAMESPACE の値

    k8s-image-puller

    NODE_SELECTOR

    ConfigMap の NODE_SELECTOR の値

    "{}"

    表3.39 serviceaccount.yaml の Image Puller OpenShift テンプレートパラメーター
    使用方法デフォルト

    SERVICEACCOUNT_NAME

    デプロイメントで作成され、使用される ServiceAccount の名前

    kubernetes-image-puller

  5. Image Puller をホストする OpenShift プロジェクトを作成します。

    $ oc new-project <k8s-image-puller>
  6. テンプレートを処理してから適用し、Puller をインストールします。

    $ oc process -f serviceaccount.yaml | oc apply -f -
    $ oc process -f configmap.yaml | oc apply -f -
    $ oc process -f app.yaml | oc apply -f -

検証手順

  1. <kubernetes-image-puller> デプロイメントおよび <kubernetes-image-puller> デーモンセットがあることを確認します。デーモンセットでは、クラスター内の各ノードに Pod が必要です。

    $ oc get deployment,daemonset,pod --namespace <k8s-image-puller>
  2. <kubernetes-image-puller> ConfigMap の値を確認します。

    $ oc get configmap <kubernetes-image-puller> --output yaml

3.5.2. Web コンソールを使用した OpenShift への ImagePuller のインストール

OpenShift Web コンソールを使用して、コミュニティーでサポートされている Kubernetes Image Puller Operator を OpenShift にインストールできます。

前提条件

手順

  1. コミュニティーでサポートされている Kubernetes Image Puller Operator をインストールします。Web コンソールを使用した OperatorHub からのインストール を参照してください。
  2. コミュニティーでサポートされている Kubernetes Image Puller Operator から KubernetesImagePuller オペランドを作成します。インストールされた Operator からのアプリケーションの作成 を参照してください。

3.5.3. デフォルトの Dev Spaces イメージを事前にプルするように Image Puller の設定

Kubernetes Image Puller を設定して、デフォルトの OpenShift Dev Spaces イメージを事前にプルできます。Red Hat OpenShift Dev Spaces Operator は、事前にプルするイメージのリストを制御し、OpenShift Dev Spaces のアップグレード時にそれらを自動的に更新します。

前提条件

  • 組織の OpenShift Dev Spaces インスタンスが Kubernetes クラスターにインストールされ、実行されている。
  • Image Puller が Kubernetes クラスターにインストールされている。
  • 宛先 OpenShift クラスターへの管理権限を持つアクティブな oc セッション。CLI の使用方法 を参照してください。

手順

  1. OpenShift Dev Spaces イメージを事前にプルするように Image Puller を設定します。

    oc patch checluster/devspaces \
        --namespace openshift-devspaces \
        --type='merge' \
        --patch '{
                  "spec": {
                    "components": {
                      "imagePuller": {
                        "enable": true
                      }
                    }
                  }
                }'

3.5.4. カスタムイメージを事前にプルするためのイメージプルの設定

Kubernetes Image Puller を設定して、カスタムイメージを事前にプルすることができます。

前提条件

  • 組織の OpenShift Dev Spaces インスタンスが Kubernetes クラスターにインストールされ、実行されている。
  • Image Puller が Kubernetes クラスターにインストールされている。
  • 宛先 OpenShift クラスターへの管理権限を持つアクティブな oc セッション。CLI の使用方法 を参照してください。

手順

  1. カスタムイメージを事前にプルするように Image Puller を設定します。

    oc patch checluster/devspaces \
        --namespace openshift-devspaces \
        --type='merge' \
        --patch '{
                  "spec": {
                    "components": {
                      "imagePuller": {
                        "enable": true,
                        "spec": {
                          "images": "NAME-1=IMAGE-1;NAME-2=IMAGE-2" 1
                        }
                      }
                    }
                  }
                }'
    1
    セミコロンで区切られたイメージのリスト

3.5.5. 追加のイメージを事前にプルするための Image Puller の設定

Kubernetes Image Puller を設定して、追加の OpenShift Dev Spaces イメージを事前にプルできます。

前提条件

  • 組織の OpenShift Dev Spaces インスタンスが Kubernetes クラスターにインストールされ、実行されている。
  • Image Puller が Kubernetes クラスターにインストールされている。
  • 宛先 OpenShift クラスターへの管理権限を持つアクティブな oc セッション。CLI の使用方法 を参照してください。

手順

  1. k8s-image-puller namespace を作成します。

    oc create namespace k8s-image-puller
  2. KubernetesImagePuller カスタムリソースを作成します。

    oc apply -f - <<EOF
    apiVersion: che.eclipse.org/v1alpha1
    kind: KubernetesImagePuller
    metadata:
      name: k8s-image-puller-images
      namespace: k8s-image-puller
    spec:
      images: "__NAME-1__=__IMAGE-1__;__NAME-2__=__IMAGE-2__" 1
    EOF
    1
    セミコロンで区切られたイメージのリスト
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.