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.txtURL に移動して、プルする関連コンテナーイメージのリストを収集します。 -
プル前のリストからイメージを判別します。ワークスペースの起動時間を短縮するには、
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 コンソールセッション。Web コンソールへのアクセスを 参照してください。
手順
- コミュニティーでサポートされている Kubernetes Image Puller Operator をインストールします。Web コンソールを使用して OperatorHub からインストールするを 参照してください。
-
コミュニティーでサポートされている Kubernetes Image Puller Operator から
KubernetesImagePullerオペランドを作成します。インストールされた Operators からアプリケーションを作成するを 参照してください。
3.5.4. CLI を使用した OpenShift への Image Puller のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift oc 管理ツールを使用して、OpenShift に Kubernetes Image Puller をインストールできます。
前提条件
- 「イメージ一覧の定義」
- 「メモリー設定の定義」
-
OpenShift クラスターへの管理権限を持つアクティブな
ocセッション。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/openshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のパラメーターを使用して、
app.yaml、configmap.yamlおよびserviceaccount.yamlOpenShift テンプレートを設定します。Expand 表3.38 app.yaml の Image Puller OpenShift テンプレートパラメーター 値 使用方法 デフォルト DEPLOYMENT_NAMEConfigMap の
DEPLOYMENT_NAMEの値kubernetes-image-pullerIMAGEkubernetes-image-pullerデプロイメントに使用されるイメージregistry.redhat.io/devspaces/imagepuller-rhel8IMAGE_TAGプルするイメージタグ
latestSERVICEACCOUNT_NAMEデプロイメントで作成され、使用される ServiceAccount の名前
kubernetes-image-pullerExpand 表3.39 configmap.yaml の Image Puller OpenShift テンプレートパラメーター 値 使用方法 デフォルト CACHING_CPU_LIMITConfigMap の
CACHING_CPU_LIMITの値.2CACHING_CPU_REQUESTConfigMap の
CACHING_CPU_REQUESTの値.05CACHING_INTERVAL_HOURSConfigMap の
CACHING_INTERVAL_HOURSの値"1"CACHING_MEMORY_LIMITConfigMap の
CACHING_MEMORY_LIMITの値"20Mi"CACHING_MEMORY_REQUESTConfigMap の
CACHING_MEMORY_REQUESTの値"10Mi"DAEMONSET_NAMEConfigMap の
DAEMONSET_NAMEの値kubernetes-image-pullerDEPLOYMENT_NAMEConfigMap の
DEPLOYMENT_NAMEの値kubernetes-image-pullerIMAGESConfigMap の
IMAGESの値"undefined"NAMESPACEConfigMap の
NAMESPACEの値k8s-image-pullerNODE_SELECTORConfigMap の
NODE_SELECTORの値"{}"Expand 表3.40 serviceaccount.yaml の Image Puller OpenShift テンプレートパラメーター 値 使用方法 デフォルト SERVICEACCOUNT_NAMEデプロイメントで作成され、使用される ServiceAccount の名前
kubernetes-image-pullerImage 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 yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow