第8章 動的プラグインキャッシュの使用
Red Hat Developer Hub (RHDH) の動的プラグインキャッシュは、以前にインストールされたプラグインを保存することでインストールプロセスを強化し、プラットフォームの起動時間を短縮します。設定が変更されていない場合、この機能により、次回の起動時にプラグインを再度ダウンロードする必要がなくなります。
動的プラグインキャッシュを有効化する場合:
-
システムは、各プラグインの YAML 設定 (
pluginConfig
を除く) のチェックサムを計算します。 -
チェックサムは、プラグインのディレクトリー内の
dynamic-plugin-config.hash
という名前のファイルに保存されます。 - 起動中に、プラグインのパッケージ参照が以前のインストールと一致し、チェックサムが変更されていない場合、ダウンロードはスキップされます。
- 前回の起動以降に無効になっているプラグインは自動的に削除されます。
8.1. 動的プラグインキャッシュの有効化
RHDH で動的プラグインキャッシュを有効にするには、プラグインディレクトリー dynamic-plugins-root
が永続ボリュームである必要があります。
8.1.1. Operator を使用した動的プラグインキャッシュ用の PVC の作成
Operator ベースのインストール環境では、デフォルトの dynamic-plugins-root
ボリュームを dynamic-plugins-root
という名前の PVC に置き換えて、永続ボリューム要求 (PVC) を手動で作成する必要があります。
手順
永続ボリュームの定義を作成し、
pvc.yaml
などのファイルに保存します。以下に例を示します。kind: PersistentVolumeClaim apiVersion: v1 metadata: name: dynamic-plugins-root spec: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: dynamic-plugins-root spec: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi
Copy to Clipboard Copied! 注記この例では、アクセスモードとして
ReadWriteOnce
を使用し、異なるノード間で複数のレプリカが PVC を共有するのを防ぎます。複数の異なるノードで複数のレプリカを実行するには、ストレージドライバーに応じて、
ReadWriteMany
などのアクセスモードを使用する必要があります。この PVC をクラスターに適用するために、次のコマンドを実行します。
oc apply -f pvc.yaml
oc apply -f pvc.yaml
Copy to Clipboard Copied! デフォルトの
dynamic-plugins-root
ボリュームをdynamic-plugins-root
という名前の PVC に置き換えます。以下に例を示します。apiVersion: rhdh.redhat.com/v1alpha3 kind: Backstage metadata: name: developer-hub spec: deployment: patch: spec: template: spec: volumes: - $patch: replace name: dynamic-plugins-root persistentVolumeClaim: claimName: dynamic-plugins-root
apiVersion: rhdh.redhat.com/v1alpha3 kind: Backstage metadata: name: developer-hub spec: deployment: patch: spec: template: spec: volumes: - $patch: replace name: dynamic-plugins-root persistentVolumeClaim: claimName: dynamic-plugins-root
Copy to Clipboard Copied! 注記新しいボリュームの追加を回避するために、
$patch: replace
ディレクティブを使用する必要があります。
8.1.2. Helm チャートを使用した動的プラグインキャッシュ用の PVC の作成
Helm チャートによるインストール環境では、Pod の再起動後も動的プラグインキャッシュを保持する必要がある場合、永続ボリューム要求 (PVC) を作成し、それを使用するように Helm チャートを設定する必要があります。
手順
永続ボリューム定義を作成します。以下に例を示します。
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: dynamic-plugins-root spec: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: dynamic-plugins-root spec: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi
Copy to Clipboard Copied! 注記この例では、アクセスモードとして
ReadWriteOnce
を使用し、異なるノード間で複数のレプリカが PVC を共有するのを防ぎます。複数の異なるノードで複数のレプリカを実行するには、ストレージドライバーに応じて、
ReadWriteMany
などのアクセスモードを使用する必要があります。この PVC をクラスターに適用するために、次のコマンドを実行します。
oc apply -f pvc.yaml
oc apply -f pvc.yaml
Copy to Clipboard Copied! PVC を使用するように Helm チャートを設定します。以下に例を示します。
upstream: backstage: extraVolumes: - name: dynamic-plugins-root persistentVolumeClaim: claimName: dynamic-plugins-root - name: dynamic-plugins configMap: defaultMode: 420 name: '{{ printf "%s-dynamic-plugins" .Release.Name }}' optional: true - name: dynamic-plugins-npmrc secret: defaultMode: 420 optional: true secretName: '{{ printf "%s-dynamic-plugins-npmrc" .Release.Name }}' - name: dynamic-plugins-registry-auth secret: defaultMode: 416 optional: true secretName: '{{ printf "%s-dynamic-plugins-registry-auth" .Release.Name }}' - name: npmcacache emptyDir: {} - name: temp emptyDir: {}
upstream: backstage: extraVolumes: - name: dynamic-plugins-root persistentVolumeClaim: claimName: dynamic-plugins-root - name: dynamic-plugins configMap: defaultMode: 420 name: '{{ printf "%s-dynamic-plugins" .Release.Name }}' optional: true - name: dynamic-plugins-npmrc secret: defaultMode: 420 optional: true secretName: '{{ printf "%s-dynamic-plugins-npmrc" .Release.Name }}' - name: dynamic-plugins-registry-auth secret: defaultMode: 416 optional: true secretName: '{{ printf "%s-dynamic-plugins-registry-auth" .Release.Name }}' - name: npmcacache emptyDir: {} - name: temp emptyDir: {}
Copy to Clipboard Copied! 注記PVC を使用するように Helm チャートを設定する場合は、デフォルトの Helm チャートで定義されている
extraVolumes
も含める必要があります。