---
title: Helm Charts 和 Apps
---

<head>
  <link rel="canonical" href="https://ranchermanager.docs.rancher.com/zh/how-to-guides/new-user-guides/helm-charts-in-rancher"/>
</head>

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

## Helm Charts 在 Rancher 中的工作原理

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

### Catalogs, Apps, Rancher UI

[在 Rancher v2.4 及更早版本中](https://github.com/rancher/rancher-docs/tree/main/archived_docs/en/version-2.0-2.4/how-to-guides/new-user-guides/helm-charts-in-rancher/helm-charts-in-rancher.md), 存储部署的应用程序的仓库被称为 "catalogs"。这些仓库是通过 UI 的 **Catalogs** 进行管理的。

Helm chart 仓库现在使用 **Apps & Marketplace**（Rancher v2.6.5之前）或 **Apps**（Rancher v2.6.5及以后版本）进行管理。

### Rancher v2.6 中的版本变更

从 Rancher v2.6.0 开始，为 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`，而是应该在下一个发布中升级到适当的版本。

:::note

下表中提及的主要版本之下的任何版本均仅适用于 2.5 及以下版本。例如，在 2.6.x 及以上版本中，建议您不要使用 <100.x.x 版本的监控。

:::

### 版本控制方案

| **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

<Tabs groupId="rancher-version">
<TabItem value="Rancher v2.6.5+">

从左上角菜单中选择 **Apps** 然后您将进入 **Charts** 页面。

</TabItem>
<TabItem value="Rancher before v2.6.5">

从左上角菜单中选择 **Apps & Marketplace** 然后您将进入 **Charts** 页面。

</TabItem>
</Tabs>

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

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

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

:::note

在传统的 Rancher UI 中由集群管理器管理的应用程序（全局视图）应继续只由集群管理器管理，在新 UI 中使用 **Apps & Marketplace** （Rancher v2.6.5 之前）或  **Apps**（Rancher v2.6.5+）管理的应用程序必须仅由 **Apps & Marketplace** 或 **Apps** 管理。

:::

### 管理仓库

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

访问 **Repositories**，从左侧导航菜单中选择 **Repositories** 。

### 添加自定义 Git 仓库

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

1. 从左侧导航菜单中选择 **Repositories**。
2. 点击 **Create**。
3. 选择 **Git repository containing Helm chart...**。
4. 您必须输入一个名称和一个 Git仓 库 URL。 其他字段，包括描述，都是可选的。如果您不想从仓库所有者设置为默认的分支中拉取，请输入一个备用分支名称。通常，默认分支命名为 `main` 或 `master`。
5. 点击 **Create** 添加仓库。

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

### 添加自定义 Helm Chart 仓库

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

有关 Helm chart 仓库的更多信息，请参阅 [官方 Helm 文档](https://helm.sh/docs/topics/chart_repository/)。

1. 从左侧导航菜单中选择 **Repositories** 。
1. 点击 **Create**。
1. 选择 **http(s) URL to an index generated by Helm**。
1. 输入一个仓库名称和 chart repository 的 index URL 地址。

### 添加私有 Git/Helm Chart 仓库

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

### 向仓库添加私有 CA

将私有 CA 添加到 Helm chart 仓库：

1. 从左侧导航菜单中选择 **Repositories**。
2. 找到你想要向其添加私有 CA 证书的 Git 或 HTTP 的仓库。点击 **⋮ > Edit YAML**。
3. 设置 `caBundle` 值，如以下示例：

  ```yaml
    [...]
    spec:
      caBundle:
    MIIFXzCCA0egAwIBAgIUWNy8WrvSkgNzV0zdWRP79j9cVcEwDQYJKoZIhvcNAQELBQAwPzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRQwEgYDVQQKDAtNeU9yZywgSW5jLjENMAsGA1UEAwwEcm9vdDAeFw0yMTEyMTQwODMyMTdaFw0yNDEwMDMwODMyMT
    ...
    nDxZ/tNXt/WPJr/PgEB3hQdInDWYMg7vGO0Oz00G5kWg0sJ0ZTSoA10ZwdjIdGEeKlj1NlPyAqpQ+uDnmx6DW+zqfYtLnc/g6GuLLVPamraqN+gyU8CHwAWPNjZonFN9Vpg0PIk1I2zuOc4EHifoTAXSpnjfzfyAxCaZsnTptimlPFJJqAMj+FfDArGmr4=
    [...]
  ```

:::note 带有认证的 Helm chart 仓库

从 Rancher v2.6.3 开始，Repo.Spec 中添加了一个新值 `disableSameOriginCheck` ，这允许用户绕过同源检查，在所有 API 调用中以 Basic Auth Header 的形式发送仓库身份验证信息。这并不推荐，但在非标准 Helm chart 仓库的情况下，例如具有重定向到不同源 URL 的仓库，可以作为临时解决方案使用。

要将此功能用于现有 Helm Chart，点击 **⋮ > Edit YAML**。在 YAML 文件的 `spec` 部分，添加 `disableSameOriginCheck` 并将其设置为 `true`：

```yaml
[...]
spec:
  disableSameOriginCheck: true
[...]
```

:::

### Helm 兼容性

仅支持 Helm 3 兼容 Chart 。

### 部署和升级 Chart

从 **Charts** 标签页中选择要安装的 chart。Rancher 和合作伙伴 chart 可能通过自定义页面或 questions.yaml 文件提供额外的配置，但所有chart 安装都可以修改 values.yaml 和其他基本设置。点击安装后，将部署一个 Helm 操作作业，并显示作业的控制台。

要查看所有最近的更改，请转到 **Recent Operations** 标签页。从那里，您可以查看所进行的调用、条件、事件和日志。

安装 chart 后，您可以在 **Installed Apps** 标签页中找到它。在本节中，你可以升级或删除安装，并查看更多详细信息。选择升级时，呈现的形式和数值与安装相同。

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

:::caution

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

* 使用默认升级选项（即不要使用 `--force` 选项）
* 卸载现有 Chart 并安装升级后的 Chart
* 在执行 `--force` 升级之前，从集群中删除具有不可变字段的资源。

:::

#### Rancher v2.6.3 的变更

在 **Apps > Installed Apps** 页面上，旧版应用没有升级按钮。

如果你想升级已安装的旧版应用， 必须启用[旧版功能](../../advanced-user-guides/enable-experimental-features/enable-experimental-features.md)。 如果你在升级 Rancher 之前已经运行了旧版应用，此标志会自动启用。

- 您可以从集群资源管理器中，从左侧导航栏的 **Legacy > Project > Apps** 部分升级该应用。
- 对于多集群应用程序，您可以跳转到 **≡ > Multi-cluster Apps** 并从那里升级应用程序。

### 限制

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