Helm Charts 和 Apps

在本节中,你将学习如何在 Rancher 中管理 Helm Chart 仓库和应用。

Helm Charts 在 Rancher 中的工作原理

在 Rancher 中 Helm chart 仓库是使用 Apps 进行管理的。

Rancher 使用应用商店系统导入一系列的 charts 包到仓库里,然后使用这些 charts 来部署自定义的 Kubernetes 应用程序或 Rancher 的工具,如监控(Monitoring)或 Istio。Rancher 工具预先集成进了仓库,并通过独立的 Helm chart 进行部署。如果你有自己的额外仓库只需要添加到当前的集群中就可以正常部署。

Catalogs, Apps, Rancher UI

xref:[在 Rancher v2.4 及更早版本中], 存储部署的应用程序的仓库被称为 "catalogs"。这些仓库是通过 UI 的 Catalogs 进行管理的。

Rancher v2.5 用新的 Apps & Marketplace 功能替代了之前的 应用商店

从 Rancher v2.6.5 开始, Apps & Marketplace 功能在 UI 中被命名为 Apps

Versioning Scheme

Rancher chart 的版本设计方案主要围绕 charts 的主要版本以及与上游 charts 相关的 +up 注释进行设计。

主要版本: charts 的主要版本与 Rancher 的特定次要版本相关联。当你升级到新的 Rancher 次要版本时,你应该确保所有的功能 charts 也被升级对应的主版本。

基于上游的 Charts: 在升级时,确保上游 chart 的版本与你的 Rancher 版本兼容。chart 的 +up 注释指示 Rancher chart 正在跟踪的上游版本。例如,100.x.x+up16.6.0 的监控(Monitoring)跟踪上游的 kube-prometheus-stack 16.6.0 并附带一些额外的 Rancher 补丁。

在升级 Rancher 版本时,不要降级你正在使用的 chart 版本。例如,如果你在 Rancher v2.5 中使用的监控版本比 16.6.0 还要高,你不应该升级到 100.x.x+up16.6.0,而是应该在下一个发布中升级到适当的版本。

预发布版本

预发布版本遵循语义化版本 2.0.0规范。 例如,版本为 0.1.3-dev.12ab4f 的 Helm chart 被认为是一个预发布版本。预发布版本默认不显示,必须进行配置以显示。

如何显示预发布版本:

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

  2. 点击 Preferences.

  3. Helm Charts 下, 选择 Include Prerelease Versions.

版本控制方案

Name 支持的最低版本 支持的最高版本

external-ip-webhook

100.0.0+up1.0.0

100.0.1+up1.0.1

harvester-cloud-provider

100.0.2+up0.1.12

100.0.2+up0.1.12

harvester-csi-driver

100.0.2+up0.1.11

100.0.2+up0.1.11

neuvector

100.0.0+up2.2.0

100.0.0+up2.2.0

rancher-alerting-drivers

100.0.0

100.0.2

rancher-backup

2.0.1

2.1.2

rancher-cis-benchmark

2.0.1

2.0.4

rancher-gatekeeper

100.0.0+up3.6.0

100.1.0+up3.7.1

rancher-istio

100.0.0+up1.10.4

100.3.0+up1.13.3

rancher-logging

100.0.0+up3.12.0

100.1.2+up3.17.4

rancher-longhorn

100.0.0+up1.1.2

100.1.2+up1.2.4

rancher-monitoring

100.0.0+up16.6.0

100.1.2+up19.0.3

rancher-sriov (experimental)

100.0.0+up0.1.0

100.0.3+up0.1.0

rancher-vsphere-cpi

100.3.0+up1.2.1

100.3.0+up1.2.1

rancher-vsphere-csi

100.3.0+up2.5.1-rancher1

100.3.0+up2.5.1-rancher1

rancher-wins-upgrader

0.0.100

100.0.1+up0.0.1

访问 Charts

Charts 页面包含所有 Rancher、Rancher 合作伙伴和自定义 Chart。你可以通过选择左侧的下拉菜单来筛选 Chart:

  • Rancher 工具(例如 Logging 或 Monitoring)包含在 Rancher 标签下

  • Partner Chart 位于 Partner 标签下

  • 自定义 Chart 将显示在仓库的名称下

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

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

访问 Charts 页面:

  1. 点击 ☰ > Cluster Management

  2. 找到你想要访问 Charts 的集群名称。点击集群行末尾的 Explore

  3. Cluster Dashboard 的左侧导航菜单中, 点击 Apps  Charts

管理仓库

Repositories 页面列出了你的 Helm 仓库。 这包括传统的具有 index.yaml 的 Helm 端点,以及克隆并指向特定分支的 Git 仓库。要使用自定义 Charts,在这里可以添加你的仓库。添加仓库后,你可以在 Charts 页面中访问自定义 Charts,这些 Charts 将列在仓库的名称下。

访问 Repositories 页面:

  1. 点击 ☰ > Cluster Management.

  2. 找到你想要访问 Charts 的集群名称。点击集群行末尾的 Explore

  3. Cluster Dashboard 的左侧导航菜单中,点击 Apps  Repositories

添加自定义 Git 仓库

要添加一个包含你的 Helm Charts 或集群模板定义的自定义 Git 仓库:

  1. 点击 ☰ > Cluster Management

  2. 找到你想要访问 Charts 的集群名称。点击集群行末尾的 Explore

  3. Cluster Dashboard 的左侧导航菜单中,点击 Apps  Repositories

  4. 点击 Create

  5. 选择 Git repository containing Helm chart…​

  6. 你必须输入名称和 Git 仓库的 URL。其他配置项包括描述,都是可选的。如果你不想设置默认的分支,可以输入你想要使用的分支名称。通常,默认分支名为 mainmaster

  7. 点击 Create 添加。

在 Rancher 中添加 Charts 仓库后,它将立即生效。

添加自定义 Helm Chart 仓库

你可以将自己的 Helm chart 仓库添加到 Rancher。为了能正确添加 http 的 Helm Chart 仓库,你需要提供 chart 的服务器并能够响应 GET 请求并提供 YAML 文件和 tar 包。

有关 Helm chart 仓库的更多信息,请参阅 官方 Helm 文档

要将自定义 Helm chart 仓库添加到 Rancher:

  1. 点击 ☰ > Cluster Management

  2. 找到你想要访问 Charts 的集群名称。点击集群行末尾的 Explore

  3. Cluster Dashboard 的左侧导航菜单中,点击 Apps  Repositories

  4. 点击 Create

  5. 选择 http(s) URL to an index generated by Helm.

  6. 输入仓库名称和 chart 的 index URL 地址。

  7. 点击 Create 添加。

添加私有 Git/Helm Chart 仓库

你可以使用 SSH 密钥凭据或 HTTP 基础认证秘密(如用户名和密码)添加私有 Git 或 Helm chart 仓库。

向仓库添加私有 CA

向 Helm chart 仓库添加私有 CA,你必须将 DER 格式的 CA 证书的 base64 编码副本添加到 Chart 仓库的 spec.caBundle 字段,例如 openssl x509 -outform der -in ca.pem | base64 -w0。无论是基于 Git 还是 HTTP 的仓库,操作步骤都是相同的

  1. 点击 。在左侧导航菜单的 Explore Cluster, 选择一个集群。

  2. Cluster Dashboard 的左侧导航菜单中,点击 Apps  Repositories

  3. 找到你想要向其添加私有 CA 证书的 Git 或 HTTP 的仓库。点击 ⋮ > Edit YAML

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

    [...]
    spec:
      caBundle:
    MIIFXzCCA0egAwIBAgIUWNy8WrvSkgNzV0zdWRP79j9cVcEwDQYJKoZIhvcNAQELBQAwPzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRQwEgYDVQQKDAtNeU9yZywgSW5jLjENMAsGA1UEAwwEcm9vdDAeFw0yMTEyMTQwODMyMTdaFw0yNDEwMDMwODMyMT
    ...
    nDxZ/tNXt/WPJr/PgEB3hQdInDWYMg7vGO0Oz00G5kWg0sJ0ZTSoA10ZwdjIdGEeKlj1NlPyAqpQ+uDnmx6DW+zqfYtLnc/g6GuLLVPamraqN+gyU8CHwAWPNjZonFN9Vpg0PIk1I2zuOc4EHifoTAXSpnjfzfyAxCaZsnTptimlPFJJqAMj+FfDArGmr4=
    [...]
带有认证的 Helm chart 仓库

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

要将此功能用于现有 Helm Chart 仓库,请按照前面的步骤编辑 YAML。在 YAML 文件的 spec 部分,添加 disableSameOriginCheck 并将其设置为 true

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

Helm 兼容性

仅支持 Helm 3 兼容 Chart 。

部署和升级 Chart

安装和部署 chart:

  1. 点击 ☰ > Cluster Management

  2. 找到你想要访问 Charts 的集群名称。点击集群行末尾的 Explore

  3. Cluster Dashboard 的左侧导航菜单中,点击 Apps  Charts

  4. 选择一个 chart 点击 Install

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

要查看所有最近的更改,点击左侧导航栏菜单中的 APPs  Recent Operations。你可以查看已进行的调用、条件、事件和日志

安装 Chart 后,点击左侧导航栏菜单中的 Apps  Installed Apps。在本节中,你可以升级或删除安装,并查看更多详细信息。选择升级时,呈现的形式和数值与安装相同。

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

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

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

  • 卸载现有 Chart 并安装升级后的 Chart

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

旧版应用

Apps  Installed Apps 页面上,旧版应用没有升级按钮。

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

  1. 如果尚未启用,启用旧版功能

  2. 点击 ☰ > Cluster Management

  3. 找到你想要访问 Charts 的集群名称。点击集群行末尾的 Explore

  4. 点击 Legacy  Project  Apps.

如果在 Legacy  Project 下看不到 Apps ,请点击顶部导航栏的 project/namespace 搜索栏,并从下拉菜单中选择相关项目。

要升级旧版多集群应用:

  1. 点击 .

  2. Legacy Apps 下点击 Multi-cluster Apps.

限制

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