Rancher 中的 Helm Chart

在本节中,你将学习如何在 Rancher 中管理 Helm Chart 仓库和应用。你可以在 Apps 中管理 Helm Chart 仓库。它使用类似目录的系统从仓库中导入 Chart 包,然后使用这些 Chart 来部署自定义 Helm 应用或 Rancher 工具(例如监控和 Istio)。Rancher 工具以预加载仓库的方式提供,并能部署为独立的 Helm Chart 。其他仓库只会添加到当前集群。

版本控制方案

Rancher 功能 Chart 版本控制方案以 Chart 的主要版本和上游 Chart 的 +up 注释(如果适用)为中心。

主要版本:Chart 的主要版本与 Rancher 次要版本相关联。当你升级到新的 Rancher 次要版本时,你应该确保你的所有 Apps Chart 也升级到 Chart 的正确发行版本。

功能 Chart

Name支持的最低版本支持的最高版本
external-ip-webhook100.0.0+up1.0.0100.0.1+up1.0.1
harvester-cloud-provider100.0.2+up0.1.12100.0.2+up0.1.12
harvester-csi-driver100.0.2+up0.1.11100.0.2+up0.1.11
neuvector100.0.0+up2.2.0100.0.0+up2.2.0
rancher-alerting-drivers100.0.0100.0.2
rancher-backup2.0.12.1.2
rancher-cis-benchmark2.0.12.0.4
rancher-gatekeeper100.0.0+up3.6.0100.1.0+up3.7.1
rancher-istio100.0.0+up1.10.4100.3.0+up1.13.3
rancher-logging100.0.0+up3.12.0100.1.2+up3.17.4
rancher-longhorn100.0.0+up1.1.2100.1.2+up1.2.4
rancher-monitoring100.0.0+up16.6.0100.1.2+up19.0.3
rancher-sriov (experimental)100.0.0+up0.1.0100.0.3+up0.1.0
rancher-vsphere-cpi100.3.0+up1.2.1100.3.0+up1.2.1
rancher-vsphere-csi100.3.0+up2.5.1-rancher1100.3.0+up2.5.1-rancher1
rancher-wins-upgrader0.0.100100.0.1+up0.0.1

基于上游的 Chart:对于基于上游的 Chart ,+up 注释用于表示 Rancher Chart 正在跟踪的上游版本。在升级时,请检查上游版本与 Rancher 的兼容性。

  • 例如,用于 Monitoring 的 100.x.x+up16.6.0 跟踪上游 kube-prometheus-stack 16.6.0 并添加了一些 Rancher 补丁。

  • 在升级时,请确保你没有降级你正在使用的 Chart 版本。例如,如果你在 Rancher 2.5 中使用 Monitoring > 16.6.0 版本,则不应升级到 100.x.x+up16.6.0。相反,你应该在下一个发行版中升级到适当的版本。

预发布版本

预发布版本遵循 Semantic Versioning 2.0.0 定义的规范。例如,版本为 0.1.3-dev.12ab4f 的 Helm chart 为预发布版本。默认情况下不显示预发布版本,必须进行配置才能显示。

要显示预发布版本:

  1. 单击右上角的用户头像。
  2. 单击偏好设置
  3. Helm Chart 下,选择包括预发布版本

Charts

从左上角的菜单中选择 Apps,然后你会转到 Chart 页面。

Chart 页面包含所有 Rancher、Partner 和自定义 Chart 。

  • Rancher 工具(例如 Logging 或 Monitoring)包含在 Rancher 标签下
  • Partner Chart 位于 Partner 标签下
  • 自定义 Chart 将显示在仓库的名称下

所有这三种类型都以相同的方式部署和管理。

Rancher 中的 Helm Chart - 图1备注

由 Cluster Manager (旧版 Rancher UI 中的全局视图)管理的应用应继续仅由 Cluster Manager 管理,而在新 UI 中使用 Apps 管理的应用则仅能由 Apps 管理。

仓库

从左侧边栏中选择 仓库

这些项目代表 helm 仓库,可以是具有 index.yaml 的传统 helm 端点,也可以是被克隆并指向特定分支的 git 仓库。要使用自定义 Chart ,只需在此处添加你的仓库即可,它们将在仓库名称下的 Chart 选项卡中可用。

为 Helm Chart 仓库添加私有 CA:

  • 基于 HTTP 的 Chart 仓库:你必须将 DER 格式的 CA 证书的 base64 编码副本添加到 Chart 仓库的 spec.caBundle 字段,例如 openssl x509 -outform der -in ca.pem | base64 -w0。点击 Chart 仓库的编辑 YAML 并进行设置,如下所示:

    1. [...]
    2. spec:
    3. caBundle:
    4. MIIFXzCCA0egAwIBAgIUWNy8WrvSkgNzV0zdWRP79j9cVcEwDQYJKoZIhvcNAQELBQAwPzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRQwEgYDVQQKDAtNeU9yZywgSW5jLjENMAsGA1UEAwwEcm9vdDAeFw0yMTEyMTQwODMyMTdaFw0yNDEwMDMwODMyMT
    5. ...
    6. nDxZ/tNXt/WPJr/PgEB3hQdInDWYMg7vGO0Oz00G5kWg0sJ0ZTSoA10ZwdjIdGEeKlj1NlPyAqpQ+uDnmx6DW+zqfYtLnc/g6GuLLVPamraqN+gyU8CHwAWPNjZonFN9Vpg0PIk1I2zuOc4EHifoTAXSpnjfzfyAxCaZsnTptimlPFJJqAMj+FfDArGmr4=
    7. [...]
  • 基于 Git 的 Chart 仓库:你必须将 DER 格式的 CA 证书的 base64 编码副本添加到 Chart 仓库的 spec.caBundle 字段,例如 openssl x509 -outform der -in ca.pem | base64 -w0。点击 Chart 仓库的编辑 YAML 并进行设置,如下所示:

    1. [...]
    2. spec:
    3. caBundle:
    4. MIIFXzCCA0egAwIBAgIUWNy8WrvSkgNzV0zdWRP79j9cVcEwDQYJKoZIhvcNAQELBQAwPzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRQwEgYDVQQKDAtNeU9yZywgSW5jLjENMAsGA1UEAwwEcm9vdDAeFw0yMTEyMTQwODMyMTdaFw0yNDEwMDMwODMyMT
    5. ...
    6. nDxZ/tNXt/WPJr/PgEB3hQdInDWYMg7vGO0Oz00G5kWg0sJ0ZTSoA10ZwdjIdGEeKlj1NlPyAqpQ+uDnmx6DW+zqfYtLnc/g6GuLLVPamraqN+gyU8CHwAWPNjZonFN9Vpg0PIk1I2zuOc4EHifoTAXSpnjfzfyAxCaZsnTptimlPFJJqAMj+FfDArGmr4=
    7. [...]

Rancher 中的 Helm Chart - 图2备注

带有身份验证的 Helm Chart 仓库

Repo.Spec 包含一个 disableSameOriginCheck 值,该值允许用户绕过相同源的检查,将仓库身份认证信息作为基本 Auth 标头与所有 API 调用一起发送。不建议采用这种做法,但这可以用作非标准 Helm Chart 仓库(例如重定向到不同源 URL 的仓库)的临时解决方案。

要将此功能用于现有 Helm Chart 仓库,请单击 ⋮ > 编辑 YAML。在 YAML 文件的 spec 部分,添加 disableSameOriginCheck 并将其设置为 true

  1. [...]
  2. spec:
  3. disableSameOriginCheck: true
  4. [...]

Helm 兼容性

仅支持 Helm 3 兼容 Chart 。

部署和升级

Chart 选项卡中选择要安装的 Chart 。Rancher 和 Partner Chart 可能通过自定义页面或 questions.yaml 文件进行额外的配置,但所有 Chart 安装都可以修改 values.yaml 和其他基本设置。单击安装后,将部署一个 Helm 操作作业,并显示该作业的控制台。

要查看所有最近的更改,请转到 最近的操作 选项卡。你可以查看已进行的调用、条件、事件和日志。

安装 Chart 后,你可以在 已安装的应用 选项卡中找到该 Chart。在本节中,你可以升级或删除安装,并查看更多详细信息。选择升级时,呈现的形式和数值与安装相同。

大多数 Rancher 工具在 Apps 下方的工具栏中都有额外的页面,以帮助你管理和使用这些功能。这些页面包括指向仪表板的链接、可轻松添加自定义资源的表单以及其他信息。

Rancher 中的 Helm Chart - 图3警告

如果你使用 在升级前自定义 Helm 选项 来升级 Chart,如果你的 Chart 有不可更改的字段,使用 --force 选项可能会导致错误。这是因为 Kubernetes 中的某些对象一旦创建就无法更改。要避免该错误,你可以:

  • 使用默认升级选项(即不要使用 --force 选项)
  • 卸载现有 Chart 并安装升级后的 Chart
  • 在执行 --force 升级之前删除集群中具有不可更改字段的资源

旧版应用

Apps > Installed Apps 页面中,旧版应用的升级按钮已被移除。

如果你安装了旧版应用并想要升级它:

  • 必须开启旧版功能开关(如果在升级前有旧版应用导致该开关未自动开启)
  • 你可以从 cluster explorer 升级应用,从左侧导航部分选择旧版 > 项目 > 应用
  • 对于多集群应用,你可以转到 ≡ > 多集群应用并在那里升级应用

限制

Rancher CLI 不能用于安装仪表板应用程序或 Rancher 功能 Chart