--- title: 概述 ---
## 架构图 下面是 Rancher Turtles 的关键组件及其与 Rancher 和 Rancher Cluster Agent 的关系的架构图,了解这些组件对于深入了解 Rancher 如何利用 CAPI operator 进行集群管理至关重要。  ## 安全 [SLSA](https://slsa.dev/spec/v1.0/about) 是一套由行业共识制定的可逐步采用的供应链安全指南。SLSA 制定的规范对软件生产者和消费者都很有用:生产者可以遵循 SLSA 的指导方针,使他们的软件供应链更加安全,消费者可以使用 SLSA 来决定是否信任软件包。 Rancher Turtles 满足 [SLSA Level 3](https://slsa.dev/spec/v1.0/levels#build-l3) 对适当的构建平台、一致的构建过程和来源分布的要求。更多信息请参阅 [Rancher Turtles 安全](https://turtles.docs.rancher.com/turtles/next/en/security/slsa.html)文档。 ## 先决条件 在 Rancher 环境中安装 Rancher Turtles 之前,你必须禁用 Rancher 的 `embedded-cluster-api` 功能。这还包括清理 Rancher 专用的 webhook,否则这些 webhook 将与 CAPI 的 webhook 冲突。 为了简化 Rancher 安装 Rancher Turtles 的设置,官方的 Rancher Turtles Helm chart 包含一个删除以下内容的 `pre-install` hook: - 禁用 Rancher 中的 `embedded-cluster-api` 功能。 - 删除不再需要的 `mutating-webhook-configuration` 和 `validating-webhook-configuration` webhook。 这些 webhook 也可以通过 Rancher UI 删除: 1. 点击左上角 **☰ > 集群管理**。 1. 选择你的 local 集群。 1. 在左侧导航菜单,选择 **More Resources** > **Admission**。 1. 在下拉菜单中,选择资源页面的 `MutatingWebhookConfiguration` 和 `ValidatingWebhookConfiguration`。 1. 在相应的资源页面上,点击 `mutating-webhook-configuration` and `validating-webhook-configuration` 后面的 **⋮** 然后选择 **删除**。 还可以通过在 **Resource Search** 字段中输入 webhook 的名称来访问到具体的 webhook。 以下的 `kubectl` 命令可以手动删除必要的 webhook: ```console kubectl delete mutatingwebhookconfiguration.admissionregistration.k8s.io mutating-webhook-configuration ``` ```console kubectl delete validatingwebhookconfigurations.admissionregistration.k8s.io validating-webhook-configuration ``` 使用以下示例从控制台禁用 `embedded-cluster-api` 功能: 1. 创建一个 `feature.yaml` 文件,将 `embedded-cluster-api` 设置为 false: ```yaml title="feature.yaml" apiVersion: management.cattle.io/v3 kind: Feature metadata: name: embedded-cluster-api spec: value: false ``` 2. 使用 `kubectl` 将 `feature.yaml` 文件应用到集群: ```bash kubectl apply -f feature.yaml ``` ## 安装 Rancher Turtles Operator 你可以通过 Rancher UI 或使用 Helm 安装 Rancher Turtles operator。对于大多数环境推荐使用第一种方法。 :::caution 如果你的集群中已经安装了 Cluster API (CAPI) Operator,你必须使用[手动 Helm 安装方法](#通过-helm-安装)。 ::: ### 通过 Rancher UI 安装 通过 Rancher UI 添加 Turtles 仓库,Rancher 可以处理 CAPI 扩展的安装和配置。 1. 点击 **☰**。在左侧导航栏**浏览集群**的菜单下,选择 **local**。 1. 在 **Cluster Dashboard** 的左侧导航菜单中,点击 **Apps > Repositories**。 1. 点击 **Create** 创建一个新的仓库。 1. 输入以下信息: - **Name**: turtles - **Index URL**: https://rancher.github.io/turtles 1. 等待新的仓库状态更新为 `Active`。 1. 在左侧导航菜单中,点击 **Apps > Charts**。 1. 在搜索过滤器中输入 "turtles" 来查找 Turtles chart。 1. 点击 **Rancher Turtles - the Cluster API Extension**。 1. 点击 **Install > Next > Install**. 此过程使用 Helm chart 的默认值,这些值适用于大部分的安装场景。如果你的配置需要覆盖其中一些默认值,你可以在安装期间通过 Rancher UI 指定这些值,也可以通过 [Helm 手动安装 Chart](#通过-helm-安装)。有关可用的 values 设置的详细信息,请参阅 Rancher Turtles 的 [Helm chart 参考指南](https://turtles.docs.rancher.com/turtles/next/en/reference-guides/rancher-turtles-chart/values.html)。 安装可能需要几分钟时间,安装完成后,你可以在集群中看到以下新部署: - `rancher-turtles-system/rancher-turtles-controller-manager` - `rancher-turtles-system/rancher-turtles-cluster-api-operator` - `capi-system/capi-controller-manager` #### Demo 这个 demo 演示了如何使用 Rancher UI 安装 Rancher Turtles、创建/导入一个 CAPI 集群,以及在集群上安装监控: ### 通过 Helm 安装 通过 Helm 安装 Rancher Turtles 有两种方法,这取决于你是否将 CAPI operator 作为依赖项包含其中: - [使用 CAPI Operator 作为依赖项安装 Rancher Turtles](#使用-cluster-api-capi-operator-作为-helm-依赖项安装-rancher-turtles)。 - [安装没有 CAPI Operator 的 Rancher Turtles](#不使用-cluster-api-capi-operator-作为-helm-依赖安装-rancher-turtles)。 安装 Rancher Turtles 需要 CAPI Operator。你可以选择自己处理此依赖项,还是让 Rancher Turtles Helm chart 替你管理它。[使用 CAPI Operator 作为依赖项安装 Rancher Turtles](#使用-cluster-api-capi-operator-作为-helm-依赖项安装-rancher-turtles) 更简单,但是你的最佳选择取决于你的具体配置。 CAPI Operator 允许使用声明式方法处理 CAPI provider 的生命周期,扩展了 `clusterctl` 的能力。如果你想了解更多相关内容,可以参考 [Cluster API Operator book](https://cluster-api-operator.sigs.k8s.io/)。 #### 使用 `Cluster API (CAPI) Operator` 作为 Helm 依赖项安装 Rancher Turtles 1. 添加包含 `rancher-turtles` chart 的 Helm 仓库作为安装的第一步: ```bash helm repo add turtles https://rancher.github.io/turtles helm repo update ``` 2. 如前面所述,安装 Rancher Turtles 需要 [CAPI Operator](https://github.com/kubernetes-sigs/cluster-api-operator)。Helm chart 可以使用一组最少的参数自动安装: ```bash helm install rancher-turtles turtles/rancher-turtles --version