第 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。

流程

  1. 创建持久性卷定义并将其保存到文件中,如 pvc.yaml。例如:

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: dynamic-plugins-root
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 5Gi
    注意

    本例使用 ReadWriteOnce 作为访问模式,这可防止多个副本在不同节点间共享 PVC。

    要在不同节点上运行多个副本,具体取决于您的存储驱动程序,您必须使用一个访问模式,如 ReadWriteMany

  2. 要将此 PVC 应用到集群,请运行以下命令:

    oc apply -f pvc.yaml
  3. 将默认的 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 来使用它。

流程

  1. 创建持久性卷定义。例如:

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: dynamic-plugins-root
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 5Gi
    注意

    本例使用 ReadWriteOnce 作为访问模式,这可防止多个副本在不同节点间共享 PVC。

    要在不同节点上运行多个副本,具体取决于您的存储驱动程序,您必须使用一个访问模式,如 ReadWriteMany

  2. 要将此 PVC 应用到集群,请运行以下命令:

    oc apply -f pvc.yaml
  3. 将 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

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部