示例场景

以下示例场景描述了组织如何使用模板来标准化集群创建。

强制执行模板设置

假设有一个组织,管理员决定用 Kubernetes 版本 1.14 创建所有新集群。

  1. 首先,管理员创建一个模板,将 Kubernetes 版本指定为 1.14,并将所有其他设置标记为允许用户覆盖
  2. 管理员将模板公开。
  3. 管理员打开模板强制功能。

结果:

  • 组织中的所有 Rancher 用户都可以访问该模板。
  • 标准用户使用此模板创建的所有新集群都将使用 Kubernetes 1.14,它们无法使用其他 Kubernetes 版本。默认情况下,标准用户没有创建模板的权限,因此除非与他们共享更多模板,否则此模板将是唯一可以使用的模板。
  • 所有标准用户必须使用集群模板创建新集群。如果不使用模板,则无法创建集群。

通过这种方式,系统管理员在整个组织中强制使用 Kubernetes 版本,同时仍然允许最终用户配置其他所有内容。

基本和高级用户模板

假设一个组织有基本用户和高级用户。管理员希望基本用户必须使用模板,而高级用户和管理员可以根据自己的需要创建集群。

  1. 首先,管理员打开 RKE 模板强制。这意味着 Rancher 中的每个标准用户在创建集群时都需要使用 RKE 模板。

  2. 然后,管理员创建两个模板:

    • 一个基本用户模板,除了访问密钥之外,几乎所有选项都被指定了
    • 一个用于高级用户的模板,大多数或所有选项已启用允许用户覆盖
  3. 管理员只与高级用户共享高级模板。

  4. 管理员将基本用户的模板设置为公共模板,因此对在 Rancher 中创建的 RKE 集群的每个人来说,都有一个更严格的集群模板可以作为选项。

结果: 创建集群时,除管理员外,所有 Rancher 用户都必须使用模板。每个人都有权访问限制性模板,但只有高级用户才有权使用更为宽泛的模板。基本用户受到更多限制,而高级用户在配置其 Kubernetes 集群时有更多的自由。

更新模板和集群

假设一个组织有一个模板,它要求集群使用 Kubernetes v1.14。然而,随着时间的推移,管理人员会改变主意。他们决定希望用户能够升级集群以使用更新版本的 Kubernetes。

在这个组织中,许多集群是用一个需要 Kubernetes v1.14 的模板创建的。由于模板不允许重写该设置,因此创建集群的用户无法直接编辑该设置。

模板所有者有几个选项允许集群创建者在其集群上升级 Kubernetes:

  • 在模板上指定 Kubernetes v1.15: 模板所有者可以创建指定 Kubernetes v1.15 的新模板修订版。然后使用该模板的每个集群的所有者可以将其集群升级到模板的新版本。升级此模板,允许集群创建者将其集群上的 Kubernetes 升级到 v1.15。
  • 允许在模板上使用任何 Kubernetes 版本: 创建模板修订时,模板所有者还可以使用 Rancher UI 上该设置附近的开关将 Kubernetes 版本标记为允许用户覆盖。这将允许升级到此模板修订版的集群使用 Kubernetes 的任何版本。
  • 允许使用补丁版本升级: 模板所有者还可以创建一个模板版本,其中 Kubernetes 版本定义为 Latest v1.14(允许补丁版本升级)。这意味着使用该版本的集群将能够获得补丁版本升级,但不允许主要版本升级。

允许其他用户控制和共享模板

假设 Alice 是个 Rancher 管理员。她拥有一个 RKE 模板,该模板反映了她的组织为创建集群而商定的最佳实践。

Bob 是一个高级用户,可以对集群配置做出明智的决策。随着最佳实践的不断更新,Alice 相信 Bob 会创建新的模板修订版。因此,她决定让 Bob 成为模板的所有者。

要与 Bob 共享模板的所有权,Alice 将 Bob 添加为模板的所有者

结果是,作为模板所有者,Bob 负责该模板的版本控制。Bob 现在可以执行以下所有操作: