This documentation is for a release that is no longer maintained
See documentation for the latest supported version.3.5. ワークスペースの起動を迅速化するイメージのキャッシュ
OpenShift Dev Spaces ワークスペースの起動時間のパフォーマンスを改善するには、Image Puller を使用して OpenShift クラスターのイメージの事前プルに使用できる OpenShift Dev Spaces に依存しないコンポーネントを使用します。Image Puller は、関連する OpenShift Dev Spaces ワークスペースイメージを各ノードで事前にプルするように設定できる DaemonSet を作成する追加の OpenShift デプロイメントです。これらのイメージは、OpenShift Dev Spaces ワークスペースの起動時にすでに利用可能なため、ワークスペースの開始時間が改善されています。
Image Puller は、設定用に以下のパラメーターを提供します。
パラメーター | 使用方法 | デフォルト |
---|---|---|
| デーモンセットのヘルスチェック間隔 (時間単位) |
|
| Puller の実行中にキャッシュされる各イメージのメモリー要求。「メモリー設定の定義」 を参照してください。 |
|
| Puller の実行中にキャッシュされる各イメージのメモリー制限。「メモリー設定の定義」 を参照してください。 |
|
| Puller の実行中にキャッシュされる各イメージのプロセッサー要求 |
|
| Puller の実行中にキャッシュされる各イメージのプロセッサー制限 |
|
| 作成するデーモンセットの名前 |
|
| 作成するデプロイメントの名前 |
|
| 作成するデーモンセットが含まれる OpenShift プロジェクト |
|
|
プルするイメージのセミコロンで区切られたリスト ( | |
| デーモンセットによって作成される Pod に適用するノードセレクター |
|
| DaemonSet によって作成される Pod に適用されるアフィニティー |
|
|
DeamonSet で作成される Pod に追加する |
|
関連情報
3.5.1. イメージ一覧の定義 リンクのコピーリンクがクリップボードにコピーされました!
Image Puller は、che-machine-exec
などの scratch イメージを含むほとんどのイメージを事前プルできます。ただし、traefik
などの Dockerfile にボリュームをマウントするイメージは、OpenShift 3.11 における事前プルではサポートされません。
手順
-
https://<openshift_dev_spaces_fqdn>/plugin-registry/v3/external_images.txt
URL に移動して、プルする関連コンテナーイメージのリストを収集します。 -
プル前のリストからイメージを判別します。ワークスペースの起動時間を短縮するには、
Universal-developer-image
、che-code、che-gateway
などのワークスペース関連のイメージをプルすることを検討してください。
3.5.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)
(memory limit) * (number of images) * (number of nodes in the cluster)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナーのメモリー制限が
20Mi
の 20 ノードで 5 つのイメージをプルする場合、2000Mi
のメモリーが必要です。
3.5.3. Web コンソールを使用した OpenShift への Image Puller のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Web コンソールを使用して、コミュニティーでサポートされている Kubernetes Image Puller Operator を OpenShift にインストールできます。
前提条件
- 「イメージ一覧の定義」
- 「メモリー設定の定義」
- クラスター管理者による OpenShift Web コンソールセッション。Accessing the web console を参照してください。
手順
- コミュニティーでサポートされている Kubernetes Image Puller Operator をインストールします。Web コンソールを使用した OperatorHub からのインストール を参照してください。
-
コミュニティーでサポートされている Kubernetes Image Puller Operator から
KubernetesImagePuller
オペランドを作成します。Creating applications from installed Operators を参照してください。
3.5.4. CLI を使用した OpenShift への Image Puller のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift oc
管理ツールを使用して、OpenShift に Kubernetes Image Puller をインストールできます。
前提条件
- 「イメージ一覧の定義」
- 「メモリー設定の定義」
-
OpenShift クラスターへの管理権限を持つアクティブな
oc
セッション。Getting started with the OpenShift CLI を参照してください。
手順
Image Puller リポジトリーのクローンを作成し、OpenShift テンプレートが含まれるディレクトリーを取得します。
git clone https://github.com/che-incubator/kubernetes-image-puller cd kubernetes-image-puller/deploy/openshift
$ git clone https://github.com/che-incubator/kubernetes-image-puller $ cd kubernetes-image-puller/deploy/openshift
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のパラメーターを使用して、
app.yaml
、configmap.yaml
およびserviceaccount.yaml
OpenShift テンプレートを設定します。Expand 表3.38 app.yaml の Image Puller OpenShift テンプレートパラメーター 値 使用方法 デフォルト DEPLOYMENT_NAME
ConfigMap の
DEPLOYMENT_NAME
の値kubernetes-image-puller
IMAGE
kubernetes-image-puller
デプロイメントに使用されるイメージregistry.redhat.io/devspaces/imagepuller-rhel8:3.10
IMAGE_TAG
プルするイメージタグ
latest
SERVICEACCOUNT_NAME
デプロイメントで作成され、使用される ServiceAccount の名前
kubernetes-image-puller
Expand 表3.39 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
の値"undefined"
NAMESPACE
ConfigMap の
NAMESPACE
の値k8s-image-puller
NODE_SELECTOR
ConfigMap の
NODE_SELECTOR
の値"{}"
Expand 表3.40 serviceaccount.yaml の Image Puller OpenShift テンプレートパラメーター 値 使用方法 デフォルト SERVICEACCOUNT_NAME
デプロイメントで作成され、使用される ServiceAccount の名前
kubernetes-image-puller
Image Puller をホストする OpenShift プロジェクトを作成します。
oc new-project <k8s-image-puller>
$ oc new-project <k8s-image-puller>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow テンプレートを処理してから適用し、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 -
$ oc process -f serviceaccount.yaml | oc apply -f - $ oc process -f configmap.yaml | oc apply -f - $ oc process -f app.yaml | oc apply -f -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証手順
<kubernetes-image-puller> デプロイメントおよび <kubernetes-image-puller> デーモンセットがあることを確認します。デーモンセットでは、クラスター内の各ノードに Pod が必要です。
oc get deployment,daemonset,pod --namespace <k8s-image-puller>
$ oc get deployment,daemonset,pod --namespace <k8s-image-puller>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <kubernetes-image-puller>
ConfigMap
の値を確認します。oc get configmap <kubernetes-image-puller> --output yaml
$ oc get configmap <kubernetes-image-puller> --output yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow