第 8 章 使用动态插件缓存
Red Hat Developer Hub (RHDH)中的动态插件缓存通过存储之前安装的插件来增强安装过程并减少平台引导时间。如果配置保持不变,则这个功能会阻止在以后的引导中重新下载插件。
当您启用动态插件缓存时:
-
系统计算每个插件的 YAML 配置的校验和(不包括
pluginConfig)。 -
checksum 存储在插件目录中名为
dynamic-plugin-config.hash的文件中。 - 在启动过程中,如果插件的软件包引用与之前的安装匹配,并且校验和保持不变,则会跳过下载。
- 由于上一次引导而禁用的插件会被自动删除。
8.1. 启用动态插件缓存 复制链接链接已复制到粘贴板!
要在 RHDH 中启用动态插件缓存,plugins 目录 dynamic-plugins-root 必须是持久性卷。
8.1.1. 使用 Operator 为动态插件缓存创建 PVC 复制链接链接已复制到粘贴板!
对于基于 operator 的安装,您必须手动创建持久性卷声明(PVC),方法是将默认的 dynamic-plugins-root 卷替换为名为 dynamic-plugins-root 的 PVC。
流程
创建持久性卷定义并将其保存到文件中,如
pvc.yaml。例如:kind: PersistentVolumeClaim apiVersion: v1 metadata: name: dynamic-plugins-root spec: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi注意本例使用
ReadWriteOnce作为访问模式,这可防止多个副本在不同节点间共享 PVC。要在不同节点上运行多个副本,具体取决于您的存储驱动程序,您必须使用一个访问模式,如
ReadWriteMany。要将此 PVC 应用到集群,请运行以下命令:
oc apply -f pvc.yaml将默认的
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注意要避免添加新卷,您必须使用
$patch: replace指令。
8.1.2. 使用 Helm Chart 为动态插件缓存创建 PVC 复制链接链接已复制到粘贴板!
对于 Helm Chart 安装,如果您需要在 pod 重启后保留动态插件缓存,您必须创建一个持久性卷声明(PVC)并配置 Helm chart 来使用它。
流程
创建持久性卷定义。例如:
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: dynamic-plugins-root spec: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi注意本例使用
ReadWriteOnce作为访问模式,这可防止多个副本在不同节点间共享 PVC。要在不同节点上运行多个副本,具体取决于您的存储驱动程序,您必须使用一个访问模式,如
ReadWriteMany。要将此 PVC 应用到集群,请运行以下命令:
oc apply -f pvc.yaml将 Helm Chart 配置为使用 PVC。例如:
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: {}注意当您将 Helm Chart 配置为使用 PVC 时,还必须包括默认 Helm Chart 中定义的
extraVolumes。