本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

Helm 图表和 APP

在本节中,您将学习如何在 Rancher 中管理 Helm 图表储存库和 APP。

Helm 图表在 Rancher 中的工作原理

Rancher 中的 Helm 图表储存库通过 APP 进行管理。

Rancher 使用类似目录的系统从储存库中导入图表包,然后使用这些图表来部署自定义 Kubernetes 应用程序或 Rancher 的工具,如监控或 Istio。Rancher 工具作为预加载的储存库提供,作为独立的 Helm 图表进行部署。任何额外的储存库仅添加到当前集群中。

目录、APP 和 Rancher 用户界面

在 xref:[Rancher v2.4 及更早版本] 中,准备部署的应用程序储存库被称为 "目录"。这些储存库通过用户界面的 目录 部分进行管理。

Rancher v2.5 用新的 APP 与市场 功能替代了以前的目录系统。

自 Rancher v2.6.5 起,用户界面中的 APP 与市场 功能被称为 APP

版本控制方案

Rancher 功能图表的版本控制方案主要关注图表的主版本以及(如适用)上游图表的 +up 注释。

*主要版本:*功能图表的主要版本与 Rancher 的特定次要版本相关联。当您升级到新的 Rancher 次要版本时,您应确保所有功能图表也升级到该图表的正确发布线。

*基于上游的图表:*升级时,请确保上游图表版本与您的 Rancher 版本兼容。图表的 +up 注释指示了 Rancher 图表所跟踪的上游版本。例如,100.x.x+up16.6.0 用于监控,跟踪上游的 kube-prometheus-stack 16.6.0,并附带一些额外的 Rancher 补丁。

在升级 Rancher 版本时,请勿降级您正在使用的图表版本。例如,如果您使用的监控版本晚于Rancher v2.5中的`16.6.0`,则不应升级到`100.x.x+up16.6.0`。相反,您应该升级到下一个版本中的适当版本。

预发布版本

预发布遵循由 规范定义的 语义版本控制2.0.0。例如,版本为`0.1.3-dev.12ab4f`的Helm图表被视为预发布。预发布版本默认不显示,必须进行配置以显示。

要显示预发布版本:

  1. 单击右上角的用户头像。

  2. 单击*首选项*。

  3. Helm 图表 下,选择 包括预发布版本

访问图表

*图表*页面包含所有Rancher、合作伙伴和自定义图表。您可以通过选择最左侧的下拉菜单来过滤图表:

  • Rancher工具,如日志记录或监控,列在*Rancher*标签下。

  • 合作伙伴图表在*合作伙伴*标签下。

  • 自定义图表按其各自的储存库名称列出。

这三种类型的图表以相同的方式部署和管理。

由集群管理器管理的应用程序(旧版 Rancher UI 中的全局视图)继续仅由集群管理器管理,而在新 UI 中使用 APP 管理的应用程序必须仅由 APP 管理。

要访问*图表*页面:

  1. 单击 ☰ > 集群管理

  2. 找到您想要访问其图表的集群名称。点击集群行末尾的*探索*。

  3. 集群仪表板 的左侧导航菜单中,点击 APP  图表

管理储存库

储存库 页面列出了您的 Helm 储存库。这些包括具有 index.yaml 的传统 Helm 端点,以及被克隆并指向特定分支的 Git 储存库。要使用自定义图表,请在此处添加您的储存库。添加储存库后,您可以在*图表*页面中访问自定义图表,按储存库名称列出。

要访问*储存库*页面:

  1. 单击 ☰ > 集群管理

  2. 找到您想要访问其储存库的集群名称。点击集群行末尾的*探索*。

  3. 集群仪表板 的左侧导航菜单中,点击 APP  储存库

添加自定义Git储存库

要添加包含您的Helm图表或集群模板定义的自定义Git储存库:

  1. 单击 ☰ > 集群管理

  2. 找到您想要访问其储存库的集群名称。点击集群行末尾的*探索*。

  3. 在*集群仪表板*的左侧导航菜单中,点击应用程序  储存库

  4. 单击*创建*。

  5. 选择目标,包含 Helm 图表的 Git 储存库…​

  6. 您必须输入名称和 Git 储存库 URL。其他字段,包括描述,都是可选的。如果您不想从储存库所有者设置为默认的任何分支拉取,请输入替代分支名称。通常,默认分支的名称为`main`或`master`。

  7. 点击 创建 来添加储存库。

在您将图表储存库添加到 Rancher 后,它会立即可用。

添加自定义 Helm 图表储存库

您可以添加自己的 Helm 图表储存库,以便为 Rancher 提供图表包。您可以使用任何 HTTP 服务器,只要该服务器能够响应 GET 请求并提供 YAML 文件和 Tar 包。

有关 Helm 图表储存库的更多信息,请参见 官方 Helm 文档

要将自定义 Helm 图表储存库添加到 Rancher:

  1. 单击 ☰ > 集群管理

  2. 找到您想要访问其储存库的集群名称。点击集群行末尾的*探索*。

  3. 集群仪表板 的左侧导航菜单中,点击 APP  储存库

  4. 单击*创建*。

  5. 选择目标,http(s) URL 到由 Helm 生成的索引

  6. 输入储存库名称和储存库的索引 URL 地址。

  7. 点击 创建 来添加储存库。

添加私有 Git/Helm 图表储存库

您可以使用 SSH 密钥凭据或 HTTP 基本身份验证密钥(如用户名和密码)添加私有 Git 或 Helm 图表储存库。

向储存库添加私有 CA

要向 Helm 图表储存库添加私有 CA,您必须将 CA 证书的 base64 编码副本(DER 格式)添加到该储存库的 spec.caBundle field 中,例如 openssl x509 -outform der -in ca.pem | base64 -w0。对于基于 Git 和基于 HTTP 的储存库,说明是相同的:

  1. 单击*☰。在左侧导航菜单的 *探索集群 下,选择一个集群。

  2. 集群仪表板 的左侧导航菜单中,点击 APP  储存库

  3. 找到与您要添加私有 CA 的基于 Git 或基于 HTTP 的储存库相关的行,然后点击 ⋮ > 编辑 YAML

  4. 设置 caBundle 值,如以下示例所示:

    [...]
    spec:
      caBundle:
    MIIFXzCCA0egAwIBAgIUWNy8WrvSkgNzV0zdWRP79j9cVcEwDQYJKoZIhvcNAQELBQAwPzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRQwEgYDVQQKDAtNeU9yZywgSW5jLjENMAsGA1UEAwwEcm9vdDAeFw0yMTEyMTQwODMyMTdaFw0yNDEwMDMwODMyMT
    ...
    nDxZ/tNXt/WPJr/PgEB3hQdInDWYMg7vGO0Oz00G5kWg0sJ0ZTSoA10ZwdjIdGEeKlj1NlPyAqpQ+uDnmx6DW+zqfYtLnc/g6GuLLVPamraqN+gyU8CHwAWPNjZonFN9Vpg0PIk1I2zuOc4EHifoTAXSpnjfzfyAxCaZsnTptimlPFJJqAMj+FfDArGmr4=
    [...]
带有身份验证的 Helm 图表储存库

Repo.Spec 包含一个 disableSameOriginCheck 值。此值允许您绕过同源检查,将储存库身份验证信息作为基本身份验证头与所有 API 调用一起发送。这并不推荐,但可以作为非标准 Helm 图表储存库的临时解决方案,例如那些重定向到不同源 URL 的储存库。

要对现有的 Helm 图表储存库使用此功能,请按照之前的步骤编辑 YAML。在 YAML 文件的 spec 部分,添加 disableSameOriginCheck 并将其设置为 true

[...]
spec:
  disableSameOriginCheck: true
[...]

添加自定义 OCI 图表储存库

Helm v3 引入了将 Helm 图表以 开放容器倡议 (OCI) 工件的形式存储在容器注册表中的功能。使用 Rancher v2.9.0,您可以添加 基于 OCI 的 Helm 图表储存库,与基于 HTTP 和 Git 的储存库并存。这意味着您可以部署作为 OCI 工件存储的 APP。有关更多信息,请参见 使用 OCI Helm 图表储存库

Helm 兼容性

仅支持 Helm 3 兼容的图表。

刷新图表储存库

刷新 按钮可用于同步 储存库 页面上所选 Helm 图表储存库的更改。

要刷新图表储存库:

  1. 单击 ☰ > 集群管理

  2. 找到您想要访问其储存库的集群名称。点击集群行末尾的*探索*。

  3. 在*集群仪表板*的左侧导航菜单中,点击应用  储存库

  4. 使用 状态 字段旁边的切换按钮选择所有储存库,或切换指定的图表储存库以同步更改。

  5. 单击 刷新

  6. 每个图表储存库行末尾的 也包括一个 刷新 选项,可以单击以刷新相应的储存库。

非隔离 Rancher 安装在刷新时将立即反映任何图表储存库的更改,您将看到更新的储存库的 状态 字段从 In Progress 移动到 Active,一旦操作完成。

在 Rancher 配置为使用打包的 Helm 系统图表副本的隔离安装中 (useBundledSystemChart=true),将仅引用捆绑的 系统图表 储存库,无法刷新或同步。

刷新间隔

Rancher v2.10.0 在 ClusterRepo CRD 中添加了 refreshInterval 字段。默认值为 3600 秒,这意味着 Rancher 每 3600 秒同步一次每个 Helm 储存库。

要修改图表储存库的刷新间隔:

  1. 单击 ☰ > 集群管理

  2. 找到您想要访问其储存库的集群名称。点击集群行末尾的探索

  3. 在左侧导航菜单的 集群仪表板 中,点击 应用 > 储存库

  4. 找到您想要修改的储存库,然后点击 ⋮ > 编辑 YAML

  5. refreshInterval 字段在 Spec 下设置为所需的秒数值。

  6. 单击 保存

启用/禁用 Helm 图表储存库

Rancher v2.10.0 增加了启用和禁用 Helm 储存库的功能。Helm 储存库默认是启用的。

要禁用图表储存库:

  1. 单击 ☰ > 集群管理

  2. 找到您想要访问其储存库的集群名称。点击集群行末尾的探索

  3. 在左侧导航菜单的 集群仪表板 中,点击 应用 > 储存库

  4. 找到您想要禁用的储存库,然后点击 ⋮ > 编辑 YAML

  5. Enabled 字段在 Spec 下设置为 false

  6. 单击 保存

  7. 当您禁用一个储存库时,更新将被禁用,新的更改将不会应用到集群储存库(clusterRepo)。

要启用图表储存库:

  1. 单击 ☰ > 集群管理

  2. 找到您想要访问其储存库的集群名称。点击集群行末尾的探索

  3. 在左侧导航菜单的 集群仪表板 中,点击 应用 > 储存库

  4. 找到您想要禁用的储存库,然后点击 ⋮ > 编辑 YAML

  5. Enabled 字段在 Spec 下设置为 true

  6. 单击 保存

部署和升级图表

要安装和部署一个图表:

  1. 单击 ☰ > 集群管理

  2. 找到您想要访问其储存库的集群名称。点击集群行末尾的*探索*。

  3. 在*集群仪表板*的左侧导航菜单中,点击应用  图表

  4. 选择一个图表,然后点击 安装

Rancher 和合作伙伴图表可能通过自定义页面或 questions.yaml 文件提供额外的配置。然而,所有图表安装都可以修改 values.yaml 和其他基本设置。在您点击 安装 后,将部署一个 Helm 操作作业,并显示该作业的控制台。

要查看所有最近的更改,请在左侧导航菜单中点击 应用  最近操作。在这里,您可以查看调用、条件、事件和日志。

安装图表后,您可以通过点击 应用  已安装应用 在左侧导航菜单中查看它。您可以升级或删除安装,并查看进一步的详细信息。升级使用与您在初始安装期间看到的相同的表单和值。

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

如果您使用 在升级前自定义 Helm 选项 升级图表,并且您的图表包含不可变字段,使用 --force 选项可能会导致错误。这是因为 Kubernetes 中的一些对象在创建后无法更改。要防止此错误:

  • 使用默认升级选项(即不要使用 --force)。

  • 卸载现有图表并安装升级后的图表。

  • 在执行强制升级之前,从集群中删除具有不可变字段的资源。

遗留应用

应用  已安装应用 页面上,遗留应用的升级按钮不可用。

如果您想升级已安装的遗留应用,必须启用 遗留功能标志。如果您在升级 Rancher 之前已经运行了遗留应用,则此标志会自动启用。

  1. 如果尚未启用,请启用 遗留功能标志

  2. 单击 ☰ > 集群管理

  3. 找到您想要访问其应用的集群名称。点击集群行末尾的*探索*。

  4. 点击 遗留  项目  应用

如果您在 遗留  项目 下未看到 应用 列出,请点击顶部导航中的项目/命名空间搜索栏,并从下拉菜单中选择相关项目。

要升级遗留的多集群应用:

  1. 单击*☰*。

  2. 遗留应用 下,点击 多集群应用

图表特定信息

sriov 图表弃用和迁移

来自 Rancher Charts 储存库的 sriov(SR-IOV 网络操作员)图表已被弃用,并将在 Rancher v2.10 中移除。请迁移到来自 SUSE Edge 储存库的 sriov-network-operator 图表( https://github.com/suse-edge/charts)。

要迁移,请按照以下步骤操作:

  1. 通过按照 添加自定义 Git 储存库 中的步骤,将 SUSE Edge 储存库添加到您的集群。

  2. Git Repo URL 字段中,输入 https://github.com/suse-edge/charts

  3. 单击*创建*。

  4. 在*集群仪表板*的左侧导航菜单中,点击应用  图表

  5. 找到 sriov-network-operator 图表并点击它。

  6. 单击 安装

  7. 名称 字段中,输入您为现有 sriov 图表安装使用的相同名称。

  8. 单击*下一步*。

  9. 单击 安装

结果:*Rancher 会重定向到 *已安装应用 页面,您的现有安装进入 更新中 状态。当它进入 已部署 状态时,迁移完成。

局限性

  • 仪表板应用或 Rancher 功能图表无法使用 Rancher CLI 安装。

  • 在确定 可升级 列在 应用  已安装应用 页面上显示的最新版本时,Rancher 不仅考虑来自安装时所用储存库的 Helm 图表版本,还考虑集群中所有储存库的 Helm 图表版本。

    例如,假设您从储存库 A 安装了 cert-manager v1.13.0,而 v1.14.0 现在是可用的最新版本。在这种情况下,您期望 可升级 显示 v1.14.0。然而,如果集群还可以访问储存库 B,其中有 cert-manager 的 v1.15.0 可用,那么 可升级 将显示 v1.15.0,即使原始安装使用的是储存库 A。