This documentation is for a release that is no longer maintained
See documentation for the latest supported version.4.6. ワークスペースの起動を迅速化するイメージのキャッシュ
OpenShift Dev Spaces ワークスペースの起動時間のパフォーマンスを改善するには、Image Puller を使用して OpenShift クラスターのイメージの事前プルに使用できる OpenShift Dev Spaces に依存しないコンポーネントを使用します。
Image Puller は、関連する OpenShift Dev Spaces ワークスペースイメージを各ノードで事前にプルするように設定できる DaemonSet を作成する追加の OpenShift デプロイメントです。これらのイメージは、OpenShift Dev Spaces ワークスペースの起動時にすでに利用可能なため、ワークスペースの開始時間が改善されています。
Kubernetes Image Puller のインストール
Kubernetes Image Puller の設定
4.6.1. Kubernetes Image Puller のインストール リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、さまざまなユースケース用に Kubernetes Image Puller をインストールします。
4.6.1.1. Kubernetes Image Puller のインストール リンクのコピーリンクがクリップボードにコピーされました!
4.6.1.2. CLI を使用した OpenShift への Image Puller のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift oc 管理ツールを使用して、OpenShift に Kubernetes Image Puller をインストールできます。
ImagePuller が oc CLI でインストールされている場合は、CheCluster カスタムリソースを介して設定することができません。
前提条件
-
OpenShift クラスターへの管理権限を持つアクティブな
ocセッション。OpenShift CLI のスタートガイド を参照してください。
手順
- ドキュメントに従って、プルする関連コンテナーイメージのリストを収集します。「Kubernetes Image Puller のデフォルトイメージリストの取得」 を参照してください。
メモリー要求および制限パラメーターを定義して、コンテナーをプルし、プラットフォームに実行するのに十分なメモリーがあることを確認します。
CACHING_MEMORY_REQUESTまたはCACHING_MEMORY_LIMITの最小値を定義する場合は、プルする各コンテナーイメージの実行に必要なメモリー容量を考慮してください。CACHING_MEMORY_REQUESTまたはCACHING_MEMORY_LIMITの最大値を定義する場合は、クラスターの DaemonSet 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のメモリーが必要です。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 表4.37 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 表4.38 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の値{}NAMESPACEConfigMap の
NAMESPACEの値k8s-image-pullerNODE_SELECTORConfigMap の
NODE_SELECTORの値"{}"Expand 表4.39 serviceaccount.yaml の Image Puller OpenShift テンプレートパラメーター 値 使用方法 デフォルト SERVICEACCOUNT_NAMEデプロイメントで作成され、使用される ServiceAccount の名前
kubernetes-image-pullerKIP_IMAGEスリープバイナリーのコピー元である Image Puller イメージ
registry.redhat.io/devspaces/imagepuller-rhel8:latestImage 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> DaemonSet があることを確認します。DaemonSet では、クラスター内の各ノードに 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
4.6.1.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オペランドを作成します。インストールされた Operator からのアプリケーションの作成 を参照してください。
4.6.2. Kubernetes Image Puller の設定 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、さまざまなユースケースで Kubernetes Image Puller を設定する手順を説明します。
4.6.2.1. Kubernetes Image Puller の設定 リンクのコピーリンクがクリップボードにコピーされました!
4.6.2.2. デフォルトの 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 の使用方法 を参照してください。
手順
OpenShift Dev Spaces イメージを事前にプルするように Image Puller を設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.6.2.3. カスタムイメージを事前にプルするための Image Puller の設定 リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes Image Puller を設定して、カスタムイメージを事前にプルすることができます。
前提条件
- 組織の OpenShift Dev Spaces インスタンスが Kubernetes クラスターにインストールされ、実行されている。
- Image Puller が Kubernetes クラスターにインストールされている。
-
宛先 OpenShift クラスターへの管理権限を持つアクティブな
ocセッション。CLI の使用方法 を参照してください。
手順
カスタムイメージを事前にプルするように Image Puller を設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- セミコロンで区切られたイメージのリスト
4.6.2.4. 追加のイメージを事前にプルするための Image Puller の設定 リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes Image Puller を設定して、追加の OpenShift Dev Spaces イメージを事前にプルできます。
前提条件
- 組織の OpenShift Dev Spaces インスタンスが Kubernetes クラスターにインストールされ、実行されている。
- Image Puller が Kubernetes クラスターにインストールされている。
-
宛先 OpenShift クラスターへの管理権限を持つアクティブな
ocセッション。CLI の使用方法 を参照してください。
手順
k8s-image-pullernamespace を作成します。oc create namespace k8s-image-puller
oc create namespace k8s-image-pullerCopy to Clipboard Copied! Toggle word wrap Toggle overflow KubernetesImagePullerカスタムリソースを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- セミコロンで区切られたイメージのリスト
4.6.3. Kubernetes Image Puller のデフォルトイメージリストの取得 リンクのコピーリンクがクリップボードにコピーされました!
Kubernetes Image Puller で使用されるデフォルトのイメージリストを取得する方法を説明します。これは、Image Puller を確認して、事前にこれらのイメージのサブセットのみを使用するように設定する管理者に役立ちます。
前提条件
- 組織の OpenShift Dev Spaces インスタンスが Kubernetes クラスターにインストールされ、実行されている。
-
宛先 OpenShift クラスターへの管理権限を持つアクティブな
ocセッション。CLI の使用方法 を参照してください。
手順
OpenShift Dev Spaces Operator がデプロイされている namespace を見つけます。
OPERATOR_NAMESPACE=$(oc get pods -l app.kubernetes.io/component=devspaces-operator -o jsonpath={".items[0].metadata.namespace"} --all-namespaces)OPERATOR_NAMESPACE=$(oc get pods -l app.kubernetes.io/component=devspaces-operator -o jsonpath={".items[0].metadata.namespace"} --all-namespaces)Copy to Clipboard Copied! Toggle word wrap Toggle overflow Image Puller で事前にプルできるイメージを確認します。
oc exec -n $OPERATOR_NAMESPACE deploy/devspaces-operator -- cat /tmp/external_images.txt
oc exec -n $OPERATOR_NAMESPACE deploy/devspaces-operator -- cat /tmp/external_images.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow