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

概述

架构图

下面是Rancher Turtles的关键组件及其与Rancher和Rancher Cluster Agent关系的可视化表示。理解这些组件对于深入了解Rancher如何利用CAPI操作符进行集群管理至关重要。

概述

安全性

根据 软件工件供应链级别(SLSA)的定义,SLSA是一套可逐步采用的供应链安全指南,由行业共识建立。SLSA 制定的规范对软件生产者和消费者都很有用:生产者可以遵循 SLSA 的指南来增强他们的软件供应链安全性,而消费者可以使用 SLSA 来决定是否信任某个软件包。

Rancher Turtles符合 SLSA Level 3的要求,作为一个适当的强化构建平台,具有一致的构建流程和溯源分发。有关更多信息,请访问 SUSE® Rancher Prime: Cluster API安全文档。

先决条件

从Rancher v2.14开始,内置的`embedded-cluster-api`功能(也称为`rancher-provisioning-capi`图表)已被移除。https://documentation.suse.com/cloudnative/cluster-api/latest/en/index.html[SUSE® Rancher Prime: Cluster API]现在是与Rancher集成Cluster API的唯一支持方法。

如果您是从之前的Rancher版本(v2.13或更早版本)升级,则不再需要在安装SUSE® Rancher Prime: Cluster API之前手动禁用`embedded-cluster-api`功能标志或清理相关的webhook。

安装SUSE® Rancher Prime: Cluster API操作符

您可以通过Rancher UI或使用Helm安装Rancher Turtles操作符。第一种方法推荐用于大多数环境。

如果您已经在集群中安装了 Cluster API (CAPI) 操作符,则必须使用手动 Helm 安装方法

通过Rancher UI安装

通过Rancher UI添加Turtles储存库,Rancher可以处理CAPI扩展的安装和配置。

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

  2. 在*集群仪表板*的左侧导航菜单中,选择应用  仓库

  3. 点击*创建*以添加新储存库。

  4. 输入以下内容:

  5. 等待新储存库的状态为`Active`。

  6. 在左侧导航菜单中,选择应用  图表

  7. 在搜索过滤器中输入"turtles"以查找Turtles图表。

  8. 点击*Rancher Turtles - 集群API扩展*。

  9. 点击安装  下一步  安装

此过程使用Helm图表的默认值,这些值适用于大多数安装。如果您的配置需要覆盖其中一些默认值,您可以在Rancher UI中安装时指定这些值,或者您可以通过Helm手动安装图表。有关可用值的详细信息,请参见 集群API文档

安装可能需要几分钟,完成后您可以在集群中看到以下新部署:

  • rancher-turtles-system/rancher-turtles-controller-manager

  • rancher-turtles-system/rancher-turtles-cluster-api-operator

  • capi-system/capi-controller-manager

演示

此演示说明如何使用Rancher UI安装Rancher Turtles,创建/导入CAPI集群,并在集群上安装监控:

通过Helm安装

有两种方法可以使用 Helm 安装 Rancher Turtles,具体取决于您是否将 CAPI 操作符作为依赖项:

安装 Rancher Turtles 需要 CAPI 操作符。您可以选择自己处理此依赖项,还是让Rancher Turtles Helm图表为您管理。将Turtles作为依赖项安装更简单,但您最佳的选择取决于您的具体配置。

CAPI 操作符允许使用声明性方法处理 CAPI提供者的生命周期,从而扩展`clusterctl`的能力。如果您想了解更多信息,可以参考 集群 API 操作符书籍

安装SUSE® Rancher Prime: Cluster API时将`Cluster API (CAPI) Operator`作为Helm依赖项

  1. 将包含`rancher-turtles`图表的Helm仓库作为安装的第一步添加:

    helm repo add turtles https://rancher.github.io/turtles
    helm repo update
  2. 如前所述,安装 Rancher Turtles 需要 CAPI 操作符。Helm图表可以使用最少的标志自动安装它:

    helm install rancher-turtles turtles/rancher-turtles --version <version> \
        -n rancher-turtles-system \
        --dependency-update \
        --create-namespace --wait \
        --timeout 180s
  3. 此操作可能需要几分钟,完成后您可以查看下面列出的已安装控制器:

    • rancher-turtles-controller

    • capi-operator

      • 如果集群中已经有`cert-manager`,请禁用其作为Rancher Turtles依赖项的安装。这可以防止依赖冲突: --set cluster-api-operator.cert-manager.enabled=false

      • 有关Rancher Turtles版本的列表,请参阅 Turtles发布页面

这是基本的推荐配置,负责在内核提供者名称空间中管理创建一个包含所需 CAPI 功能标志(启用 CLUSTER_TOPOLOGYEXP_CLUSTER_RESOURCE_SETEXP_MACHINE_POOL)的 secret。这些功能标志是启用额外CAPI功能所必需的。

如果您需要覆盖默认行为并使用现有的秘密(或添加自定义环境变量),可以传递秘密名称Helm标志。在这种情况下,作为用户,您负责管理秘密的创建及其内容,包括启用最低所需功能:CLUSTER_TOPOLOGYEXP_CLUSTER_RESOURCE_SET`和`EXP_MACHINE_POOL

helm install ...
    # Passing secret name and namespace for additional environment variables
    --set cluster-api-operator.cluster-api.configSecret.name=<secret-name>

以下是一个用户管理的秘密`cluster-api-operator.cluster-api.configSecret.name=variables`的示例,设置了`CLUSTER_TOPOLOGY`、`EXP_CLUSTER_RESOURCE_SET`和`EXP_MACHINE_POOL`功能标志,并添加了一个额外的自定义变量:

secret.yaml
apiVersion: v1
kind: Secret
metadata:
  name: variables
  namespace: rancher-turtles-system
type: Opaque
stringData:
  CLUSTER_TOPOLOGY: "true"
  EXP_CLUSTER_RESOURCE_SET: "true"
  EXP_MACHINE_POOL: "true"
  CUSTOM_ENV_VAR: "false"

有关图表支持的值及其用法的详细信息,请参阅 Helm图表选项

在没有SUSE® Rancher Prime: Cluster API作为Helm依赖项的情况下安装`Cluster API (CAPI) Operator`

请记住,如果您选择此安装选项,您必须自己管理CAPI Operator的安装。您可以在Cluster API文档中遵循手动安装指南以获取帮助。

  1. 将包含`rancher-turtles`图表的Helm储存库作为安装的第一步添加:

    helm repo add turtles https://rancher.github.io/turtles
    helm repo update
  2. 将图表安装到`rancher-turtles-system`名称空间中:

    helm install rancher-turtles turtles/rancher-turtles --version <version>
        -n rancher-turtles-system
        --set cluster-api-operator.enabled=false
        --set cluster-api-operator.cluster-api.enabled=false
        --create-namespace --wait
        --dependency-update

    之前的命令告诉Helm忽略将`cluster-api-operator`作为依赖项进行安装。

  3. 此操作可能需要几分钟,完成后您可以查看下面列出的已安装控制器:

    • rancher-turtles-controller

卸装 SUSE® Rancher Prime: Cluster API

在您的Rancher环境中安装Rancher Turtles时,默认情况下,Rancher Turtles启用CAPI Operator清理。这包括清理特定于 CAPI 操作员的网络hooks和部署,这些会导致 Rancher 配置的问题。

为了简化通过 Rancher 或 Helm 命令卸载 Rancher Turtles,官方的 Rancher Turtles Helm 图表包含一个 post-delete 钩子,用于删除以下内容:

  • 删除不再需要的 mutating-webhook-configurationvalidating-webhook-configuration 网络hooks。

  • 删除不再需要的 CAPI deployments

要卸载 Rancher Turtles:

helm uninstall -n rancher-turtles-system rancher-turtles --cascade foreground --wait

此过程可能需要几分钟来完成。

请记住,如果您为安装使用了不同的名称或不同的名称空间,您可能需要根据您的具体配置自定义命令。