mirror of
https://github.com/rancher/rancher-docs.git
synced 2026-09-26 13:08:11 +00:00
Archiving the v2.6/v2.7 zh docs. Updating the zh sidebar version JSON files to reflect archived messaging in navigation dropdown.
Signed-off-by: Sunil Singh <sunil.singh@suse.com>
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
---
|
||||
title: 配置驱动
|
||||
---
|
||||
|
||||
使用 Rancher 中的驱动,你可以管理可以使用哪些供应商来部署[托管的 Kubernetes 集群](set-up-clusters-from-hosted-kubernetes-providers.md)或[云服务器节点](use-new-nodes-in-an-infra-provider.md),以允许 Rancher 部署和管理 Kubernetes。
|
||||
|
||||
### Rancher 驱动
|
||||
|
||||
你可以启用或禁用 Rancher 中内置的驱动。如果相关驱动 Rancher 尚未实现,你可以添加自己的驱动。
|
||||
|
||||
Rancher 中有两种类型的驱动:
|
||||
|
||||
* [集群驱动](#集群驱动)
|
||||
* [主机驱动](#主机驱动)
|
||||
|
||||
### 集群驱动
|
||||
|
||||
集群驱动用于配置[托管的 Kubernetes 集群](set-up-clusters-from-hosted-kubernetes-providers.md),例如 GKE、EKS、AKS 等。创建集群时可以显示的集群驱动,是由集群驱动的状态定义的。只有 `active` 集群驱动将显示为为托管 Kubernetes 集群创建集群的选项。默认情况下,Rancher 与几个现有的集群驱动打包在一起,但你也可以创建自定义集群驱动并添加到 Rancher。
|
||||
|
||||
默认情况下,Rancher 已激活多个托管 Kubernetes 云提供商,包括:
|
||||
|
||||
* [Amazon EKS](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/eks.md)
|
||||
* [Google GKE](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/gke.md)
|
||||
* [Azure AKS](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/aks.md)
|
||||
|
||||
还有几个托管的 Kubernetes 云提供商是默认禁用的,但也打包在 Rancher 中:
|
||||
|
||||
* [Alibaba ACK](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/alibaba.md)
|
||||
* [Huawei CCE](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/huawei.md)
|
||||
* [Tencent](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/tencent.md)
|
||||
|
||||
### 主机驱动
|
||||
|
||||
主机驱动用于配置主机,Rancher 使用这些主机启动和管理 Kubernetes 集群。主机驱动与 [Docker Machine 驱动](https://github.com/docker/docs/blob/vnext-engine/machine/drivers/index.md)相同。创建主机模板时可以显示的主机驱动,是由主机驱动的状态定义的。只有 `active` 主机驱动将显示为创建节点模板的选项。默认情况下,Rancher 与许多现有的 Docker Machine 驱动打包在一起,但你也可以创建自定义主机驱动并添加到 Rancher。
|
||||
|
||||
如果你不想向用户显示特定的主机驱动,则需要停用这些主机驱动。
|
||||
|
||||
Rancher 支持几家主要的云提供商,但默认情况下,这些主机驱动处于 active 状态并可供部署:
|
||||
|
||||
* [Amazon EC2](../how-to-guides/new-user-guides/launch-kubernetes-with-rancher/use-new-nodes-in-an-infra-provider/create-an-amazon-ec2-cluster.md)
|
||||
* [Azure](../how-to-guides/new-user-guides/launch-kubernetes-with-rancher/use-new-nodes-in-an-infra-provider/create-an-azure-cluster.md)
|
||||
* [Digital Ocean](../how-to-guides/new-user-guides/launch-kubernetes-with-rancher/use-new-nodes-in-an-infra-provider/create-a-digitalocean-cluster.md)
|
||||
* [vSphere](vsphere.md)
|
||||
|
||||
还有其他几个默认禁用的主机驱动,但打包在 Rancher 中:
|
||||
|
||||
* [Harvester](../integrations-in-rancher/harvester.md#harvester-主机驱动) - 在 Rancher 2.6.1 中可用
|
||||
@@ -0,0 +1,128 @@
|
||||
---
|
||||
title: RKE 模板
|
||||
---
|
||||
|
||||
<EOLRKE1Warning />
|
||||
|
||||
RKE 模板旨在让 DevOps 和安全团队标准化和简化 Kubernetes 集群创建的流程。
|
||||
|
||||
RKE 的全称是 [Rancher Kubernetes Engine](https://rancher.com/docs/rke/latest/en/),它是 Rancher 用来配置 Kubernetes 集群的工具。
|
||||
|
||||
随着 Kubernetes 越来越受欢迎,管理更多小型集群逐渐成为趋势。如果你想要创建大量集群,对集群进行一致管理尤为重要。多集群管理面临着安全和附件配置执行的挑战,在将集群移交给最终用户之前,这些配置需要标准化。
|
||||
|
||||
RKE 模板有助于标准化这些配置。无论是使用 Rancher UI、Rancher API 还是自动化流程创建的集群,Rancher 都将保证从 RKE 集群模板创建的每个集群在生成方式上是一致的。
|
||||
|
||||
管理员可以控制最终用户能更改的集群选项。RKE 模板还可以与特定的用户和组共享,以便管理员可以为不同的用户集创建不同的 RKE 模板。
|
||||
|
||||
如果集群是使用 RKE 模板创建的,则不能让集群使用另一个 RKE 模板。你只能将集群更新为同一模板的新版本。
|
||||
|
||||
你可以[将现有集群的配置保存为 RKE 模板](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-rke1-templates/apply-templates.md#将现有集群转换为使用-rke-模板)。这样,只有模板更新后才能更改集群的设置。新模板还可用于启动新集群。
|
||||
|
||||
RKE 模板的核心功能允许 DevOps 和安全团队:
|
||||
|
||||
- 标准化集群配置并确保按照最佳实践创建 Rancher 配置的集群
|
||||
- 配置集群时,防止用户做出不明智的选择
|
||||
- 与不同的用户和组共享不同的模板
|
||||
- 将模板的所有权委托给受信任的用户进行更改
|
||||
- 控制哪些用户可以创建模板
|
||||
- 要求用户使用模板来创建集群
|
||||
|
||||
## 可配置的设置
|
||||
|
||||
RKE 模板可以在 Rancher UI 中创建或以 YAML 格式定义。当你使用 Rancher 从基础设施提供商配置自定义节点或一般节点时,它们可以指定为相同的参数:
|
||||
|
||||
- 云提供商选项
|
||||
- Pod 安全选项
|
||||
- 网络提供商
|
||||
- Ingress Controller
|
||||
- 网络安全配置
|
||||
- 网络插件
|
||||
- 私有镜像仓库 URL 和凭证
|
||||
- 附加组件
|
||||
- Kubernetes 选项,包括 kube-api、kube-controller、kubelet 和服务等 Kubernetes 组件的配置
|
||||
|
||||
RKE 模板的[附加组件](#附加组件)的功能特别强大,因为它允许多种自定义选项。
|
||||
|
||||
## RKE 模板的范围
|
||||
|
||||
Rancher 配置的集群支持 RKE 模板。模板可用于配置自定义集群或由基础设施提供商启动的集群。
|
||||
|
||||
RKE 模板用于定义 Kubernetes 和 Rancher 设置。节点模板负责配置节点。有关如何将 RKE 模板与硬件结合使用的参考,请参阅 [RKE 模板和硬件](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-rke1-templates/infrastructure.md)。
|
||||
|
||||
可以从头开始创建 RKE 模板来预先定义集群配置。它们可以用于启动新集群,也可以从现有的 RKE 集群导出模板。
|
||||
|
||||
现有集群的设置可以[保存为 RKE 模板](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-rke1-templates/apply-templates.md#将现有集群转换为使用-rke-模板)。这会创建一个新模板并将集群设置绑定到该模板。这样,集群只有在[模板更新](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-rke1-templates/manage-rke1-templates.md#更新模板)的情况下才能[使用新版本的模板](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-rke1-templates/manage-rke1-templates.md#升级集群以使用新的模板修订版)进行升级。新模板也可以用来创建新集群。
|
||||
|
||||
|
||||
## 示例场景
|
||||
如果一个组织同时拥有普通和高级 Rancher 用户,管理员可能希望为高级用户提供更多用于集群创建的选项,并限制普通用户的选项。
|
||||
|
||||
这些[示例场景](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-rke1-templates/example-use-cases.md)描述组织如何使用模板来标准化集群创建。
|
||||
|
||||
示例场景包括:
|
||||
|
||||
- **强制执行模板**:如果希望所有 Rancher 配置的新集群都具有某些设置,管理员可能想要[为每个用户强制执行一项或多项模板设置](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-rke1-templates/example-use-cases.md#强制执行模板设置)。
|
||||
- **与不同的用户共享不同的模板**:管理员可以为[普通用户和高级用户提供不同的模板](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-rke1-templates/example-use-cases.md#普通用户和高级用户模板)。这样,普通用户会有更多限制选项,而高级用户在创建集群时可以使用更多选项。
|
||||
- **更新模板设置**:如果组织的安全和 DevOps 团队决定将最佳实践嵌入到新集群所需的设置中,这些最佳实践可能会随着时间而改变。如果最佳实践发生变化,[可以将模板更新为新版本](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-rke1-templates/example-use-cases.md#更新模板和集群),这样,使用模板创建的集群可以[升级到模板的新版本](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-rke1-templates/manage-rke1-templates.md#升级集群以使用新的模板修订版)。
|
||||
- **共享模板的所有权**:当模板所有者不再想要维护模板或想要共享模板的所有权时,此方案描述了如何[共享模板所有权](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-rke1-templates/example-use-cases.md#允许其他用户控制和共享模板)。
|
||||
|
||||
## 模板管理
|
||||
|
||||
创建 RKE 模板时,可以在 Rancher UI 中的**集群管理**下的 **RKE 模板**中使用模板。创建模板后,你将成为模板所有者,这将授予你修改和共享模板的权限。你可以与特定用户或组共享 RKE 模板,也可以公开模板。
|
||||
|
||||
管理员可以开启模板强制执行,要求用户在创建集群时始终使用 RKE 模板。这使管理员可以保证 Rancher 总是创建指定配置的集群。
|
||||
|
||||
RKE 模板更新通过修订系统处理。如果要更改或更新模板,请创建模板的新版本。然后,可以将使用旧版本模板创建的集群升级到新模板修订版。
|
||||
|
||||
在 RKE 模板中,模板所有者可以限制设置的内容,也可以打开设置以供最终用户选择值。它们的差别体现在,创建模板时,Rancher UI 中的每个设置上的**允许用户覆盖**标示。
|
||||
|
||||
对于无法覆盖的设置,最终用户将无法直接编辑它们。为了让用户使用这些设置的不同选项,RKE 模板所有者需要创建 RKE 模板的新版本,这将允许用户升级和更改该选项。
|
||||
|
||||
本节中的文件解释了 RKE 模板管理的细节:
|
||||
|
||||
- [获取创建模板的权限](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-rke1-templates/creator-permissions.md)
|
||||
- [创建和修改模板](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-rke1-templates/manage-rke1-templates.md)
|
||||
- [强制执行模板设置](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-rke1-templates/enforce-templates.md#强制新集群使用-rke-模板)
|
||||
- [覆盖模板设置](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-rke1-templates/override-template-settings.md)
|
||||
- [与集群创建者共享模板](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-rke1-templates/access-or-share-templates.md#与特定用户或组共享模板)
|
||||
- [共享模板的所有权](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-rke1-templates/access-or-share-templates.md#共享模板所有权)
|
||||
|
||||
你可以参见此[模板的示例 YAML 文件](../reference-guides/rke1-template-example-yaml.md)作为参考。
|
||||
|
||||
## 应用模板
|
||||
|
||||
你可以使用你自己创建的模板来[创建集群](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-rke1-templates/apply-templates.md#使用-rke-模板创建集群),也可以使用[与你共享的模板](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-rke1-templates/access-or-share-templates.md)来创建集群。
|
||||
|
||||
如果 RKE 模板所有者创建了模板的新版本,你可以[将你的集群升级到该版本](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-rke1-templates/apply-templates.md#更新使用-rke-模板创建的集群)。
|
||||
|
||||
可以从头开始创建 RKE 模板来预先定义集群配置。它们可以用于启动新集群,也可以从现有的 RKE 集群导出模板。
|
||||
|
||||
你可以[将现有集群的配置保存为 RKE 模板](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-rke1-templates/apply-templates.md#将现有集群转换为使用-rke-模板)。这样,只有模板更新后才能更改集群的设置。
|
||||
|
||||
## 标准化硬件
|
||||
|
||||
RKE 模板的目的是标准化 Kubernetes 和 Rancher 设置。如果你还想标准化你的基础设施,一个选择是将 RKE 模板与[其他工具](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-rke1-templates/infrastructure.md)一起使用。
|
||||
|
||||
另一种选择是使用包含节点池配置选项,但不强制执行配置的[集群模板](../how-to-guides/new-user-guides/manage-clusters/manage-cluster-templates.md)。
|
||||
|
||||
## YAML 定制
|
||||
|
||||
如果将 RKE 模板定义为 YAML 文件,则可以修改此[示例 RKE 模板 YAML](../reference-guides/rke1-template-example-yaml.md)。RKE 模板中的 YAML 使用了 Rancher 在创建 RKE 集群时使用的相同自定义设置。但由于 YAML 要在 Rancher 配置的集群中使用,因此需要将 RKE 模板自定义项嵌套在 YAML 中的 `rancher_kubernetes_engine_config` 参数下。
|
||||
|
||||
RKE 文档也提供[注释的](https://rancher.com/docs/rke/latest/en/example-yamls/) `cluster.yml` 文件供你参考。
|
||||
|
||||
有关可用选项的更多信息,请参阅[集群配置](https://rancher.com/docs/rke/latest/en/config-options/)上的 RKE 文档。
|
||||
|
||||
### 附加组件
|
||||
|
||||
RKE 模板配置文件的附加组件部分的工作方式与[集群配置文件的附加组件部分](https://rancher.com/docs/rke/latest/en/config-options/add-ons/)相同。
|
||||
|
||||
用户定义的附加组件指令允许你调用和下拉 Kubernetes 清单或将它们直接内联。如果这些 YAML 清单包括在 RKE 模板中,Rancher 将在集群中部署这些 YAML 文件。
|
||||
|
||||
你可以使用附加组件执行以下操作:
|
||||
|
||||
- 启动 Kubernetes 集群后,在集群上安装应用
|
||||
- 在使用 Kubernetes Daemonset 部署的节点上安装插件
|
||||
- 自动设置命名空间、ServiceAccount 或角色绑定
|
||||
|
||||
RKE 模板配置必须嵌套在 `rancher_kubernetes_engine_config` 参数中。要设置附加组件,在创建模板时单击**以 YAML 文件编辑**。然后使用 `addons` 指令添加清单,或使用 `addons_include` 指令设置哪些 YAML 文件可用于附加组件。有关自定义附加组件的更多信息,请参见[用户自定义附加组件文档](https://rancher.com/docs/rke/latest/en/config-options/add-ons/user-defined-add-ons/)。
|
||||
@@ -0,0 +1,80 @@
|
||||
---
|
||||
title: API
|
||||
---
|
||||
|
||||
## 如何使用 API
|
||||
|
||||
API 有自己的用户界面,你可以从 Web 浏览器访问它。这是查看资源、执行操作以及查看等效 cURL 或 HTTP 请求和响应的一种简单的方法。要访问它:
|
||||
|
||||
<Tabs>
|
||||
<TabItem value="Rancher v2.6.4+">
|
||||
|
||||
1. 单击右上角的用户头像。
|
||||
1. 单击**账号 & API 密钥**。
|
||||
1. 在 **API 密钥**下,找到 **API 端点**字段并单击链接。该链接类似于 `https://<RANCHER_FQDN>/v3`,其中 `<RANCHER_FQDN>` 是 Rancher deployment 的完全限定域名。
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="Rancher 版本低于 v2.6.4">
|
||||
|
||||
转到位于 `https://<RANCHER_FQDN>/v3` 的 URL 端点,其中 `<RANCHER_FQDN>` 是你的 Rancher deployment 的完全限定域名。
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
## 身份验证
|
||||
|
||||
API 请求必须包含身份验证信息。身份验证是通过 [API 密钥](../reference-guides/user-settings/api-keys.md)使用 HTTP 基本身份验证完成的。API 密钥可以创建新集群并通过 `/v3/clusters/` 访问多个集群。[集群和项目角色](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/manage-role-based-access-control-rbac/cluster-and-project-roles.md)会应用于这些键,并限制账号可以查看的集群和项目以及可以执行的操作。
|
||||
|
||||
默认情况下,某些集群级别的 API 令牌是使用无限期 TTL(`ttl=0`)生成的。换言之,除非你让令牌失效,否则 `ttl=0` 的 API 令牌永远不会过期。有关如何使 API 令牌失效的详细信息,请参阅 [API 令牌](../reference-guides/about-the-api/api-tokens.md)。
|
||||
|
||||
## 发出请求
|
||||
|
||||
该 API 通常是 RESTful 的,但是还具有多种功能。这些功能可以使客户端发现所有内容,因此可以编写通用客户端,而不必为每种资源编写特定代码。有关通用 API 规范的详细信息,请参阅[此处](https://github.com/rancher/api-spec/blob/master/specification.md)。
|
||||
|
||||
- 每种类型都有一个 Schema,这个 Schema 描述了以下内容:
|
||||
- 用于获取此类资源集合的 URL
|
||||
- 资源可以具有的每个字段及其类型、基本验证规则、是必填还是可选字段等
|
||||
- 在此类资源上可以执行的每个操作,以及它们的输入和输出(也作为 schema)
|
||||
- 允许过滤的每个字段
|
||||
- 集合本身或集合中的单个资源可以使用的 HTTP 操作方法
|
||||
|
||||
|
||||
- 因此,你可以只加载 schema 列表并了解 API 的所有信息。实际上,这是 API 的 UI 工作方式,它不包含特定于 Rancher 本身的代码。每个 HTTP 响应中的 `X-Api-Schemas` 标头都会发送获取 Schemas 的 URL。你可以按照每个 schema 上的 `collection` 链接了解要在哪里列出资源,并在返回资源中的其他 `links` 中获取其他信息。
|
||||
|
||||
- 在实践中,你可能只想构造 URL 字符串。我们强烈建议将此限制为在顶层列出的集合 (`/v3/<type>`),或获取特定资源 (`/v3/<type>/<id>`)。除此之外的任何内容都可能在将来的版本中发生更改。
|
||||
|
||||
- 资源之间相互之间有联系,称为链接(links)。每个资源都包含一个 `links` 映射,其中包含链接名称和用于检索该信息的 URL。同样,你应该 `GET` 资源并遵循 `links` 映射中的 URL,而不是自己构造这些字符串。
|
||||
|
||||
- 大多数资源都有操作(action),表示可以执行某个操作或改变资源的状态。要使用操作,请将 HTTP `POST` 请求发送到 `actions` 映射中你想要的操作的 URL。某些操作需要输入或生成输出,请参阅每种类型的独立文档或 schema 以获取具体信息。
|
||||
|
||||
- 要编辑资源,请将 HTTP `PUT` 请求发送到资源上的 `links.update` 链接,其中包含要更改的字段。如果链接丢失,则你无权更新资源。未知字段和不可编辑的字段将被忽略。
|
||||
|
||||
- 要删除资源,请将 HTTP `DELETE` 请求发送到资源上的 `links.remove` 链接。如果链接丢失,则你无权更新资源。
|
||||
|
||||
- 要创建新资源,HTTP `POST` 到 schema(即 `/v3/<type>`)中的集合 URL。
|
||||
|
||||
## 过滤
|
||||
|
||||
你可以使用 HTTP 查询参数的公共字段在服务器端过滤大多数集合。`filters` 映射显示了可以过滤的字段,以及过滤后的值在你发起的请求中是什么。API UI 具有设置过滤和显示适当请求的控件。对于简单的 "equals" 匹配,它只是 `field=value`。你可以将修饰符添加到字段名称,例如 `field_gt=42` 表示“字段大于 42”。详情请参阅 [API 规范](https://github.com/rancher/api-spec/blob/master/specification.md#filtering)。
|
||||
|
||||
## 排序
|
||||
|
||||
你可以使用 HTTP 查询参数的公共字段在服务器端排序大多数集合。`sortLinks` 映射显示了可用的排序,以及用于获取遵循该排序的集合的 URL。它还包括当前响排序依据的信息(如果指定)。
|
||||
|
||||
## 分页
|
||||
|
||||
默认情况下,API 响应以每页 100 个资源的限制进行分页。你可以通过 `limit` 查询参数进行更改,最大为 1000,例如 `/v3/pods?limit=1000`。集合响应中的 `pagination` 映射能让你知道你是否拥有完整的结果集,如果没有,则会指向下一页的链接。
|
||||
|
||||
## 捕获 Rancher API 调用
|
||||
|
||||
你可以使用浏览器开发人员工具来捕获 Rancher API 的调用方式。例如,你可以按照以下步骤使用 Chrome 开发人员工具来获取用于配置 RKE 集群的 API 调用:
|
||||
|
||||
1. 在 Rancher UI 中,转到**集群管理**并单击**创建**。
|
||||
1. 单击某个集群类型。此示例使用 Digital Ocean。
|
||||
1. 使用集群名称和节点模板填写表单,但不要单击**创建**。
|
||||
1. 在创建集群之前,你需要打开开发人员工具才能看到正在记录的 API 调用。要打开工具,右键单击 Rancher UI,然后单击**检查**。
|
||||
1. 在开发者工具中,单击 **Network** 选项卡。
|
||||
1. 在 **Network** 选项卡上,确保选择了 **Fetch/XHR**。
|
||||
1. 在 Rancher UI 中,单击**创建**。在开发者工具中,你应该会看到一个名为 `cluster?_replace=true` 的新网络请求。
|
||||
1. 右键单击 `cluster?_replace=true` 并单击**复制 > 复制为 cURL**。
|
||||
1. 将结果粘贴到文本编辑器中。你将能够看到 POST 请求,包括被发送到的 URL、所有标头以及请求的完整正文。此命令可用于从命令行创建集群。请注意,请求包含凭证,因此请将请求存储在安全的地方。
|
||||
@@ -0,0 +1,31 @@
|
||||
---
|
||||
title: 集群访问
|
||||
---
|
||||
|
||||
本节介绍可以用来访问 Rancher 管理的集群的工具。
|
||||
|
||||
有关如何授予用户访问集群的权限的信息,请参阅[将用户添加到集群](../how-to-guides/new-user-guides/manage-clusters/access-clusters/add-users-to-clusters.md)。
|
||||
|
||||
有关 RBAC 的更多信息,请参阅[本节](manage-role-based-access-control-rbac.md)。
|
||||
|
||||
有关如何设置身份验证系统的信息,请参阅[本节](authentication-config.md)。
|
||||
|
||||
|
||||
### Rancher UI
|
||||
|
||||
Rancher 提供了一个直观的用户界面来让你与集群进行交互。UI 中所有可用的选项都使用 Rancher API。因此,UI 中的任何操作都可以在 Rancher CLI 或 Rancher API 中进行。
|
||||
|
||||
### kubectl
|
||||
|
||||
你可以使用 Kubernetes 命令行工具 [kubectl](https://kubernetes.io/docs/reference/kubectl/overview/) 来管理你的集群。使用 kubectl 有两种选择:
|
||||
|
||||
- **Rancher kubectl shell**:通过启动 Rancher UI 中可用的 kubectl shell 与集群交互。此选项不需要你进行任何配置操作。有关详细信息,请参阅[使用 kubectl Shell 访问集群](../how-to-guides/new-user-guides/manage-clusters/access-clusters/use-kubectl-and-kubeconfig.md)。
|
||||
- **终端远程连接**:你也可以通过在本地桌面上安装 [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/),然后将集群的 kubeconfig 文件复制到本地 `~/.kube/config` 目录来与集群交互。有关更多信息,请参阅[使用 kubectl 和 kubeconfig 文件访问集群](../how-to-guides/new-user-guides/manage-clusters/access-clusters/use-kubectl-and-kubeconfig.md)。
|
||||
|
||||
### Rancher CLI
|
||||
|
||||
你可以下载 Rancher 自己的命令行工具 [Rancher CLI](cli-with-rancher.md) 来控制你的集群。这个 CLI 工具可以直接与不同的集群和项目进行交互,或者向它们传递 `kubectl` 命令。
|
||||
|
||||
### Rancher API
|
||||
|
||||
最后,你可以通过 Rancher API 与集群进行交互。在使用 API 之前,你必须先获取 [API 密钥](../reference-guides/user-settings/api-keys.md)。要查看 API 对象的不同资源字段和操作,请打开 API UI(API UI 可以通过单击 Rancher UI 对象的**在 API 中查看**访问)。
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: 高级配置
|
||||
---
|
||||
|
||||
### Alertmanager
|
||||
|
||||
有关配置 Alertmanager 自定义资源的信息,请参阅[此页面](../how-to-guides/advanced-user-guides/monitoring-v2-configuration-guides/advanced-configuration/alertmanager.md)。
|
||||
|
||||
### Prometheus
|
||||
|
||||
有关配置 Prometheus 自定义资源的信息,请参阅[此页面](../how-to-guides/advanced-user-guides/monitoring-v2-configuration-guides/advanced-configuration/prometheus.md)。
|
||||
|
||||
### PrometheusRules
|
||||
|
||||
有关配置 Prometheus 自定义资源的信息,请参阅[此页面](../how-to-guides/advanced-user-guides/monitoring-v2-configuration-guides/advanced-configuration/prometheusrules.md)。
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: 高级用户指南
|
||||
---
|
||||
|
||||
高级用户指南是“问题导向”的文档,用户可以从中学习如何解决问题。高级用于指南与新用户指南的主要区别在于,高级用户指南面向更有经验或更高级的用户,这些用户对文档有更多的技术需求,而且已经了解 Rancher 及其功能。他们知道自己需要做什么,只是需要额外的指导来完成更复杂的任务。
|
||||
|
||||
应该注意的是,新用户指南和高级用户指南都没有提供详细的解释或讨论(这些文档不包括在本部分)。操作指南侧重于引导用户通过可重复、有效的步骤来学习新技能、掌握某些操作或解决某些问题。
|
||||
@@ -0,0 +1,31 @@
|
||||
---
|
||||
title: 离线 Helm CLI 安装
|
||||
---
|
||||
|
||||
本文介绍如何使用 Helm CLI 在离线环境中安装 Rancher Server。离线环境可以是 Rancher Server 离线安装、防火墙后面或代理后面。
|
||||
|
||||
Rancher 安装在 RKE Kubernetes 集群、K3s Kubernetes 集群,或单个 Docker 容器上对应的安装步骤会有所不同。
|
||||
|
||||
如需了解各个安装方式的更多信息,请参见[本页](installation-and-upgrade.md)。
|
||||
|
||||
在安装指导中,我们为不同的安装选项提供对应的 _选项卡_ 。
|
||||
|
||||
:::note 重要提示:
|
||||
|
||||
如果你按照 Docker 安装指南安装 Rancher,你将没有把 Docker 安装转换为 Kubernetes 安装的升级途径。
|
||||
|
||||
:::
|
||||
|
||||
## 安装概要
|
||||
|
||||
1. [设置基础设施和私有镜像仓库](../getting-started/installation-and-upgrade/other-installation-methods/air-gapped-helm-cli-install/infrastructure-private-registry.md)
|
||||
2. [收集镜像到私有镜像仓库](../getting-started/installation-and-upgrade/other-installation-methods/air-gapped-helm-cli-install/publish-images.md)
|
||||
3. [设置 Kubernetes 集群(如果你使用 Docker 安装,请跳过此步骤)](../getting-started/installation-and-upgrade/other-installation-methods/air-gapped-helm-cli-install/install-kubernetes.md)
|
||||
4. [安装 Rancher](../getting-started/installation-and-upgrade/other-installation-methods/air-gapped-helm-cli-install/install-rancher-ha.md)
|
||||
|
||||
## 升级
|
||||
|
||||
如需在离线环境中使用 Helm CLI 升级 Rancher,请按照[升级步骤](../getting-started/installation-and-upgrade/install-upgrade-on-a-kubernetes-cluster/upgrades.md)进行操作。
|
||||
|
||||
### 后续操作
|
||||
[准备节点](../getting-started/installation-and-upgrade/other-installation-methods/air-gapped-helm-cli-install/infrastructure-private-registry.md)
|
||||
@@ -0,0 +1,133 @@
|
||||
---
|
||||
title: 身份验证配置
|
||||
weight: 10
|
||||
---
|
||||
|
||||
Rancher 向 Kubernetes 添加的关键功能之一,就是集中式用户身份验证。此功能允许你的用户使用一组凭证对你的所有 Kubernetes 集群进行身份验证。
|
||||
|
||||
这种集中式的用户身份验证是使用 Rancher 身份验证代理完成的,该代理与 Rancher 的其他组件一起安装。这个代理验证你的用户,并使用一个 ServiceAccount 将用户请求转发到你的 Kubernetes 集群。
|
||||
|
||||
## 外部验证与本地验证
|
||||
|
||||
Rancher 身份验证代理支持与以下外部身份验证服务集成:
|
||||
|
||||
| 验证服务 |
|
||||
| ------------------------------------------------------------------------------------------------ |
|
||||
| [Microsoft Active Directory](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/authentication-config/configure-active-directory.md) |
|
||||
| [GitHub](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/authentication-config/configure-github.md) |
|
||||
| [Microsoft Azure AD](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/authentication-config/configure-azure-ad.md) |
|
||||
| [FreeIPA](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/authentication-config/configure-freeipa.md) |
|
||||
| [OpenLDAP](configure-openldap.md) |
|
||||
| [Microsoft AD FS](configure-microsoft-ad-federation-service-saml.md) |
|
||||
| [PingIdentity](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/authentication-config/configure-pingidentity.md) |
|
||||
| [Keycloak (OIDC)](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/authentication-config/configure-keycloak-oidc.md) |
|
||||
| [Keycloak (SAML)](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/authentication-config/configure-keycloak-saml.md) |
|
||||
| [Okta](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/authentication-config/configure-okta-saml.md) |
|
||||
| [Google OAuth](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/authentication-config/configure-google-oauth.md) |
|
||||
| [Shibboleth](configure-shibboleth-saml.md) |
|
||||
|
||||
同时,Rancher 也提供了[本地身份验证](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/authentication-config/create-local-users.md)。
|
||||
|
||||
大多数情况下,应该使用外部身份验证服务,而不是本地身份验证,因为外部身份验证允许对用户进行集中管理。但是你可能需要一些本地身份验证用户,以便在特定的情况下(例如在外部身份验证系统不可用或正在进行维护时)管理 Rancher。
|
||||
|
||||
## 用户和组
|
||||
|
||||
Rancher 依赖用户和组来决定允许登录到 Rancher 的用户,以及他们可以访问哪些资源。使用外部系统进行身份验证时,将由外部系统提供用户和组。这些用户和组被赋予集群、项目、多集群应用、全局 DNS 提供商等资源的特定角色。当你将访问权限授予某个组时,身份验证提供程序中属于该组的所有用户都将能够使用你指定的权限访问该资源。有关角色和权限的更多信息,请参见 [RBAC](manage-role-based-access-control-rbac.md)。
|
||||
|
||||
:::note
|
||||
|
||||
本地认证不支持创建或管理用户组。
|
||||
|
||||
:::
|
||||
|
||||
详情请参见[用户和组](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/authentication-config/manage-users-and-groups.md)。
|
||||
|
||||
## Rancher 授权范围
|
||||
|
||||
将 Rancher 配置成允许使用外部验证提供程序登录后,你需要配置允许登录和使用 Rancher 的用户。可用选项如下:
|
||||
|
||||
| 访问级别 | 描述 |
|
||||
|----------------------------------------------|-------------|
|
||||
| 允许任何有效用户 | 授权服务中的 _任何_ 用户都可以访问Rancher。通常不建议使用此设置。 |
|
||||
| 允许集群和项目成员,以及授权的用户和组织 | 认证服务中的任何用户,以及添加为**集群成员**或**项目成员**的任何组都可以登录到 Rancher。此外,添加到**授权用户和组织**列表中的身份验证服务中的任何用户和组都能登录到 Rancher。 |
|
||||
| 仅允许授权用户和组织 | 只有添加到**授权用户和组织**的身份验证服务中的用户和组能登录 Rancher。 |
|
||||
|
||||
要在授权服务中为用户设置 Rancher 访问级别,请执行以下步骤:
|
||||
|
||||
1. 在左上角,单击 **☰ > 用户 & 认证**。
|
||||
1. 单击左侧导航栏的**认证**。
|
||||
1. 设置好认证提供程序的配置后,使用 **Site Access** 选项来配置用户的授权范围。上表说明了每个选项的访问级别。
|
||||
1. 可选:如果你选择**允许任何有效用户**以外的选项,你可以通过在显示的文本字段中搜索用户,将用户添加到**授权用户和组织**的列表中。
|
||||
1. 单击**保存**。
|
||||
|
||||
**结果**:Rancher 访问配置已应用。
|
||||
|
||||
:::note SAML 身份提供商注意事项
|
||||
|
||||
- SAML 协议不支持搜索或查找用户或组。因此,将用户或组添加到 Rancher 时不会对其进行验证。
|
||||
- 添加用户时,必须正确输入确切的用户 ID(即 `UID` 字段)。键入用户 ID 时,将不会搜索可能匹配的其他用户 ID。
|
||||
- 添加组时,必须从文本框旁边的下拉列表中选择组。Rancher 假定来自文本框的任何输入都是用户。
|
||||
- 用户组下拉列表仅显示你所属的用户组。如果你不是某个组的成员,你将无法添加该组。
|
||||
|
||||
:::
|
||||
|
||||
## 外部身份验证配置和用户主体
|
||||
|
||||
配置外部认证需要:
|
||||
|
||||
- 分配了管理员角色的本地用户,以下称为 _本地主体_。
|
||||
- 可以使用外部认证服务进行认证的外部用户,以下称为 _外部主体_。
|
||||
|
||||
外部身份验证的配置将影响 Rancher 中主体用户的管理方式。按照下面的列表来更好地理解这些影响。
|
||||
|
||||
1. 作为本地主体登录到 Rancher 并完成外部身份验证的配置。
|
||||
|
||||

|
||||
|
||||
2. Rancher 将外部主体与本地主体相关联。这两个用户共享本地主体的用户 ID。
|
||||
|
||||

|
||||
|
||||
3. 完成配置后,Rancher 将自动退出本地主体。
|
||||
|
||||

|
||||
|
||||
4. 然后,Rancher 会自动将你作为外部主体重新登录。
|
||||
|
||||

|
||||
|
||||
5. 由于外部主体与本地主体共享一个 ID,因此**用户**页面不会再单独显示外部主体的对象。
|
||||
|
||||

|
||||
|
||||
6. 外部主体和本地主体共享相同的访问权限。
|
||||
|
||||
:::note 重新配置以前设置的身份验证提供程序
|
||||
|
||||
如果你需要重新配置或禁用以前设置的提供程序然后再重新启用它,请确保进行此操作的用户使用外部用户身份登录 Rancher,而不是本地管理员。
|
||||
|
||||
:::
|
||||
|
||||
## 禁用认证提供程序
|
||||
|
||||
禁用身份认证提供程序时,Rancher 会删除与其关联的所有资源,例如:
|
||||
- 密文
|
||||
- 全局角色绑定
|
||||
- 集群角色模板绑定
|
||||
- 项目角色模板绑定
|
||||
- 与提供商关联的外部用户,这些用户从未以本地用户身份登录到 Rancher
|
||||
|
||||
由于此操作可能会导致许多资源丢失,因此你可能希望在提供程序上添加保护措施。
|
||||
为确保在禁用身份认证提供程序时不会运行此清理,请向相应的身份认证配置添加特殊注释。
|
||||
|
||||
例如,要为 Azure AD 提供程序添加安全措施,请注释 `azuread` authconfig 对象:
|
||||
|
||||
`kubectl annotate --overwrite authconfig azuread management.cattle.io/auth-provider-cleanup='user-locked'`
|
||||
|
||||
在你将注释设置为 `unlocked` 之前,Rancher 不会执行清理。
|
||||
|
||||
### 手动运行资源清理
|
||||
|
||||
即使在你配置了另一个身份认证提供程序,Rancher 也可能会保留 local 集群中已禁用的身份认证提供程序配置的资源。例如,如果你使用 Provider A,然后禁用了它并开始使用 Provider B,当你升级到新版本的 Rancher 时,你可以手动触发对 Provider A 配置的资源的清理。
|
||||
|
||||
要为已禁用的身份认证提供程序手动触发清理,请将带有 `unlocked` 值的 `management.cattle.io/auth-provider-cleanup` 注释添加到 auth 配置中。
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
---
|
||||
title: 身份验证、权限和全局配置
|
||||
---
|
||||
|
||||
安装完成后,[系统管理员](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/manage-role-based-access-control-rbac/global-permissions.md)需要配置 Rancher 来配置身份验证,安全,默认设定,安全策略,驱动和全局 DNS 条目。
|
||||
|
||||
## 首次登录
|
||||
|
||||
首次登录 Rancher 后,Rancher 会提示你输入 **Rancher Server URL**。你需要将 URL 设置为 Rancher Server 的主要入口点。当负载均衡器位于 Rancher Server 集群前面时,URL 需要设置为负载均衡器地址。系统会自动尝试从运行 Rancher Server 的主机的 IP 地址或主机名推断 Rancher Server 的URL,上述推断仅在你运行单节点 Rancher Server 时才正确。因此,在大多数情况下,你需要自己将 Rancher Server 的 URL 设置为正确的值。
|
||||
|
||||
:::danger
|
||||
|
||||
Rancher Server 的 URL 在设置后不可再更新。因此,你需要谨慎设置该 URL。
|
||||
|
||||
:::
|
||||
|
||||
## 身份验证
|
||||
|
||||
Rancher 向 Kubernetes 添加的关键功能之一,就是集中式用户身份验证。此功能允许将本地用户连接到外部身份验证系统,使用该系统的用户和组进行身份验证。
|
||||
|
||||
有关身份验证如何工作及如何设置外部身份认证系统,请参见[身份验证](authentication-config.md)。
|
||||
|
||||
## 授权
|
||||
|
||||
Rancher 通过 _用户_ 进行授权管理。用户的 _授权_ 或系统访问权限由用户角色决定。Rancher 提供了预设角色,让你轻松配置用户对资源的权限,还提供了为每个 Kubernetes 资源定制角色的能力。
|
||||
|
||||
有关授权如何工作及如何自定义角色,请参见 [RBAC](manage-role-based-access-control-rbac.md)。
|
||||
|
||||
## Pod 安全策略
|
||||
|
||||
_Pod 安全策略(PSP)_ 是用来控制安全敏感相关 Pod 规范(例如 root 特权)的对象。如果某个 Pod 不满足 PSP 指定的条件,Kubernetes 将不允许它启动,并在 Rancher 中显示错误消息。
|
||||
|
||||
有关如何创建和使用 PSP,请参见 [Pod 安全策略](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/create-pod-security-policies.md)。
|
||||
|
||||
## 配置驱动
|
||||
|
||||
使用 Rancher 中的驱动,你可以管理可以使用哪些供应商来配置[托管的 Kubernetes 集群](set-up-clusters-from-hosted-kubernetes-providers.md)或[云服务器节点](use-new-nodes-in-an-infra-provider.md),以允许 Rancher 部署和管理 Kubernetes。
|
||||
|
||||
详情请参考[配置驱动](about-provisioning-drivers.md)。
|
||||
|
||||
## 添加 Kubernetes 版本到 Rancher
|
||||
|
||||
你可以通过这个功能,在不升级 Rancher 的情况下,升级到最新发布的 Kubernetes 版本。Kubernetes 倾向于在次要版本删除或新增 API 接口。本功能让你轻松升级 Kubernetes 补丁版本(即 `v1.15.X`),但不升级 Kubernetes 次要版本(即 `v1.X.0`)。
|
||||
|
||||
Rancher 用于配置 [RKE 集群](launch-kubernetes-with-rancher.md) 的信息现在位于 Rancher Kubernetes 元数据中。有关元数据配置以及如何更改用于配置 RKE 集群的 Kubernetes 版本,请参见 [Rancher Kubernetes 元数据。](../getting-started/installation-and-upgrade/upgrade-kubernetes-without-upgrading-rancher.md)
|
||||
|
||||
Rancher 用于配置 [RKE 集群](launch-kubernetes-with-rancher.md)的 Kubernetes 版本信息包含在 Rancher Kubernetes 元数据中。
|
||||
|
||||
有关元数据如何工作以及如何配置元数据,请参见 [Rancher Kubernetes 元数据](../getting-started/installation-and-upgrade/upgrade-kubernetes-without-upgrading-rancher.md)。
|
||||
|
||||
## 启用实验功能
|
||||
|
||||
Rancher 包含一些默认关闭的实验功能。我们引入了功能开关,让你试用这些新功能。详情请参见[功能开关](enable-experimental-features.md)的章节。
|
||||
@@ -0,0 +1,32 @@
|
||||
---
|
||||
title: AWS Marketplace 集成
|
||||
---
|
||||
|
||||
## 概述
|
||||
|
||||
Rancher 提供了与 AWS Marketplace 的集成,允许用户向 SUSE 购买支持。此集成帮助你在需要使用更多集群时轻松调整支持需求。
|
||||
|
||||
## 限制
|
||||
|
||||
- 必须使用 Rancher v2.6.7 或更高版本。
|
||||
- Rancher 必须在启用其他指标的情况下进行部署。
|
||||
- Rancher 必须安装在 EKS 集群上。
|
||||
- 必须通过 AWS Marketplace 购买至少一项 Rancher 支持的 Entitlement。
|
||||
- 你可能需要额外的设置来支持代理/离线用例。有关详细信息,请参阅[先决条件](../integrations-in-rancher/cloud-marketplace/aws-cloud-marketplace/adapter-requirements.md)。
|
||||
|
||||
## 如何使用
|
||||
|
||||
1. 完成[先决条件步骤](../integrations-in-rancher/cloud-marketplace/aws-cloud-marketplace/adapter-requirements.md)。
|
||||
2. [安装 CSP Adapter](../integrations-in-rancher/cloud-marketplace/aws-cloud-marketplace/install-adapter.md)。
|
||||
|
||||
## 常见问题
|
||||
|
||||
**我以后后续再购买更多节点的支持吗?**
|
||||
|
||||
是的。你需要转到最初购买支持的 AWS Marketplace 条目并增加 Entitlement 的数量。
|
||||
|
||||
**我可以在同一个 AWS 账户中使用多个 Rancher 实例吗?**
|
||||
|
||||
是的。但是,安装 Rancher 的每个集群都需要遵守先决条件。
|
||||
|
||||
此外,一个 Entitlement 每次只能由一台 Rancher management server 使用。
|
||||
+113
@@ -0,0 +1,113 @@
|
||||
---
|
||||
title: 备份和灾难恢复
|
||||
keywords: [rancher v2.6 备份还原, rancher v2.6 备份与恢复, 备份恢复 rancher v2.6, 备份和恢复 rancher v2.6]
|
||||
---
|
||||
|
||||
在本节中,你将学习如何创建 Rancher 的备份,如何从备份中恢复 Rancher,以及如何将 Rancher 迁移到新的 Kubernetes 集群。
|
||||
|
||||
`rancher-backup` operator 可以用来备份和恢复任何 Kubernetes 集群上的 Rancher。这个应用是一个 Helm Chart,可以通过 Rancher 的 **Apps & Marketplace**(Rancher v2.6.5 之前的版本)或 **Apps**(Rancher v2.6.5+)页面或使用 Helm CLI 部署。你可以访问[本页面](https://github.com/rancher/charts/tree/release-v2.6/charts/rancher-backup)获取 `rancher-backup` Helm Chart。
|
||||
|
||||
`backup-restore` operator 需要安装在 local 集群上,并且只对 Rancher 应用进行备份。备份和恢复操作仅在本地 Kubernetes 集群中执行。
|
||||
|
||||
|
||||
## 备份和恢复 Docker 安装的 Rancher
|
||||
|
||||
对于使用 Docker 安装的 Rancher,请参见[备份](../how-to-guides/new-user-guides/backup-restore-and-disaster-recovery/back-up-docker-installed-rancher.md)和[恢复](../how-to-guides/new-user-guides/backup-restore-and-disaster-recovery/restore-docker-installed-rancher.md)对 Rancher 进行备份和恢复。
|
||||
|
||||
## 备份和恢复原理
|
||||
|
||||
`rancher-backup` operator 引入了三个自定义资源,分别是 Backups、Restores 和 ResourceSets。将以下集群范围的自定义资源定义添加到集群中:
|
||||
|
||||
- `backups.resources.cattle.io`
|
||||
- `resourcesets.resources.cattle.io`
|
||||
- `restores.resources.cattle.io`
|
||||
|
||||
ResourceSet 定义了需要备份哪些 Kubernetes 资源。由于备份 Rancher 所需的值是预设的,因此 ResourceSet 无法通过 Rancher UI 进行配置。请不要修改此 ResourceSet。
|
||||
|
||||
在创建 Backup 自定义资源时,`rancher-backup` operator 调用 `kube-apiserver` 来获取 Backup 自定义资源引用的 ResourceSet(即预设的 `rancher-resource-set`)资源。
|
||||
|
||||
然后,operator 以 `.tar.gz` 格式创建备份文件,并将其存储在 Backup 资源中配置的位置。
|
||||
|
||||
在创建 Restore 自定义资源时,operator 访问 Restore 指定的 `tar.gz` 备份文件,并从该文件恢复应用。
|
||||
|
||||
你可以使用 Rancher UI 或 `kubectl apply` 来创建 Backup 和 Restore 自定义资源。
|
||||
|
||||
:::note
|
||||
|
||||
请参见[此处](../how-to-guides/new-user-guides/backup-restore-and-disaster-recovery/migrate-rancher-to-new-cluster.md#2-使用-restore-自定义资源来还原备份)获取在 Rancher 2.6.3 中将现有备份文件恢复到 v1.22 集群的帮助。
|
||||
|
||||
:::
|
||||
|
||||
## 安装 rancher-backup operator
|
||||
|
||||
你可以使用 Rancher UI 或 Helm CLI 来安装 `rancher-backup` operator。两种安装方法都将 `rancher-backup` Helm Chart 安装在运行 Rancher Server 的 Kubernetes 集群上。它是集群管理员独有的功能,仅适用于 **local** 集群。(*如果你在 Rancher UI 中没有看到 `rancher-backup`,你可能选择了错误的集群。*)
|
||||
|
||||
:::note
|
||||
|
||||
使用 `backup-restore` operator 执行恢复后,Fleet 中会出现一个已知问题:用于 `clientSecretName` 和 `helmSecretName` 的密文不包含在 Fleet 的 Git 仓库中。请参见[此处](./fleet-gitops-at-scale.md#故障排除)获得解决方法。
|
||||
|
||||
:::
|
||||
|
||||
### 使用 Rancher UI 安装 rancher-backup
|
||||
|
||||
<Tabs groupId="rancher-version">
|
||||
<TabItem value="Rancher v2.6.5+">
|
||||
|
||||
1. 在左上角,单击 **☰ > 集群管理**。
|
||||
1. 在**集群**页面上,转到 `local` 集群并单击 **Explore**。
|
||||
1. 在左侧导航栏中,单击 **Apps > Charts**。
|
||||
1. 点击 **Rancher 备份**。
|
||||
1. 单击**安装**。
|
||||
1. 可选:配置默认存储位置。如需获取帮助,请参见[配置](../reference-guides/backup-restore-configuration/storage-configuration.md)。
|
||||
1. 单击**安装**。
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="Rancher 版本低于 v2.6.5">
|
||||
|
||||
1. 在左上角,单击 **☰ > 集群管理**。
|
||||
1. 在**集群**页面上,转到 `local` 集群并单击 **Explore**。
|
||||
1. 在左侧导航栏中,单击**应用 & 应用市场 > Chart**。
|
||||
1. 点击 **Rancher 备份**。
|
||||
1. 单击**安装**。
|
||||
1. 可选:配置默认存储位置。如需获取帮助,请参见[配置](../reference-guides/backup-restore-configuration/storage-configuration.md)。
|
||||
1. 单击**安装**。
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
**结果**:`rancher-backup` operator 已安装。
|
||||
|
||||
在**集群仪表板**中,你可以看到列在 **Deployments** 下的 `rancher-backup` operator。
|
||||
|
||||
如果需要在 Rancher 中配置备份应用,在左侧导航栏中单击 **Rancher 备份**。
|
||||
|
||||
### RBAC
|
||||
|
||||
只有 Rancher 管理员和本地集群的所有者可以:
|
||||
|
||||
* 安装 Chart
|
||||
* 看到 Backup 和 Restore CRD 的导航链接
|
||||
* 通过分别创建 Backup CR 和 Restore CR 执行备份和恢复
|
||||
* 列出目前已执行的备份和恢复操作
|
||||
|
||||
## 备份 Rancher
|
||||
|
||||
备份是通过创建 Backup 自定义资源实现的。如需查看教程,请参见[本页面](../how-to-guides/new-user-guides/backup-restore-and-disaster-recovery/back-up-rancher.md)。
|
||||
|
||||
## 还原 Rancher
|
||||
|
||||
还原是通过创建 Restore 自定义资源实现的。如需查看教程,请参见[本页面](../how-to-guides/new-user-guides/backup-restore-and-disaster-recovery/restore-rancher.md)。
|
||||
|
||||
## 将 Rancher 迁移到新集群
|
||||
|
||||
你可以按照[这些步骤](../how-to-guides/new-user-guides/backup-restore-and-disaster-recovery/migrate-rancher-to-new-cluster.md)执行迁移。
|
||||
|
||||
## 默认存储位置配置
|
||||
|
||||
配置一个用于保存所有备份的默认存储位置。你可以选择对每个备份进行覆盖,但仅限于使用 S3 或 Minio 对象存储。
|
||||
|
||||
如需了解各个选项的配置,请参见[本页面](../reference-guides/backup-restore-configuration/storage-configuration.md)。
|
||||
|
||||
### rancher-backup Helm Chart 的示例 values.yaml
|
||||
|
||||
当使用 Helm CLI 安装时,可以使用示例 [values.yaml 文件](../reference-guides/backup-restore-configuration/storage-configuration.md#rancher-backup-helm-chart-的示例-valuesyaml) 来配置 `rancher-backup` operator。
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: Rancher 备份配置参考
|
||||
---
|
||||
|
||||
- [备份配置](../reference-guides/backup-restore-configuration/backup-configuration.md)
|
||||
- [还原配置](../reference-guides/backup-restore-configuration/restore-configuration.md)
|
||||
- [存储位置配置](../reference-guides/backup-restore-configuration/storage-configuration.md)
|
||||
- [Backup 和 Restore 自定义资源示例](../reference-guides/backup-restore-configuration/examples.md)
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
title: 最佳实践
|
||||
---
|
||||
|
||||
本节介绍 Rancher 实现的最佳实践,其中包括对 Kubernetes、Docker、容器等技术的使用建议。最佳实践旨在利用 Rancher 及其客户的运营经验,助你更好地实现 Rancher。
|
||||
|
||||
如果你对用例的实际应用有任何疑问,请联系客户成功经理或支持中心。
|
||||
|
||||
你可以在左侧导航栏快速找到管理和部署 Rancher Server 的最佳实践。
|
||||
|
||||
如需查看更多最佳实践指南,请参见:
|
||||
|
||||
- [安全类文档](rancher-security.md)
|
||||
- [Rancher 博客](https://www.suse.com/c/rancherblog/)
|
||||
- [Rancher 论坛](https://forums.rancher.com/)
|
||||
- [Rancher 用户的 Slack 群组](https://slack.rancher.io/)
|
||||
- [B 站](https://space.bilibili.com/430496045/)
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
---
|
||||
title: 生产就绪集群检查清单
|
||||
---
|
||||
|
||||
本节将介绍创建生产就绪型 Kubernetes 集群的最佳实践。这个集群可用于运行你的应用和服务。
|
||||
|
||||
有关集群的要求(包括对 OS/Docker、硬件和网络的要求),请参阅[节点要求](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/node-requirements-for-rancher-managed-clusters.md)。
|
||||
|
||||
本文介绍了我们推荐用于所有生产集群的最佳实践的简短列表。
|
||||
|
||||
如需获取推荐的所有最佳实践的完整列表,请参阅[最佳实践](best-practices.md)。
|
||||
|
||||
### 节点要求
|
||||
|
||||
* 确保你的节点满足所有[节点要求](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/node-requirements-for-rancher-managed-clusters.md),包括端口要求。
|
||||
|
||||
### 备份 etcd
|
||||
|
||||
* 启用 etcd 快照。验证是否正在创建快照,并执行灾难恢复方案,从而验证快照是否有效。etcd 是存储集群状态的位置,丢失 etcd 数据意味着丢失集群。因此,请确保为集群配置 etcd 的定期快照,并确保快照也是存储在外部(节点外)的。
|
||||
|
||||
### 集群架构
|
||||
|
||||
* 节点应具有以下角色配置之一:
|
||||
* `etcd`
|
||||
* `controlplane`
|
||||
* `etcd` 和 `controlplane`
|
||||
* `worker`(不应在具有 `etcd` 或 `controlplane` 角色的节点上使用或添加 `worker` 角色)
|
||||
* 至少拥有三个角色为 `etcd` 的节点,来确保失去一个节点时仍能存活。增加 etcd 节点数量能提高容错率,而将 etcd 分散到不同可用区甚至能获取更好的容错能力。
|
||||
* 为两个或更多节点分配 `controlplane` 角色,能实现主组件的高可用性。
|
||||
* 为两个或多个节点分配 `worker` 角色,以便在节点故障时重新安排工作负载。
|
||||
|
||||
有关每个角色的用途的更多信息,请参阅 [Kubernetes 中的节点角色](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/checklist-for-production-ready-clusters/roles-for-nodes-in-kubernetes.md)。
|
||||
|
||||
有关每个 Kubernetes 角色的节点数的详细信息,请参阅[推荐架构](../reference-guides/rancher-manager-architecture/architecture-recommendations.md)。
|
||||
|
||||
### Logging 和 Monitoring
|
||||
|
||||
* 为 Kubernetes 组件(系统服务)配置告警/通知程序。
|
||||
* 为集群分析和事后剖析配置 Logging。
|
||||
|
||||
### 可靠性
|
||||
|
||||
* 在集群上执行负载测试,以验证硬件是否可以支持你的工作负载。
|
||||
|
||||
### 网络
|
||||
|
||||
* 最小化网络延迟。Rancher 建议尽量减少 etcd 节点之间的延迟。`heartbeat-interval` 的默认设置是 `500`,`election-timeout` 的默认设置是 `5000`。这些 [etcd 调优设置](https://etcd.io/docs/v3.5/tuning/) 允许 etcd 在大多数网络(网络延迟特别高的情况下除外)中运行。
|
||||
* 集群节点应位于单个区域内。大多数云厂商在一个区域内提供多个可用区,这可以提高你集群的可用性。任何角色的节点都可以使用多个可用区。如果你使用 [Kubernetes Cloud Provider](set-up-cloud-providers.md) 资源,请查阅文档以了解限制(即区域存储限制)。
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
title: CIS 扫描指南
|
||||
---
|
||||
|
||||
- [安装 rancher-cis-benchmark](../how-to-guides/advanced-user-guides/cis-scan-guides/install-rancher-cis-benchmark.md)
|
||||
- [卸载 rancher-cis-benchmark](../how-to-guides/advanced-user-guides/cis-scan-guides/uninstall-rancher-cis-benchmark.md)
|
||||
- [运行扫描](../how-to-guides/advanced-user-guides/cis-scan-guides/run-a-scan.md)
|
||||
- [定期运行扫描](../how-to-guides/advanced-user-guides/cis-scan-guides/run-a-scan-periodically-on-a-schedule.md)
|
||||
- [跳过测试](../how-to-guides/advanced-user-guides/cis-scan-guides/skip-tests.md)
|
||||
- [查看报告](../how-to-guides/advanced-user-guides/cis-scan-guides/view-reports.md)
|
||||
- [为 rancher-cis-benchmark 启用告警](../how-to-guides/advanced-user-guides/cis-scan-guides/enable-alerting-for-rancher-cis-benchmark.md)
|
||||
- [为定时扫描配置告警](../how-to-guides/advanced-user-guides/cis-scan-guides/configure-alerts-for-periodic-scan-on-a-schedule.md)
|
||||
- [创建要运行的自定义 Benchmark 版本](../how-to-guides/advanced-user-guides/cis-scan-guides/create-a-custom-benchmark-version-to-run.md)
|
||||
@@ -0,0 +1,108 @@
|
||||
---
|
||||
title: CIS 扫描
|
||||
---
|
||||
|
||||
Rancher 可以通过运行安全扫描来检查 Kubernetes 是否按照 CIS Kubernetes Benchmark 中定义的安全最佳实践进行部署。CIS 扫描可以运行在任何 Kubernetes 集群,包括托管的 Kubernetes,例如 EKS、AKS 和 GKE。
|
||||
|
||||
`rancher-cis-benchmark` 应用使用了 <a href="https://github.com/aquasecurity/kube-bench" target="_blank">kube-bench</a> ,这是 Aqua Security 的开源工具,用于检查集群是否符合 CIS Kubernetes Benchmark。此外,为了生成集群级别的报告,此应用使用了 <a href="https://github.com/vmware-tanzu/sonobuoy" target="_blank">Sonobuoy</a> 来聚合报告。
|
||||
|
||||
|
||||
## 关于 CIS Benchmark
|
||||
|
||||
CIS(Center for Internet Security)是一个 501(c\)(3) 非营利组织,成立于 2000 年 10 月,其使命是识别、开发、验证、促进和维持网络防御的最佳实践方案,并建立和指导社区,以在网络空间中营造信任的环境。该组织总部位于纽约东格林布什,其成员包括大公司、政府机构和学术机构。
|
||||
|
||||
CIS Benchmark 是目标系统安全配置的最佳实践。CIS Benchmark 是由安全专家、技术供应商、公开和私人社区成员,以及 CIS Benchmark 开发团队共同志愿开发的。
|
||||
|
||||
你可以访问 CIS 网站获取官方的 Benchmark 文件。要通过注册来访问文件,请前往
|
||||
<a href="https://learn.cisecurity.org/benchmarks" target="_blank">这里</a>。
|
||||
|
||||
## 关于生成的报告
|
||||
|
||||
每次扫描都会生成一份报告,你可以在 Rancher UI 中查看该报告,并以 CSV 格式下载它。
|
||||
|
||||
默认情况下使用 CIS Benchmark v1.6。
|
||||
|
||||
Benchmark 版本包含在生成的报告中。
|
||||
|
||||
Benchmark 提供两种类型的建议,分别是自动(Automated)和手动(Manual)。Benchmark 中标记为 Manual 的建议不包含在生成的报告中。
|
||||
|
||||
一些测试会被标记为“不适用”。由于 Rancher 配置 RKE 集群的方式,这些测试不会在任何 CIS 扫描中运行。有关如何审核测试结果,以及为什么某些测试会被标记为不适用,请参阅 Rancher 的 Kubernetes 对应版本的[自测指南](./rancher-security.md#cis-benchmark-和自我评估)。
|
||||
|
||||
该报告包含以下信息:
|
||||
|
||||
| 报告中的列 | 描述 |
|
||||
|------------------|-------------|
|
||||
| `id` | CIS Benchmark 的 ID 号。 |
|
||||
| `description` | CIS Benchmark 测试的描述。 |
|
||||
| `remediation` | 为了通过测试需要修复的内容。 |
|
||||
| `state` | 测试的状态,可以是通过、失败、跳过或不适用。 |
|
||||
| `node_type` | 节点角色,角色决定了在节点上运行的测试。主测试在 controlplane 节点上运行,etcd 测试在 etcd 节点上运行,节点测试在 Worker 节点上运行。 |
|
||||
| `audit` | 这是 `kube-bench` 为此测试运行的审计检查。 |
|
||||
| `audit_config` | 适用于审计脚本的任何配置。 |
|
||||
| `test_info` | `kube-bench` 报告的测试相关信息(如果存在)。 |
|
||||
| `commands` | `kube-bench` 报告的测试相关的命令(如果存在)。 |
|
||||
| `config_commands` | `kube-bench` 报告的测试相关的配置数据(如果存在)。 |
|
||||
| `actual_value` | 测试的实际值。如果由 `kube-bench` 报告,则会显示。 |
|
||||
| `expected_result` | 测试的预期值。如果由 `kube-bench` 报告,则会显示。 |
|
||||
|
||||
请参阅[集群加固指南中的表格](./rancher-security.md),以了解 Kubernetes、Benchmark、Rancher 以及我们的集群强化指南的版本对应关系。另外,请参阅强化指南,以获取符合 CIS 的集群的配置文件以及修复失败测试的信息。
|
||||
|
||||
## 测试配置文件
|
||||
|
||||
以下是可用的配置文件:
|
||||
|
||||
- Generic CIS 1.5
|
||||
- Generic CIS 1.6
|
||||
- RKE permissive 1.5
|
||||
- RKE hardened 1.5
|
||||
- RKE permissive 1.6
|
||||
- RKE hardened 1.6
|
||||
- RKE2 permissive 1.5
|
||||
- RKE2 hardened 1.5
|
||||
- RKE2 permissive 1.6
|
||||
- RKE2 hardened 1.6
|
||||
- AKS
|
||||
- EKS
|
||||
- GKE
|
||||
|
||||
你还可以通过保存一组要跳过的测试来自定义配置文件。
|
||||
|
||||
所有配置文件都会有一组不适用的测试,CIS 扫描会跳过这些测试。RKE 集群管理 Kubernetes 的方式导致这些测试被认为不适用。
|
||||
|
||||
RKE 集群扫描配置文件有两种类型:
|
||||
|
||||
- **Permissive**:此配置文件有一组要跳过的测试,跳过的原因是这些测试会在默认的 RKE Kubernetes 集群上失败。除了跳过的测试列表之外,配置文件也不会运行不适用的测试。
|
||||
- **Hardened**:此配置文件不会跳过任何测试(不适用的测试除外)。
|
||||
|
||||
EKS 和 GKE 集群扫描的配置文件基于这些集群类型特定的 CIS Benchmark 版本。
|
||||
|
||||
要通过 “Hardened” 配置文件,你需要遵从[强化指南](./rancher-security.md#rancher-强化指南)并使用强化指南中定义的 `cluster.yml` 来配置一个强化集群。
|
||||
|
||||
默认配置文件和支持的 CIS Benchmark 版本取决于扫描的集群类型:
|
||||
|
||||
`rancher-cis-benchmark` 支持 CIS 1.6 Benchmark 版本。
|
||||
|
||||
- RKE Kubernetes 集群默认使用 RKE Permissive 1.6 配置文件。
|
||||
- EKS 和 GKE 有自己的 CIS Benchmark,由 `kube-bench` 发布。这些集群默认使用相应的测试配置文件。
|
||||
- RKE2 Kubernetes 集群默认使用 RKE2 Permissive 1.6 配置文件。
|
||||
- RKE、RKE2、EKS 和 GKE 以外的集群类型默认使用 Generic CIS 1.5 配置文件。
|
||||
|
||||
## 跳过和不适用的测试
|
||||
|
||||
有关要跳过和不适用的测试列表,请参阅[此页面](../how-to-guides/advanced-user-guides/cis-scan-guides/skip-tests.md)。
|
||||
|
||||
目前,只有用户定义的跳过测试会在生成报告中标记为跳过。
|
||||
|
||||
如果某个默认配置文件将某个测试定义为跳过,则该测试也会标记为不适用。
|
||||
|
||||
## RBAC
|
||||
|
||||
有关权限的详细信息,请参阅[此页面](../integrations-in-rancher/cis-scans/rbac-for-cis-scans.md)。
|
||||
|
||||
## 配置
|
||||
|
||||
有关为扫描、配置文件和 Benchmark 版本配置自定义资源的更多信息,请参阅[此页面](../integrations-in-rancher/cis-scans/configuration-reference.md)。
|
||||
|
||||
## 操作指南
|
||||
|
||||
请参阅[此处](../pages-for-subheaders/cis-scan-guides.md)了解 CIS 扫描的操作指南。
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: Rancher CLI
|
||||
---
|
||||
|
||||
Rancher CLI 是一个命令行工具,用于在工作站中与 Rancher 进行交互。以下文档将描述 [Rancher CLI](../reference-guides/cli-with-rancher/rancher-cli.md) 和 [kubectl Utility](../reference-guides/cli-with-rancher/kubectl-utility.md)。
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: 云市场集成
|
||||
---
|
||||
|
||||
Rancher 提供与云市场的集成,让你能轻松购买云提供商上的安装支持。此外,该集成还支持生成 supportconfig bundle,你可以将该 bundle 提供给 Rancher。
|
||||
|
||||
从 Rancher 2.6.7 开始,此集成仅支持 AWS。
|
||||
@@ -0,0 +1,29 @@
|
||||
---
|
||||
title: 集群配置
|
||||
---
|
||||
|
||||
使用 Rancher 配置 Kubernetes 集群后,你仍然可以编辑集群的选项和设置。
|
||||
|
||||
有关编辑集群成员资格的信息,请转至[此页面](../how-to-guides/new-user-guides/manage-clusters/access-clusters/add-users-to-clusters.md)。
|
||||
|
||||
### 集群配置参考
|
||||
|
||||
集群配置选项取决于 Kubernetes 集群的类型:
|
||||
|
||||
- [RKE 集群配置](../reference-guides/cluster-configuration/rancher-server-configuration/rke1-cluster-configuration.md)
|
||||
- [RKE2 集群配置](../reference-guides/cluster-configuration/rancher-server-configuration/rke2-cluster-configuration.md)
|
||||
- [K3s 集群配置](../reference-guides/cluster-configuration/rancher-server-configuration/k3s-cluster-configuration.md)
|
||||
- [EKS 集群配置](../reference-guides/cluster-configuration/rancher-server-configuration/eks-cluster-configuration.md)
|
||||
- [GKE 集群配置](gke-cluster-configuration.md)
|
||||
- [AKS 集群配置](../reference-guides/cluster-configuration/rancher-server-configuration/aks-cluster-configuration.md)
|
||||
|
||||
### 不同类型集群的管理功能
|
||||
|
||||
对于已有集群而言,可提供的选项和设置取决于你配置集群的方法。
|
||||
|
||||
下表总结了每一种类型的集群和对应的可编辑的选项和设置:
|
||||
|
||||
import ClusterCapabilitiesTable from '../shared-files/_cluster-capabilities-table.md';
|
||||
|
||||
<ClusterCapabilitiesTable />
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
---
|
||||
title: 配置选项
|
||||
---
|
||||
|
||||
### Egress 支持
|
||||
|
||||
默认情况下,Egress 网关是禁用的,但你可以在安装或升级时使用 values.yaml 或[覆盖文件](#覆盖文件)启用它。
|
||||
|
||||
### 启用自动 Sidecar 注入
|
||||
|
||||
默认情况下,自动 sidecar 注入是禁用的。要启用此功能,请在安装或升级时在 values.yaml 中设置 `sidecarInjectorWebhook.enableNamespacesByDefault=true`。这会自动将 Istio sidecar 注入到所有已部署的新命名空间。
|
||||
|
||||
### 覆盖文件
|
||||
|
||||
覆盖文件用于为 Istio 进行更广泛的配置。它允许你更改 [IstioOperator API](https://istio.io/latest/docs/reference/config/istio.operator.v1alpha1/) 中可用的任何值。你可以自定义默认安装以满足你的需求。
|
||||
|
||||
覆盖文件将在 Istio Chart 默认安装的基础上添加配置。换言之,你不需要为安装中已定义的组件进行重新定义。
|
||||
|
||||
有关覆盖文件的更多信息,请参阅 [Istio 文档](https://istio.io/latest/docs/setup/install/istioctl/#configure-component-settings)。
|
||||
|
||||
### 选择器和抓取配置
|
||||
|
||||
Monitoring 应用设置了 `prometheus.prometheusSpec.ignoreNamespaceSelectors=false`,即在默认情况下跨所有命名空间进行监控。这样,你可以查看部署在具有 `istio-injection=enabled` 标签的命名空间中的资源的流量、指标和图。
|
||||
|
||||
如果你想将 Prometheus 限制为特定的命名空间,请设置 `prometheus.prometheusSpec.ignoreNamespaceSelectors=true`。完成此操作后,你需要添加其他配置来继续监控你的资源。
|
||||
|
||||
详情请参阅[本节](../integrations-in-rancher/istio/configuration-options/selectors-and-scrape-configurations.md)。
|
||||
|
||||
### 在具有 Pod 安全策略的情况下启用 Istio
|
||||
|
||||
详情请参阅[本节](../integrations-in-rancher/istio/configuration-options/pod-security-policies.md)。
|
||||
|
||||
### 在 RKE2 集群上安装 Istio 的其他步骤
|
||||
|
||||
详情请参阅[本节](../integrations-in-rancher/istio/configuration-options/install-istio-on-rke2-cluster.md)。
|
||||
|
||||
### 项目网络隔离的其他步骤
|
||||
|
||||
详情请参阅[本节](../integrations-in-rancher/istio/configuration-options/project-network-isolation.md)。
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
---
|
||||
title: 配置 Microsoft AD FS (SAML)
|
||||
---
|
||||
|
||||
如果你的组织使用 Microsoft 联合身份验证服务 (AD FS) 进行用户身份验证,你可以通过配置 Rancher 来允许用户使用 AD FS 凭证登录。
|
||||
|
||||
## 先决条件
|
||||
|
||||
已安装 Rancher。
|
||||
|
||||
- 获取你的 Rancher Server URL。配置 AD FS 时,请使用该 URL 替换 `<RANCHER_SERVER>` 占位符。
|
||||
- 你的 Rancher 必须具有全局管理员账号。
|
||||
|
||||
你必须配置 [Microsoft AD FS 服务器](https://docs.microsoft.com/en-us/windows-server/identity/active-directory-federation-services)。
|
||||
|
||||
- 获取你的 AD FS 服务器 IP/DNS 名称。配置 AD FS 时,请使用该 IP/DNS 名称替换 `<AD_SERVER>` 占位符。
|
||||
- 你必须有在 AD FS 服务器上添加 [Relying Party Trusts](https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/operations/create-a-relying-party-trust) 的权限。
|
||||
|
||||
## 配置概要
|
||||
|
||||
要让 Rancher Server 使用 Microsoft AD FS,你需要在 Active Directory 服务器上配置 AD FS,并将 Rancher 配置为使用 AD FS 服务器。如果需要获取在 Rancher 中设置 Microsoft AD FS 身份验证的指南,请参见:
|
||||
|
||||
- [1. 在 Microsoft AD FS 中配置 Rancher](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/configure-microsoft-ad-federation-service-saml/configure-ms-adfs-for-rancher.md)
|
||||
- [2. 在 Rancher 中配置 Microsoft AD FS](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/configure-microsoft-ad-federation-service-saml/configure-rancher-for-ms-adfs.md)
|
||||
|
||||
:::note SAML 身份提供商注意事项
|
||||
|
||||
- SAML 协议不支持搜索或查找用户或组。因此,将用户或组添加到 Rancher 时不会对其进行验证。
|
||||
- 添加用户时,必须正确输入确切的用户 ID(即 `UID` 字段)。键入用户 ID 时,将不会搜索可能匹配的其他用户 ID。
|
||||
- 添加组时,必须从文本框旁边的下拉列表中选择组。Rancher 假定来自文本框的任何输入都是用户。
|
||||
- 用户组下拉列表仅显示你所属的用户组。如果你不是某个组的成员,你将无法添加该组。
|
||||
|
||||
:::
|
||||
|
||||
|
||||
### 后续操作
|
||||
|
||||
[在 Microsoft AD FS 中配置 Rancher](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/configure-microsoft-ad-federation-service-saml/configure-ms-adfs-for-rancher.md)
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
title: 配置 OpenLDAP
|
||||
---
|
||||
|
||||
如果你的组织使用 LDAP 进行用户身份验证,则可以配置 Rancher 与 OpenLDAP 服务器通信,从而对用户进行身份验证。这使 Rancher 管理员可以对外部用户系统中的用户和组进行集群和项目的访问控制,同时允许最终用户在登录 Rancher UI 时使用 LDAP 凭证进行身份验证。
|
||||
|
||||
## 先决条件
|
||||
|
||||
必须为 Rancher 配置 LDAP 绑定账号(即 ServiceAccount),来搜索和检索应该具有访问权限的用户和组的 LDAP 条目。建议不要使用管理员账号或个人账号,而应在 OpenLDAP 中创建一个专用账号,该账号对配置的搜索库下的用户和组需要具有只读权限(参见下文)。
|
||||
|
||||
> **使用 TLS?**
|
||||
>
|
||||
> 如果 OpenLDAP 服务器使用的证书是自签名的或不是来自认可的证书颁发机构,请确保手头有 PEM 格式的 CA 证书(包含所有中间证书)。你必须在配置期间粘贴此证书,以便 Rancher 能够验证证书链。
|
||||
|
||||
## 在 Rancher 中配置 OpenLDAP
|
||||
|
||||
配置 OpenLDAP 服务器,组和用户的设置。有关填写每个字段的帮助,请参见[配置参考](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/configure-openldap/openldap-config-reference.md)。
|
||||
|
||||
> 在开始之前,请熟悉[外部身份验证配置和主体用户](authentication-config.md#外部身份验证配置和用户主体)的概念。
|
||||
|
||||
1. 在左上角,单击 **☰ > 用户 & 认证**。
|
||||
1. 在左侧导航栏,单击**认证**。
|
||||
1. 单击 **OpenLDAP**。填写**配置 OpenLDAP 服务器**表单。
|
||||
1. 点击**启用**。
|
||||
|
||||
### 测试身份验证
|
||||
|
||||
完成配置后,请测试与 OpenLDAP 服务器的连接。如果测试成功,则表明 OpenLDAP 身份验证已启用。
|
||||
|
||||
:::note
|
||||
|
||||
与此步骤中输入的凭证相关的 OpenLDAP 用户将映射到本地主体账号,并在 Rancher 中分配系统管理员权限。因此,你应该决定使用哪个 OpenLDAP 账号来执行此步骤。
|
||||
|
||||
:::
|
||||
|
||||
1. 输入应映射到本地主体账号的 OpenLDAP 账号的**用户名**和**密码** 。
|
||||
2. 点击**启用 OpenLDAP 认证**来测试 OpenLDAP 的连接并完成设置。
|
||||
|
||||
**结果**:
|
||||
|
||||
- OpenLDAP 验证配置成功。
|
||||
- 与输入凭证对应的 LDAP 用户被映射到本地主体(管理员)账号。
|
||||
|
||||
:::note
|
||||
|
||||
如果 LDAP 服务中断,你仍然可以使用本地配置的 `admin` 账号和密码登录。
|
||||
|
||||
:::
|
||||
|
||||
## 附录:故障排除
|
||||
|
||||
如果在测试与 OpenLDAP 服务器的连接时遇到问题,请首先仔细检查为 ServiceAccount 输入的凭证以及搜索库配置。你还可以检查 Rancher 日志来查明问题的原因。调试日志可能包含有关错误的更详细信息。详情请参见[如何启用调试日志](../faq/technical-items.md#如何启用调试日志记录)。
|
||||
@@ -0,0 +1,101 @@
|
||||
---
|
||||
title: 配置 Shibboleth (SAML)
|
||||
---
|
||||
|
||||
如果你的组织使用 Shibboleth Identity Provider (IdP)) 进行用户身份验证,你可以通过配置 Rancher 来允许用户使用 Shibboleth 凭证登录。
|
||||
|
||||
在此配置中,当 Rancher 用户登录时,他们将被重定向到 Shibboleth IdP 来输入凭证。身份验证结束后,他们将被重定向回 Rancher UI。
|
||||
|
||||
如果你将 OpenLDAP 配置为 Shibboleth 的后端,SAML 断言会返回到 Rancher,其中包括用于引用组的用户属性。然后,通过身份验证的用户将能够访问其所在的组有权访问的 Rancher 资源。
|
||||
|
||||
> 本节假定你已了解 Rancher,Shibboleth 和 OpenLDAP 是如何协同工作的。有关工作原理的详细说明,请参见[本页](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/configure-shibboleth-saml/about-group-permissions.md)。
|
||||
|
||||
|
||||
## 在 Rancher 中设置 Shibboleth
|
||||
|
||||
### Shibboleth 先决条件
|
||||
>
|
||||
> - 你必须配置了 Shibboleth IdP 服务器。
|
||||
> - 以下是 Rancher Service Provider 配置所需的 URL:
|
||||
> 元数据 URL:`https://<rancher-server>/v1-saml/shibboleth/saml/metadata`
|
||||
> 断言使用者服务 (ACS) URL:`https://<rancher-server>/v1-saml/shibboleth/saml/acs`
|
||||
> - 从 IdP 服务器导出 `metadata.xml` 文件。详情请参见 [Shibboleth 文档](https://wiki.shibboleth.net/confluence/display/SP3/Home)。
|
||||
|
||||
### 在 Rancher 中配置 Shibboleth
|
||||
|
||||
如果你的组织使用 Shibboleth 进行用户身份验证,你可以通过配置 Rancher 来允许你的用户使用 IdP 凭证登录。
|
||||
|
||||
1. 在左上角,单击 **☰ > 用户 & 认证**。
|
||||
1. 在左侧导航栏,单击**认证**。
|
||||
1. 单击 **Shibboleth**。
|
||||
1. 填写**配置 Shibboleth 账号**表单。Shibboleth IdP 允许你指定要使用的数据存储。你可以添加数据库或使用现有的 ldap 服务器。例如,如果你选择 Active Directory (AD) 服务器,下面的示例将描述如何将 AD 属性映射到 Rancher 中的字段:
|
||||
|
||||
1. **显示名称字段**:包含用户显示名称的 AD 属性(例如:`displayName`)。
|
||||
|
||||
1. **用户名字段**:包含用户名/给定名称的 AD 属性(例如:`givenName`)。
|
||||
|
||||
1. **UID 字段**:每个用户唯一的 AD 属性(例如:`sAMAccountName`、`distinguishedName`)。
|
||||
|
||||
1. **用户组字段**: 创建用于管理组成员关系的条目(例如:`memberOf`)。
|
||||
|
||||
1. **Rancher API 主机**:你的 Rancher Server 的 URL。
|
||||
|
||||
1. **私钥**和**证书**:密钥/证书对,用于在 Rancher 和你的 IdP 之间创建一个安全外壳(SSH)。
|
||||
|
||||
你可以使用 openssl 命令进行创建。例如:
|
||||
|
||||
```
|
||||
openssl req -x509 -newkey rsa:2048 -keyout myservice.key -out myservice.cert -days 365 -nodes -subj "/CN=myservice.example.com"
|
||||
```
|
||||
1. **IDP 元数据**:从 IdP 服务器导出的 `metadata.xml` 文件。
|
||||
|
||||
|
||||
1. 完成**配置 Shibboleth 账号**表单后,单击**启用**。
|
||||
|
||||
Rancher 会将你重定向到 IdP 登录页面。输入使用 Shibboleth IdP 进行身份验证的凭证,来验证你的 Rancher Shibboleth 配置。
|
||||
|
||||
:::note
|
||||
|
||||
你可能需要禁用弹出窗口阻止程序才能看到 IdP 登录页面。
|
||||
|
||||
:::
|
||||
|
||||
**结果**:已将 Rancher 配置为使用 Shibboleth。你的用户现在可以使用 Shibboleth 登录名登录 Rancher。
|
||||
|
||||
### SAML 提供商注意事项
|
||||
|
||||
SAML 协议不支持用户或用户组的搜索或查找。因此,如果你没有为 Shibboleth 配置 OpenLDAP,则请留意以下警告。
|
||||
|
||||
- 在 Rancher 中为用户或组分配权限时,不会对用户或组进行验证。
|
||||
- 添加用户时,必须正确输入准确的用户 ID(即 UID 字段)。在你输入用户 ID 时,将不会搜索可能匹配的其他用户 ID。
|
||||
- 添加组时,必须从文本框旁边的下拉列表中选择组。Rancher 假定来自文本框的任何输入都是用户。
|
||||
- 用户组下拉列表仅显示你所属的用户组。如果你不是某个组的成员,你将无法添加该组。
|
||||
|
||||
要在 Rancher 中分配权限时启用搜索组,你需要为支持组的 SAML 身份验证提供商配置后端(例如 OpenLDAP)。
|
||||
|
||||
## 在 Rancher 中设置 OpenLDAP
|
||||
|
||||
如果你将 OpenLDAP 配置为 Shibboleth 的后端,SAML 断言会返回到 Rancher,其中包括用于引用组的用户属性。然后,通过身份验证的用户将能够访问其所在的组有权访问的 Rancher 资源。
|
||||
|
||||
### OpenLDAP 先决条件
|
||||
|
||||
必须为 Rancher 配置 LDAP 绑定账号(即 ServiceAccount),来搜索和检索应该具有访问权限的用户和组的 LDAP 条目。建议不要使用管理员账号或个人账号,而应在 OpenLDAP 中创建一个专用账号,该账号对配置的搜索库下的用户和组需要具有只读权限(参见下文)。
|
||||
|
||||
> **使用 TLS?**
|
||||
>
|
||||
> 如果 OpenLDAP 服务器使用的证书是自签名的或不是来自认可的证书颁发机构,请确保手头有 PEM 格式的 CA 证书(包含所有中间证书)。你必须在配置期间粘贴此证书,以便 Rancher 能够验证证书链。
|
||||
|
||||
### 在 Rancher 中配置 OpenLDAP
|
||||
|
||||
配置 OpenLDAP 服务器,组和用户的设置。有关填写每个字段的帮助,请参见[配置参考](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/configure-openldap/openldap-config-reference.md)。请注意,嵌套组成员资格不适用于 Shibboleth。
|
||||
|
||||
> 在开始之前,请熟悉[外部身份验证配置和主体用户](authentication-config.md#外部身份验证配置和用户主体)的概念。
|
||||
|
||||
1. 使用初始的本地 `admin` 账号登录到 Rancher UI。
|
||||
1. 在左上角,单击 **☰ > 用户 & 认证**。
|
||||
1. 在左侧导航栏,单击**认证**。
|
||||
1. 单击 **OpenLDAP**。将显示**配置 OpenLDAP 服务器**表单。
|
||||
|
||||
## 故障排除
|
||||
|
||||
如果在测试与 OpenLDAP 服务器的连接时遇到问题,请首先仔细检查为 ServiceAccount 输入的凭证以及搜索库配置。你还可以检查 Rancher 日志来查明问题的原因。调试日志可能包含有关错误的更详细信息。详情请参见[如何启用调试日志](../faq/technical-items.md#如何启用调试日志记录)。
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
---
|
||||
title: "Kubernetes 持久存储:卷和存储类"
|
||||
description: "了解在 Kubernetes 中创建持久存储的两种方式:持久卷和存储类"
|
||||
---
|
||||
|
||||
在部署需要保留数据的应用时,你需要创建持久存储。持久存储允许你在运行应用的 pod 之外存储应用数据。即使运行应用的 pod 发生故障,这种存储方式也能让你保留应用数据。
|
||||
|
||||
本文假设你已了解 Kubernetes 的持久卷、持久卷声明和存储类的概念。如需更多信息,请参阅[存储的工作原理](../how-to-guides/new-user-guides/manage-clusters/create-kubernetes-persistent-storage/manage-persistent-storage/about-persistent-storage.md)。
|
||||
|
||||
### 先决条件
|
||||
|
||||
设置持久存储需要`管理卷`的[角色](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/manage-role-based-access-control-rbac/cluster-and-project-roles.md#项目角色参考)。
|
||||
|
||||
如果你要为云集群配置存储,则存储和集群主机必须使用相同的云提供商。
|
||||
|
||||
要使用 Rancher 配置新存储,则必须启用云提供商。有关启用云提供商的详细信息,请参阅[此页面](../pages-for-subheaders/set-up-cloud-providers.md)。
|
||||
|
||||
如果要将现有的持久存储连接到集群,则不需要启用云提供商。
|
||||
|
||||
### 设置现有存储
|
||||
|
||||
设置现有存储的总体流程如下:
|
||||
|
||||
1. 设置你的持久存储。可以是云存储或你自己的存储。
|
||||
2. 添加引用持久存储的持久卷 (PV)。
|
||||
3. 添加引用 PV 的持久卷声明 (PVC)。
|
||||
4. 将 PVC 挂载为工作负载中的卷。
|
||||
|
||||
有关详细信息和先决条件,请参阅[此页面](../how-to-guides/new-user-guides/manage-clusters/create-kubernetes-persistent-storage/manage-persistent-storage/set-up-existing-storage.md)。
|
||||
|
||||
### 在 Rancher 中动态配置新存储
|
||||
|
||||
配置新存储的总体流程如下:
|
||||
|
||||
1. 添加一个 StorageClass 并将它配置为使用你的存储提供商。StorageClass 可以引用云存储或你自己的存储。
|
||||
2. 添加引用存储类的持久卷声明 (PVC)。
|
||||
3. 将 PVC 挂载为工作负载的卷。
|
||||
|
||||
有关详细信息和先决条件,请参阅[此页面](../how-to-guides/new-user-guides/manage-clusters/create-kubernetes-persistent-storage/manage-persistent-storage/dynamically-provision-new-storage.md)。
|
||||
|
||||
### Longhorn 存储
|
||||
|
||||
[Longhorn](https://longhorn.io/) 是一个轻量级、可靠、易用的 Kubernetes 分布式块存储系统。
|
||||
|
||||
Longhorn 是免费的开源软件。Longhorn 最初由 Rancher Labs 开发,现在正在作为云原生计算基金会的沙盒项目进行开发。它可以通过 Helm、kubectl 或 Rancher UI 安装在任何 Kubernetes 集群上。
|
||||
|
||||
如果你有块存储池,Longhorn 可以帮助你为 Kubernetes 集群提供持久存储,而无需依赖云提供商。有关 Longhorn 功能的更多信息,请参阅[文档](https://longhorn.io/docs/latest/what-is-longhorn/)。
|
||||
|
||||
Rancher v2.5 简化了在 Rancher 管理的集群上安装 Longhorn 的过程。详情请参见[本页面](../integrations-in-rancher/longhorn.md)。
|
||||
|
||||
### 配置存储示例
|
||||
|
||||
我们提供了如何使用 [NFS、](../how-to-guides/new-user-guides/manage-clusters/provisioning-storage-examples/nfs-storage.md) [vSphere](../how-to-guides/new-user-guides/manage-clusters/provisioning-storage-examples/vsphere-storage.md) 和 [Amazon EBS](../how-to-guides/new-user-guides/manage-clusters/provisioning-storage-examples/persistent-storage-in-amazon-ebs.md) 来配置存储的示例。
|
||||
|
||||
### GlusterFS 卷
|
||||
|
||||
在将数据存储在 GlusterFS 卷上的集群中,你可能会遇到重启 `kubelet` 后 pod 无法挂载卷的问题。有关避免此情况发生的详细信息,请参阅[此页面](../how-to-guides/new-user-guides/manage-clusters/create-kubernetes-persistent-storage/manage-persistent-storage/about-glusterfs-volumes.md)。
|
||||
|
||||
### iSCSI 卷
|
||||
|
||||
在将数据存储在 iSCSI 卷上的 [Rancher 启动的 Kubernetes 集群](../pages-for-subheaders/launch-kubernetes-with-rancher.md)中,你可能会遇到 kubelet 无法自动连接 iSCSI 卷的问题。有关解决此问题的详细信息,请参阅[此页面](../how-to-guides/new-user-guides/manage-clusters/create-kubernetes-persistent-storage/manage-persistent-storage/install-iscsi-volumes.md)。
|
||||
|
||||
### hostPath 卷
|
||||
在创建 hostPath 卷之前,你需要在集群配置中设置 [extra_bind](https://rancher.com/docs/rke/latest/en/config-options/services/services-extras/#extra-binds/)。这会将路径作为卷安装在你的 kubelet 中,可用于工作负载中的 hostPath 卷。
|
||||
|
||||
### 将 vSphere Cloud Provider 从树内迁移到树外
|
||||
|
||||
Kubernetes 正在逐渐不在树内维护云提供商。vSphere 有一个树外云提供商,可通过安装 vSphere 云提供商和云存储插件来使用。
|
||||
|
||||
有关如何从树内 vSphere 云提供商迁移到树外,以及如何在迁移后管理现有虚拟机,请参阅[此页面](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-cloud-providers/configure-out-of-tree-vsphere.md)。
|
||||
|
||||
### 相关链接
|
||||
|
||||
- [Kubernetes 文档:存储](https://kubernetes.io/docs/concepts/storage/)
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: 自定义资源配置
|
||||
---
|
||||
|
||||
以下自定义资源定义(Custom Resource Definition,CRD)用于配置 Logging:
|
||||
|
||||
- [Flow 和 ClusterFlow](../integrations-in-rancher/logging/custom-resource-configuration/flows-and-clusterflows.md)
|
||||
- [Output 和 ClusterOutput](../integrations-in-rancher/logging/custom-resource-configuration/outputs-and-clusteroutputs.md)
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
title: 跨集群部署应用
|
||||
---
|
||||
|
||||
|
||||
Rancher 2.5 引入了 Fleet,这是一种跨集群部署应用的新方式。
|
||||
|
||||
使用 Fleet 的持续交付是大规模的 GitOps。如需更多信息,请参阅 [Fleet](../how-to-guides/new-user-guides/deploy-apps-across-clusters/fleet.md)。
|
||||
|
||||
### 多集群应用
|
||||
|
||||
在 2.5 之前的 Rancher 版本中,多集群应用功能用于跨集群部署应用。我们已弃用多集群应用功能,但你仍然可以在 Rancher 2.5 中使用该功能。
|
||||
|
||||
详情请参阅[此文档](../how-to-guides/new-user-guides/deploy-apps-across-clusters/multi-cluster-apps.md)。
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
title: 部署 Rancher Server
|
||||
---
|
||||
|
||||
你可使用以下指南之一,在你选择的提供商中部署和配置 Rancher 和 Kubernetes 集群。
|
||||
|
||||
- [AWS](../getting-started/quick-start-guides/deploy-rancher-manager/aws.md)(使用 Terraform)
|
||||
- [AWS Marketplace](../getting-started/quick-start-guides/deploy-rancher-manager/aws-marketplace.md)(使用 Amazon EKS)
|
||||
- [Azure](../getting-started/quick-start-guides/deploy-rancher-manager/azure.md)(使用 Terraform)
|
||||
- [DigitalOcean](../getting-started/quick-start-guides/deploy-rancher-manager/digitalocean.md)(使用 Terraform)
|
||||
- [GCP](../getting-started/quick-start-guides/deploy-rancher-manager/gcp.md)(使用 Terraform)
|
||||
- [Hetzner Cloud](../getting-started/quick-start-guides/deploy-rancher-manager/hetzner-cloud.md)(使用 Terraform)
|
||||
- [Vagrant](../getting-started/quick-start-guides/deploy-rancher-manager/vagrant.md)
|
||||
- [Equinix Metal](../getting-started/quick-start-guides/deploy-rancher-manager/equinix-metal.md)
|
||||
- [Outscale](../getting-started/quick-start-guides/deploy-rancher-manager/outscale-qs.md)(使用 Terraform)
|
||||
|
||||
|
||||
如有需要,你可以查看以下指南以了解分步步骤。如果你需要在其他提供商中或本地运行 Rancher,或者你只是想看看它是多么容易上手,你可阅读以下指南:
|
||||
|
||||
- [手动安装](../getting-started/quick-start-guides/deploy-rancher-manager/helm-cli.md)
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: 部署工作负载
|
||||
---
|
||||
|
||||
这些指南指导你完成一个应用的部署,包括如何将应用暴露在集群之外使用。
|
||||
|
||||
- [部署带有 Ingress 的工作负载](../getting-started/quick-start-guides/deploy-workloads/workload-ingress.md)
|
||||
- [部署带有 NodePort 的工作负载](../getting-started/quick-start-guides/deploy-workloads/nodeports.md)
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: 下游集群配置
|
||||
---
|
||||
|
||||
以下文档将讨论[节点模板配置](./node-template-configuration.md)和[主机配置](./machine-configuration.md)。
|
||||
@@ -0,0 +1,123 @@
|
||||
---
|
||||
title: 启用实验功能
|
||||
---
|
||||
|
||||
Rancher 包含一些默认关闭的实验功能。在某些情况下,例如当你认为使用[不支持的存储类型](../how-to-guides/advanced-user-guides/enable-experimental-features/unsupported-storage-drivers.md)的好处大于使用未经测试的功能的风险时,你可能想要启用实验功能。为了让你能够试用这些默认关闭的功能,我们引入了功能开关(feature flag)。
|
||||
|
||||
实验功能可以通过以下三种方式启用:
|
||||
|
||||
- [使用 CLI](#启动-rancher-时启用功能):在使用 CLI 安装 Rancher 时,使用功能开关默认启用某个功能。
|
||||
- [使用 Rancher UI](#使用-rancher-ui-启用功能):在**设置**页面启用功能。
|
||||
- [使用 Rancher API](#使用-rancher-api-启用功能):安装 Rancher 后启用功能。
|
||||
|
||||
每个功能均有以下两个值:
|
||||
|
||||
- 默认值:可以通过在命令行使用标志或环境变量进行配置。
|
||||
- 设置值:可以通过 Rancher API 或 UI 进行配置。
|
||||
|
||||
如果没有设置值,Rancher 会使用默认值。
|
||||
|
||||
设置值是通过 API 设置的,而默认值是通过命令行设置。因此,如果你使用 API 或 UI 启用或禁用某个功能,命令行中设置的值将被覆盖。
|
||||
|
||||
如果你安装 Rancher 后使用 Rancher API 将功能开关设置为 true,然后在使用命令升级 Rancher 时将功能开关设置为 false,在这种情况下,虽然默认值会是 false,但是该功能依然会被启用,因为它是通过 API 设置的。如果你随后使用 Rancher API 删除设置值(true)并将它设置为 NULL,则默认值(false)将生效。有关详细信息,请参阅[功能开关页面](../getting-started/installation-and-upgrade/installation-references/feature-flags.md)。
|
||||
|
||||
## 启动 Rancher 时启用功能
|
||||
|
||||
安装 Rancher 时,使用功能开关启用你所需的功能。通过单节点容器安装 Rancher,和在 Kubernetes 集群上安装 Rancher 对应的命令有所不同。
|
||||
|
||||
### Kubernetes 安装的情况下启用功能
|
||||
|
||||
:::note
|
||||
|
||||
通过 Rancher API 设置的值会覆盖命令行传入的值。
|
||||
|
||||
:::
|
||||
|
||||
使用 Helm Chart 安装 Rancher 时,使用 `--set` 选项。下面的示例通过传递功能开关名称(用逗号分隔)来启用两个功能:
|
||||
|
||||
```
|
||||
helm install rancher rancher-latest/rancher \
|
||||
--namespace cattle-system \
|
||||
--set hostname=rancher.my.org \
|
||||
--set 'extraEnv[0].name=CATTLE_FEATURES'
|
||||
--set 'extraEnv[0].value=<FEATURE-FLAG-NAME-1>=true,<FEATURE-FLAG-NAME-2>=true'
|
||||
```
|
||||
|
||||
:::note
|
||||
|
||||
如果你安装的是 alpha 版本,Helm 要求你在命令中添加 `--devel` 选项。
|
||||
|
||||
:::
|
||||
|
||||
### 离线安装的情况下渲染 Helm Chart
|
||||
|
||||
如果你是在离线环境安装 Rancher 的,在使用 Helm 安装 Rancher 之前,你需要添加一个 Helm Chart 仓库并渲染一个 Helm 模板。详情请参见[离线安装文档](../getting-started/installation-and-upgrade/other-installation-methods/air-gapped-helm-cli-install/install-rancher-ha.md)。
|
||||
|
||||
以下是在渲染 Helm 模板时传入功能开关名称的命令示例。下面的示例通过传递功能开关名称(用逗号分隔)来启用两个功能。
|
||||
|
||||
Helm 命令如下:
|
||||
|
||||
```
|
||||
helm template rancher ./rancher-<VERSION>.tgz --output-dir . \
|
||||
--no-hooks \ # 避免生成 Helm 钩子文件
|
||||
--namespace cattle-system \
|
||||
--set hostname=<RANCHER.YOURDOMAIN.COM> \
|
||||
--set rancherImage=<REGISTRY.YOURDOMAIN.COM:PORT>/rancher/rancher \
|
||||
--set ingress.tls.source=secret \
|
||||
--set systemDefaultRegistry=<REGISTRY.YOURDOMAIN.COM:PORT> \ # 设置在 Rancher 中使用的默认私有镜像仓库
|
||||
--set useBundledSystemChart=true # 使用打包的 Rancher System Chart
|
||||
--set 'extraEnv[0].name=CATTLE_FEATURES'
|
||||
--set 'extraEnv[0].value=<FEATURE-FLAG-NAME-1>=true,<FEATURE-FLAG-NAME-2>=true'
|
||||
```
|
||||
|
||||
### Docker 安装的情况下启用功能
|
||||
|
||||
如果 Rancher 是使用 Docker 安装的,请使用 `--features` 选项。下面的示例通过传递功能开关名称(用逗号分隔)来启用两个功能:
|
||||
|
||||
```
|
||||
docker run -d -p 80:80 -p 443:443 \
|
||||
--restart=unless-stopped \
|
||||
rancher/rancher:rancher-latest \
|
||||
--features=<FEATURE-FLAG-NAME-1>=true,<FEATURE-FLAG-NAME-2>=true
|
||||
```
|
||||
|
||||
|
||||
## 使用 Rancher UI 启用功能
|
||||
|
||||
1. 在左上角,单击 **☰ > 全局设置**。
|
||||
1. 单击**功能开关**。
|
||||
1. 如需启用某个功能,找到该已禁用的功能,并点击**⋮ > 激活**。
|
||||
|
||||
**结果**:该功能已启用。
|
||||
|
||||
### 使用 Rancher UI 禁用功能
|
||||
|
||||
1. 在左上角,单击 **☰ > 全局设置**。
|
||||
1. 单击**功能开关**。你将看到实验功能列表。
|
||||
1. 如需禁用某个功能,找到该已启用的功能,并点击**⋮ > 停用**。
|
||||
|
||||
**结果**:该功能已禁用。
|
||||
|
||||
## 使用 Rancher API 启用功能
|
||||
|
||||
1. 前往 `<RANCHER-SERVER-URL>/v3/features`。
|
||||
1. 在 `data` 中,你会看到一个数组,该数组包含所有能通过功能开关启用的功能。功能的名称在 `id` 字段中。单击要启用的功能的名称。
|
||||
1. 在左上角的 **Operations** 下,点击 **Edit**。
|
||||
1. 在 **Value** 下拉菜单中,单击 **True**。
|
||||
1. 单击 **Show Request**。
|
||||
1. 单击 **Send Request**。
|
||||
1. 点击 **Close**。
|
||||
|
||||
**结果**:该功能已启用。
|
||||
|
||||
### 使用 Rancher API 禁用功能
|
||||
|
||||
1. 前往 `<RANCHER-SERVER-URL>/v3/features`。
|
||||
1. 在 `data` 中,你会看到一个数组,该数组包含所有能通过功能开关启用的功能。功能的名称在 `id` 字段中。单击要启用的功能的名称。
|
||||
1. 在左上角的 **Operations** 下,点击 **Edit**。
|
||||
1. 在 **Value** 下拉菜单中,单击 **False**。
|
||||
1. 单击 **Show Request**。
|
||||
1. 单击 **Send Request**。
|
||||
1. 点击 **Close**。
|
||||
|
||||
**结果**:该功能已禁用。
|
||||
@@ -0,0 +1,64 @@
|
||||
---
|
||||
title: 使用 Feet 进行持续交付
|
||||
---
|
||||
|
||||
使用 Fleet 的持续交付是大规模的 GitOps。你可以使用 Fleet 管理多达一百万个集群。此外,它非常轻量,因此也非常适用于[单个集群](https://fleet.rancher.io/installation#default-install)。但是,它在[大规模](https://fleet.rancher.io/installation#configuration-for-multi-cluster)场景下的功能更加强大。大规模指的是大量集群、大量部署或大量团队。
|
||||
|
||||
Fleet 是一个独立于 Rancher 的项目,你可以使用 Helm 将它安装在任何 Kubernetes 集群上。
|
||||
|
||||
|
||||
## 架构
|
||||
|
||||
有关 Fleet 工作原理的信息,请参阅[此处](../integrations-in-rancher/fleet-gitops-at-scale/architecture.md)。
|
||||
|
||||
## 在 Rancher UI 中访问 Fleet
|
||||
|
||||
Fleet 预装在 Rancher 中,可以通过 Rancher UI 中的**持续交付**选项进行管理。有关持续交付和 Fleet 故障排除技巧的更多信息,请参阅[此处](https://fleet.rancher.io/troubleshooting)。
|
||||
|
||||
用户可以通过遵循 **gitops** 的实践,利用持续交付将应用部署到 git 仓库中的 Kubernetes 集群,而无需任何手动操作。
|
||||
|
||||
按照以下步骤在 Rancher UI 中访问持续交付:
|
||||
|
||||
1. 单击 **☰ > 持续交付**。
|
||||
|
||||
1. 在菜单顶部选择你的命名空间,注意以下几点:
|
||||
|
||||
- 默认情况下会选中 **fleet-default**,其中包括注册到 Rancher 的所有下游集群。
|
||||
|
||||
- 你可以切换到仅包含 **local** 集群的 **fleet-local**,或者创建自己的工作空间,并将集群分配和移动到该工作空间。
|
||||
|
||||
- 然后,你可以单击左侧导航栏上的**集群**来管理集群。
|
||||
|
||||
1. 单击左侧导航栏上的 **Git 仓库**将 git 仓库部署到当前工作空间中的集群中。
|
||||
|
||||
1. 选择你的 [git 仓库](https://fleet.rancher.io/gitrepo-add)和[目标集群/集群组](https://fleet.rancher.io/gitrepo-targets)。你还可以单击左侧导航栏中的**集群组**在 UI 中创建集群组。
|
||||
|
||||
1. 部署 git 仓库后,你可以通过 Rancher UI 监控应用。
|
||||
|
||||
## Windows 支持
|
||||
|
||||
有关对具有 Windows 节点的集群的支持,请参阅[此页面](../integrations-in-rancher/fleet-gitops-at-scale/windows-support.md)。
|
||||
|
||||
## GitHub 仓库
|
||||
|
||||
你可以单击此处获取 [Fleet Helm Chart](https://github.com/rancher/fleet/releases/tag/v0.3.10)。
|
||||
|
||||
## 在代理后使用 Fleet
|
||||
|
||||
有关在代理后使用 Fleet 的详细信息,请参阅[此页面](../integrations-in-rancher/fleet-gitops-at-scale/use-fleet-behind-a-proxy.md)。
|
||||
|
||||
## Helm Chart 依赖
|
||||
|
||||
由于用户需要完成依赖列表,因此为了成功部署具有依赖项的 Helm Chart,你必须手动运行命令(如下所列)。如果你不这样做,并继续克隆仓库并运行 `helm install`,由于依赖项将丢失,因此你的安装将失败。
|
||||
|
||||
git 仓库中的 Helm Chart 必须在 Chart 子目录中包含其依赖项。你必须手动运行 `helm dependencies update $chart`,或在本地运行 `helm dependencies build $chart`,然后将完整的 Chart 目录提交到你的 git 仓库。请注意,你需要使用适当的参数来修改命令。
|
||||
|
||||
## 故障排除
|
||||
|
||||
- **已知问题**:Fleet git 仓库的 clientSecretName 和 helmSecretName 密文不包含在由 [backup-restore-operator](../how-to-guides/new-user-guides/backup-restore-and-disaster-recovery/back-up-rancher.md#1-安装-rancher-backup-operator) 创建的备份或恢复中。如果我们有了永久的解决方案,我们将通知社区。
|
||||
|
||||
- **临时解决方法**:默认情况下,用户定义的密文不会在 Fleet 中备份。如果执行灾难恢复或将 Rancher 迁移到新集群,则需要重新创建密文。要修改 resourceSet 以包含需要备份的其他资源,请参阅[此文档](https://github.com/rancher/backup-restore-operator#user-flow)。
|
||||
|
||||
## 文档
|
||||
|
||||
Fleet 文档链接:https://fleet.rancher.io/
|
||||
@@ -0,0 +1,321 @@
|
||||
---
|
||||
title: GKE 集群配置参考
|
||||
---
|
||||
|
||||
## Rancher 2.6 变更
|
||||
|
||||
- 支持额外的配置选项:
|
||||
- 项目网络隔离
|
||||
- 网络标签
|
||||
|
||||
## 集群位置
|
||||
|
||||
| 值 | 描述 |
|
||||
|--------|--------------|
|
||||
| 位置类型 | 地区 (zone) 或区域 (region)。借助 GKE,你可以根据工作负载的可用性要求和预算创建一个量身定制的集群。默认情况下,集群的节点在单个计算区域中运行。选择多个区域时,集群的节点将跨越多个计算区域,而 controlplane 则只位于单个区域中。区域集群也增加了 controlplane 的可用性。有关选择集群可用性类型的帮助,请参阅[这些文档](https://cloud.google.com/kubernetes-engine/docs/best-practices/scalability#choosing_a_regional_or_zonal_control_plane)。 |
|
||||
| 地区 | 计算引擎中的每个区域都包含多地区。有关可用区域和可用区的更多信息,请参阅[这些文档](https://cloud.google.com/compute/docs/regions-zones#available)。 |
|
||||
| 其他地区 | 对于地区性集群,你可以选择其他地区来创建[多地区集群](https://cloud.google.com/kubernetes-engine/docs/concepts/types-of-clusters#multi-zonal_clusters)。 |
|
||||
| 区域 | 对于[区域性集群](https://cloud.google.com/kubernetes-engine/docs/concepts/types-of-clusters#regional_clusters),你可以选择一个区域。有关可用区域和可用区的更多信息,请参阅[本节](https://cloud.google.com/compute/docs/regions-zones#available)。地区名称的前面部分是区域的名称。 |
|
||||
|
||||
## 集群选项
|
||||
|
||||
### Kubernetes 版本
|
||||
|
||||
_可变:是_
|
||||
|
||||
有关 GKE Kubernetes 版本的更多信息,请参阅[这些文档](https://cloud.google.com/kubernetes-engine/versioning)。
|
||||
|
||||
### 容器地址范围
|
||||
|
||||
_可变:否_
|
||||
|
||||
集群中 Pod 的 IP 地址范围。必须是有效的 CIDR 范围,例如 10.42.0.0/16。如果未指定,则会自动从 10.0.0.0/8 中选择一个随机范围,并排除已分配给 VM、其他集群或路由的范围。自动选择的范围可能与预留的 IP 地址、动态路由或与集群对等的 VPC 中的路由发生冲突。
|
||||
|
||||
### 网络
|
||||
|
||||
_可变:否_
|
||||
|
||||
集群连接的 Compute Engine 网络。将使用此网络创建路由和防火墙。如果使用[共享 VPC](https://cloud.google.com/vpc/docs/shared-vpc),与你的项目共享的 VPC 网络将显示在此处。你将可以在此字段中进行选择。有关详细信息,请参阅[此页面](https://cloud.google.com/vpc/docs/vpc#vpc_networks_and_subnets)。
|
||||
|
||||
### 节点子网/子网
|
||||
|
||||
_可变:否_
|
||||
|
||||
集群连接到的 Compute Engine 子网。该子网必须属于**网络**字段中指定的网络。选择一个现有的子网,或选择“自动创建子网”来自动创建一个子网。如果不使用现有网络,则需要使用**子网名称**来生成一个。如果使用[共享 VPC](https://cloud.google.com/vpc/docs/shared-vpc),与你的项目共享的 VPC 子网将显示在此处。如果使用共享 VPC 网络,则无法选择“自动创建子网”。如需更多信息,请参阅[此页面](https://cloud.google.com/vpc/docs/vpc#vpc_networks_and_subnets)。
|
||||
|
||||
### 子网名称
|
||||
|
||||
_可变:否_
|
||||
|
||||
使用提供的名称自动创建子网。如果为**节点子网**或**子网**选择了“自动创建子网”,则为必填。有关子网的更多信息,请参阅[此页面](https://cloud.google.com/vpc/docs/vpc#vpc_networks_and_subnets)。
|
||||
|
||||
### IP 别名
|
||||
|
||||
_可变:否_
|
||||
|
||||
启用[别名 IP](https://cloud.google.com/vpc/docs/alias-ip)。这将启用 VPC 原生流量路由。如果使用[共享 VPC](https://cloud.google.com/vpc/docs/shared-vpc),则为必填。
|
||||
|
||||
### 网络策略
|
||||
|
||||
_可变:是_
|
||||
|
||||
在集群上启用的网络策略。网络策略定义了集群中 pod 和 service 之间可以发生的通信级别。有关详细信息,请参阅[此页面](https://cloud.google.com/kubernetes-engine/docs/how-to/network-policy)。
|
||||
|
||||
### 项目网络隔离
|
||||
|
||||
_可变:是_
|
||||
|
||||
选择启用或禁用项目间通信。请注意,如果启用**项目网络隔离**,则将自动启用**网络策略**和**网络策略配置**,反之则不然。
|
||||
|
||||
### 节点 IPv4 CIDR 块
|
||||
|
||||
_可变:否_
|
||||
|
||||
此集群中实例 IP 的 IP 地址范围。如果为**节点子网**或**子网**选择了“自动创建子网”,则可以进行设置。必须是有效的 CIDR 范围,例如 10.96.0.0/14。有关如何确定 IP 地址范围的详细信息,请参阅[此页面](https://cloud.google.com/kubernetes-engine/docs/concepts/alias-ips#cluster_sizing)。
|
||||
|
||||
### 集群次要范围名称
|
||||
|
||||
_可变:否_
|
||||
|
||||
Pod IP 地址的现有次要范围的名称。如果选中,将自动填充**集群 Pod 地址范围**。如果使用共享 VPC 网络,则为必填。
|
||||
|
||||
### 集群 Pod 地址范围
|
||||
|
||||
_可变:否_
|
||||
|
||||
分配给集群中 pod 的 IP 地址范围。必须是有效的 CIDR 范围,例如 10.96.0.0/11。如果未提供,将自动创建。如果使用共享 VPC 网络,则必须提供。有关如何确定 pod 的 IP 地址范围的更多信息,请参阅[本节](https://cloud.google.com/kubernetes-engine/docs/concepts/alias-ips#cluster_sizing_secondary_range_pods)。
|
||||
|
||||
### Service 次要范围名称
|
||||
|
||||
_可变:否_
|
||||
|
||||
Service IP 地址的现有次要范围的名称。如果选中,将自动填充 **Service 地址范围**。如果使用共享 VPC 网络,则为必填。
|
||||
|
||||
### Service 地址范围
|
||||
|
||||
_可变:否_
|
||||
|
||||
分配给集群中 Service 的地址范围。必须是有效的 CIDR 范围,例如 10.94.0.0/18。如果未提供,将自动创建。如果使用共享 VPC 网络,则必须提供。有关如何确定 Service 的 IP 地址范围的详细信息,请参阅[本节](https://cloud.google.com/kubernetes-engine/docs/concepts/alias-ips#cluster_sizing_secondary_range_svcs)。
|
||||
|
||||
### 私有集群
|
||||
|
||||
_可变:否_
|
||||
|
||||
:::caution
|
||||
|
||||
私有集群需要在 Rancher 之外进行额外的规划和配置。请参阅[私有集群指南](../reference-guides/cluster-configuration/rancher-server-configuration/gke-cluster-configuration/gke-private-clusters.md)。
|
||||
|
||||
:::
|
||||
|
||||
仅分配节点内部 IP 地址。除非在 GCP 中执行了额外的联网步骤,否则私有集群节点无法访问公共互联网。
|
||||
|
||||
### 启用私有端点
|
||||
|
||||
:::caution
|
||||
|
||||
私有集群需要在 Rancher 之外进行额外的规划和配置。请参阅[私有集群指南](../reference-guides/cluster-configuration/rancher-server-configuration/gke-cluster-configuration/gke-private-clusters.md)。
|
||||
|
||||
:::
|
||||
|
||||
_可变:否_
|
||||
|
||||
锁定对 controlplane 端点的外部访问。仅当**私有集群**也被选中时可用。如果选中,并且 Rancher 无法直接访问集群所在的虚拟私有云网络,Rancher 将提供在集群上运行的注册命令,以使 Rancher 能够连接到集群。
|
||||
|
||||
### 主 IPV4 CIDR 块
|
||||
|
||||
_可变:否_
|
||||
|
||||
controlplane VPC 的 IP 范围。
|
||||
|
||||
### 主授权网络
|
||||
|
||||
_可变:是_
|
||||
|
||||
启用 controlplane 授权网络,以阻止不受信任的非 GCP 源 IP 通过 HTTPS 访问 Kubernetes master。如果选择,则可以添加额外的授权网络。如果集群是使用公共端点创建的,则此选项可用于将公共端点的访问锁定到特定网络(例如运行 Rancher 服务的网络)。如果集群只有一个私有端点,则需要此设置。
|
||||
|
||||
## 其他选项
|
||||
|
||||
### 集群插件
|
||||
|
||||
其他 Kubernetes 集群组件。有关详细信息,请参阅[此页面](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.AddonsConfig)。
|
||||
|
||||
#### 水平 Pod 自动缩放
|
||||
|
||||
_可变:是_
|
||||
|
||||
Horizontal Pod Autoscaler 通过自动增加或减少 Pod 的数量来调整 Kubernetes 工作负载,从而响应工作负载的 CPU 或内存消耗,以及 Kubernetes 内部报告的自定义指标或集群外部设置的指标。详情请参见[本页面](https://cloud.google.com/kubernetes-engine/docs/concepts/horizontalpodautoscaler)。
|
||||
|
||||
#### HTTP (L7) 负载均衡
|
||||
|
||||
_可变:是_
|
||||
|
||||
HTTP (L7) 负载均衡将 HTTP 和 HTTPS 流量分配到托管在 GKE 上的后端。有关详细信息,请参阅[此页面](https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer)。
|
||||
|
||||
#### 网络策略配置(仅限 master)
|
||||
|
||||
_可变:是_
|
||||
|
||||
NetworkPolicy 的配置。仅跟踪 master 节点上是否启用了插件,不跟踪是否为节点启用了网络策略。
|
||||
|
||||
### 集群特征(Alpha 功能)
|
||||
|
||||
_可变:否_
|
||||
|
||||
打开集群的所有 Kubernetes alpha API 组和功能。启用后,集群无法升级,并且会在 30 天后自动删除。由于 GKE SLA 未支持 alpha 集群,因此不建议将 Alpha 集群用于生产环境。有关详细信息,请参阅[此页面](https://cloud.google.com/kubernetes-engine/docs/concepts/alpha-clusters)。
|
||||
|
||||
### Logging 服务
|
||||
|
||||
_可变:是_
|
||||
|
||||
集群用于写入日志的日志管理服务。要么使用 [Cloud Logging](https://cloud.google.com/logging),要么不使用日志管理服务(不会从集群中导出日志)。
|
||||
|
||||
### 监控服务
|
||||
|
||||
_可变:是_
|
||||
|
||||
集群用于写入指标的监控服务。要么使用 [Cloud Monitoring](https://cloud.google.com/monitoring),要么不使用集群监控服务(不会从集群中导出指标)。
|
||||
|
||||
|
||||
### 维护窗口
|
||||
|
||||
_可变:是_
|
||||
|
||||
设置时长 4 小时的维护窗口的开始时间。使用 HH:MM 格式在 UTC 时区中指定时间。有关详细信息,请参阅[此页面](https://cloud.google.com/kubernetes-engine/docs/concepts/maintenance-windows-and-exclusions)。
|
||||
|
||||
## 节点池
|
||||
|
||||
在此部分中,输入描述节点池中每个节点的配置的详细信息。
|
||||
|
||||
### Kubernetes 版本
|
||||
|
||||
_可变:是_
|
||||
|
||||
节点池中每个节点的 Kubernetes 版本。有关 GKE Kubernetes 版本的更多信息,请参阅[这些文档](https://cloud.google.com/kubernetes-engine/versioning)。
|
||||
|
||||
### 镜像类型
|
||||
|
||||
_可变:是_
|
||||
|
||||
节点操作系统镜像。有关 GKE 为每个操作系统提供的节点镜像选项,请参阅[此页面](https://cloud.google.com/kubernetes-engine/docs/concepts/node-images#available_node_images)。
|
||||
|
||||
:::note
|
||||
|
||||
默认选项是 “Container-Optimized OS with Docker”。GCP Container-Optimized OS 上的只读文件系统与 Rancher 中的 [legacy logging](https://github.com/rancher/rancher-docs/tree/main/archived_docs/en/version-2.0-2.4/pages-for-subheaders/cluster-logging.md) 实现不兼容。如果你需要使用旧版日志管理功能,请选择 “Ubuntu with Docker” 或 “Ubuntu with Containerd”。[current logging feature](logging.md) 与 Container-Optimized OS 镜像兼容。
|
||||
|
||||
:::
|
||||
|
||||
:::note
|
||||
|
||||
如果节点池镜像类型选择 “Windows Long Term Service Channel” 或 “Windows Semi-Annual Channel”,还必须至少添加一个 Container-Optimized OS 或 Ubuntu 节点池。
|
||||
|
||||
:::
|
||||
|
||||
### 主机类型
|
||||
|
||||
_可变:否_
|
||||
|
||||
节点实例可用的虚拟化硬件资源。有关 Google Cloud 主机类型的详细信息,请参阅[此页面](https://cloud.google.com/compute/docs/machine-types#machine_types)。
|
||||
|
||||
### 根磁盘类型
|
||||
|
||||
_可变:否_
|
||||
|
||||
标准永久性磁盘由标准磁盘驱动器 (HDD) 支持,而 SSD 永久性磁盘由固态硬盘 (SSD) 支持。有关详细信息,请参阅[本节](https://cloud.google.com/compute/docs/disks)。
|
||||
|
||||
### 本地 SSD 磁盘
|
||||
|
||||
_可变:否_
|
||||
|
||||
配置每个节点的本地 SSD 磁盘存储(以 GB 为单位)。本地 SSD 物理连接到托管你的 VM 实例的服务器。与标准永久性磁盘或 SSD 永久性磁盘相比,本地 SSD 具有更高的吞吐量和更低的延迟。存储在本地 SSD 上的数据只会保留到实例停止或删除。有关详细信息,请参阅[本节](https://cloud.google.com/compute/docs/disks#localssds)。
|
||||
|
||||
### 抢占式节点(beta)
|
||||
|
||||
_可变:否_
|
||||
|
||||
抢占式节点也称为抢占式虚拟机。通常是最长持续 24 小时的 Compute Engine 虚拟机实例,不提供可用性保证。详情请参见[本页面](https://cloud.google.com/kubernetes-engine/docs/how-to/preemptible-vms)。
|
||||
|
||||
### 污点
|
||||
|
||||
_可变:否_
|
||||
|
||||
将污点应用于节点时,仅允许容忍该污点的 Pod 在该节点上运行。在 GKE 集群中,你可以将污点应用到节点池,这会将污点应用到池中的所有节点。
|
||||
|
||||
### 节点标签
|
||||
|
||||
_可变:否_
|
||||
|
||||
你可以将标签应用到节点池,这会将标签应用到池中的所有节点。
|
||||
|
||||
无效标签会阻止升级,或阻止 Rancher 启动。有关标签语法的详细信息,请参阅 [Kubernetes 文档](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set)。
|
||||
|
||||
### 网络标签
|
||||
|
||||
_可变:否_
|
||||
|
||||
你可以将网络标签添加到节点池以制定防火墙规则和子网之间的路由。标签将应用于池中的所有节点。
|
||||
|
||||
有关标签语法和要求的详细信息,请参阅 [Kubernetes 文档](https://cloud.google.com/vpc/docs/add-remove-network-tags)。
|
||||
|
||||
## 组详细信息
|
||||
|
||||
在此部分中,输入描述节点池的详细信息。
|
||||
|
||||
### 名称
|
||||
|
||||
_可变:否_
|
||||
|
||||
输入节点池的名称。
|
||||
|
||||
### 初始节点数
|
||||
|
||||
_可变:是_
|
||||
|
||||
节点池中初始节点数的整数。
|
||||
|
||||
### 每个节点的最大 Pod 数量
|
||||
|
||||
_可变:否_
|
||||
|
||||
GKE 的硬性限制是每个节点 110 个 Pod。有关 Kubernetes 限制的更多信息,请参阅[本节](https://cloud.google.com/kubernetes-engine/docs/best-practices/scalability#dimension_limits)。
|
||||
|
||||
### 自动缩放
|
||||
|
||||
_可变:是_
|
||||
|
||||
节点池自动缩放会根据工作负载的需求动态创建或删除节点。详情请参见[本页面](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-autoscaler)。
|
||||
|
||||
### 自动修复
|
||||
|
||||
_可变:是_
|
||||
|
||||
GKE 的节点自动修复功能可帮助你将集群中的节点保持在健康的运行状态。启用后,GKE 会定期检查集群中每个节点的运行状况。如果某个节点在较长时间段内连续未通过健康检查,GKE 会为该节点启动修复过程。有关详细信息,请参阅[自动修复节点](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-repair)。
|
||||
|
||||
### 自动升级
|
||||
|
||||
_可变:是_
|
||||
|
||||
启用后,当你的 controlplane [按照你的需求更新](https://cloud.google.com/kubernetes-engine/upgrades#automatic_cp_upgrades)时,自动升级功能会使集群中的节点与集群 controlplane(master)版本保持同步。有关自动升级节点的更多信息,参见[此页面。](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-upgrades)
|
||||
|
||||
### 访问范围
|
||||
|
||||
_可变:否_
|
||||
|
||||
设置访问范围是为你的节点指定权限的旧版方法。
|
||||
|
||||
- **允许默认访问**:新集群的默认访问是 [Compute Engine 默认 ServiceAccount](https://cloud.google.com/compute/docs/access/service-accounts?hl=en_US#default_service_account)。
|
||||
- **允许完全访问所有 Cloud API**:通常,你只需设置云平台访问范围来允许完全访问所有 Cloud API,然后仅授予 ServiceAccount 相关的 IAM 角色。授予虚拟机实例的访问范围和授予 ServiceAccount 的 IAM 角色的组合决定了 ServiceAccount 对该实例的访问量。
|
||||
- **为每个 API 设置访问权限**:或者,你可以设置服务将调用的特定 API 方法的访问范围。
|
||||
|
||||
有关详细信息,请参阅[为 VM 启用 ServiceAccount](https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances)。
|
||||
|
||||
|
||||
### 配置刷新间隔
|
||||
|
||||
刷新间隔可以通过 “gke-refresh” 来配置,它是一个代表秒的整数。
|
||||
|
||||
默认值为 300 秒。
|
||||
|
||||
你可以通过运行 `kubectl edit setting gke-refresh` 来更改同步间隔。
|
||||
|
||||
刷新窗口越短,争用条件发生的可能性就越小。但这确实增加了遇到 GCP API 可能存在的请求限制的可能性。
|
||||
|
||||
@@ -0,0 +1,164 @@
|
||||
---
|
||||
title: Rancher 中的 Helm Chart
|
||||
---
|
||||
|
||||
在本节中,你将学习如何在 Rancher 中管理 Helm Chart 仓库和应用。你可以在 **Apps & Marketplace**(Rancher v2.6.5 之前的版本)或 **Apps**(Rancher v2.6.5+)中管理 Helm Chart 仓库。它使用类似目录的系统从仓库中导入 Chart 包,然后使用这些 Chart 来部署自定义 Helm 应用或 Rancher 工具(例如监控和 Istio)。Rancher 工具以预加载仓库的方式提供,并能部署为独立的 Helm Chart 。其他仓库只会添加到当前集群。
|
||||
|
||||
### Rancher 2.6 变更
|
||||
|
||||
Rancher 2.6.0 实现了功能 Chart 的新版本控制方案。变更主要是 Chart 的主要版本和上游 Chart 的 +up 注释(如果适用)。
|
||||
|
||||
**主要版本**:Chart 的主要版本与 Rancher 次要版本相关联。当你升级到新的 Rancher 次要版本时,你应该确保你的所有 **Apps & Marketplace**(Rancher v2.6.5 之前的版本)或 **Apps**(Rancher v2.6.5+) Chart 也升级到 Chart 的正确发行版本。
|
||||
|
||||
:::note
|
||||
|
||||
如果你的主要版本低于下表中提到的版本,则请使用 2.5 及以下版本。例如,建议你不要在 2.6.x+ 中使用 <100.x.x 版本的 Monitoring。
|
||||
|
||||
:::
|
||||
|
||||
**功能 Chart**:
|
||||
|
||||
| **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 |
|
||||
|
||||
<br/>
|
||||
|
||||
**基于上游的 Chart**:对于基于上游的 Chart ,+up 注释用于表示 Rancher Chart 正在跟踪的上游版本。在升级时,请检查上游版本与 Rancher 的兼容性。
|
||||
|
||||
- 例如,用于 Monitoring 的 `100.x.x+up16.6.0` 跟踪上游 kube-prometheus-stack `16.6.0` 并添加了一些 Rancher 补丁。
|
||||
|
||||
- 在升级时,请确保你没有降级你正在使用的 Chart 版本。例如,如果你在 Rancher 2.5 中使用 Monitoring > `16.6.0` 版本,则不应升级到 `100.x.x+up16.6.0`。相反,你应该在下一个发行版中升级到适当的版本。
|
||||
|
||||
|
||||
### Charts
|
||||
|
||||
<Tabs groupId="rancher-version">
|
||||
<TabItem value="Rancher v2.6.5+">
|
||||
|
||||
从左上角的菜单中选择 **Apps**,然后你会转到 Chart 页面。
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="Rancher 版本低于 v2.6.5">
|
||||
|
||||
从左上角的菜单中选择 **Apps & Marketplace**,然后你会转到 Chart 页面。
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
Chart 页面包含所有 Rancher、Partner 和自定义 Chart 。
|
||||
|
||||
* Rancher 工具(例如 Logging 或 Monitoring)包含在 Rancher 标签下
|
||||
* Partner Chart 位于 Partner 标签下
|
||||
* 自定义 Chart 将显示在仓库的名称下
|
||||
|
||||
所有这三种类型都以相同的方式部署和管理。
|
||||
|
||||
:::note
|
||||
|
||||
由 Cluster Manager (旧版 Rancher UI 中的全局视图)管理的应用应继续仅由 Cluster Manager 管理,而在新 UI 中使用 **Apps & Marketplace**(Rancher v2.6.5 之前的版本)或 **Apps**(Rancher v2.6.5+)管理的应用则仅能由 **Apps & Marketplace** 或 **Apps** 管理。
|
||||
|
||||
:::
|
||||
|
||||
### 仓库
|
||||
|
||||
从左侧边栏中选择 _仓库_。
|
||||
|
||||
这些项目代表 helm 仓库,可以是具有 index.yaml 的传统 helm 端点,也可以是被克隆并指向特定分支的 git 仓库。要使用自定义 Chart ,只需在此处添加你的仓库即可,它们将在仓库名称下的 Chart 选项卡中可用。
|
||||
|
||||
为 Helm Chart 仓库添加私有 CA:
|
||||
|
||||
- **基于 HTTP 的 Chart 仓库**:你必须将 DER 格式的 CA 证书的 base64 编码副本添加到 Chart 仓库的 spec.caBundle 字段,例如 `openssl x509 -outform der -in ca.pem | base64 -w0`。点击 Chart 仓库的**编辑 YAML** 并进行设置,如下所示:<br/>
|
||||
```
|
||||
[...]
|
||||
spec:
|
||||
caBundle:
|
||||
MIIFXzCCA0egAwIBAgIUWNy8WrvSkgNzV0zdWRP79j9cVcEwDQYJKoZIhvcNAQELBQAwPzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRQwEgYDVQQKDAtNeU9yZywgSW5jLjENMAsGA1UEAwwEcm9vdDAeFw0yMTEyMTQwODMyMTdaFw0yNDEwMDMwODMyMT
|
||||
...
|
||||
nDxZ/tNXt/WPJr/PgEB3hQdInDWYMg7vGO0Oz00G5kWg0sJ0ZTSoA10ZwdjIdGEeKlj1NlPyAqpQ+uDnmx6DW+zqfYtLnc/g6GuLLVPamraqN+gyU8CHwAWPNjZonFN9Vpg0PIk1I2zuOc4EHifoTAXSpnjfzfyAxCaZsnTptimlPFJJqAMj+FfDArGmr4=
|
||||
[...]
|
||||
```
|
||||
|
||||
|
||||
- **基于 Git 的 Chart 仓库**:你必须将 DER 格式的 CA 证书的 base64 编码副本添加到 Chart 仓库的 spec.caBundle 字段,例如 `openssl x509 -outform der -in ca.pem | base64 -w0`。点击 Chart 仓库的**编辑 YAML** 并进行设置,如下所示:<br/>
|
||||
```
|
||||
[...]
|
||||
spec:
|
||||
caBundle:
|
||||
MIIFXzCCA0egAwIBAgIUWNy8WrvSkgNzV0zdWRP79j9cVcEwDQYJKoZIhvcNAQELBQAwPzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRQwEgYDVQQKDAtNeU9yZywgSW5jLjENMAsGA1UEAwwEcm9vdDAeFw0yMTEyMTQwODMyMTdaFw0yNDEwMDMwODMyMT
|
||||
...
|
||||
nDxZ/tNXt/WPJr/PgEB3hQdInDWYMg7vGO0Oz00G5kWg0sJ0ZTSoA10ZwdjIdGEeKlj1NlPyAqpQ+uDnmx6DW+zqfYtLnc/g6GuLLVPamraqN+gyU8CHwAWPNjZonFN9Vpg0PIk1I2zuOc4EHifoTAXSpnjfzfyAxCaZsnTptimlPFJJqAMj+FfDArGmr4=
|
||||
[...]
|
||||
```
|
||||
|
||||
|
||||
:::note
|
||||
|
||||
带有身份验证的 Helm Chart 仓库
|
||||
|
||||
从 Rancher 2.6.3 开始,Repo.Spec 中添加了一个新值 `disableSameOriginCheck`。它允许用户绕过相同源的检查,将仓库身份验证信息作为基本 Auth 标头与所有 API 调用一起发送。不建议采用这种做法,但这可以用作非标准 Helm Chart 仓库(例如重定向到不同源 URL 的仓库)的临时解决方案。
|
||||
|
||||
要将此功能用于现有 Helm Chart 仓库,请单击 <b>⋮ > 编辑 YAML</b>。在 YAML 文件的 `spec` 部分,添加 `disableSameOriginCheck` 并将其设置为 `true`:
|
||||
|
||||
```yaml
|
||||
[...]
|
||||
spec:
|
||||
disableSameOriginCheck: true
|
||||
[...]
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
### Helm 兼容性
|
||||
|
||||
仅支持 Helm 3 兼容 Chart 。
|
||||
|
||||
|
||||
### 部署和升级
|
||||
|
||||
从 _Chart_ 选项卡中选择要安装的 Chart 。Rancher 和 Partner Chart 可能通过自定义页面或 questions.yaml 文件进行额外的配置,但所有 Chart 安装都可以修改 values.yaml 和其他基本设置。单击安装后,将部署一个 Helm 操作作业,并显示该作业的控制台。
|
||||
|
||||
要查看所有最近的更改,请转到 _最近的操作_ 选项卡。你可以查看已进行的调用、条件、事件和日志。
|
||||
|
||||
安装 Chart 后,你可以在 _已安装的应用_ 选项卡中找到该 Chart。在本节中,你可以升级或删除安装,并查看更多详细信息。选择升级时,呈现的形式和数值与安装相同。
|
||||
|
||||
大多数 Rancher 工具在 _应用 & 应用市场_ 下方的工具栏中都有额外的页面,以帮助你管理和使用这些功能。这些页面包括指向仪表板的链接、可轻松添加自定义资源的表单以及其他信息。
|
||||
|
||||
:::caution
|
||||
|
||||
如果你使用 _在升级前自定义 Helm 选项_ 来升级 Chart,如果你的 Chart 有不可更改的字段,使用 _--force_ 选项可能会导致错误。这是因为 Kubernetes 中的某些对象一旦创建就无法更改。要避免该错误,你可以:
|
||||
|
||||
* 使用默认升级选项(即不要使用 _--force_ 选项)
|
||||
* 卸载现有 Chart 并安装升级后的 Chart
|
||||
* 在执行 _--force_ 升级之前删除集群中具有不可更改字段的资源
|
||||
|
||||
:::
|
||||
|
||||
#### Rancher 2.6.3 变更
|
||||
|
||||
**应用 & 应用市场 > 已安装的应用**页面中,旧版应用的升级按钮已被移除。
|
||||
|
||||
如果你安装了旧版应用并想要升级它:
|
||||
|
||||
- 必须开启旧版[功能开关](enable-experimental-features.md)(如果在升级前有旧版应用导致该开关未自动开启)
|
||||
- 你可以从 cluster explorer 升级应用,从左侧导航部分选择**旧版 > 项目 > 应用**
|
||||
- 对于多集群应用,你可以转到 **≡ > 多集群应用**并在那里升级应用
|
||||
|
||||
### 限制
|
||||
|
||||
Rancher CLI **不能**用于安装[仪表板应用程序或 Rancher 功能 Chart](helm-charts-in-rancher.md)。
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
title: Horizontal Pod Autoscaler
|
||||
description: 了解 Pod 水平自动扩缩 (HPA)。如何管理 HPA 以及如何使用服务部署来进行测试
|
||||
---
|
||||
|
||||
[Horizontal Pod Autoscaler(HPA)](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/)是一项 Kubernetes 功能,用于将集群配置为自动扩缩其运行的服务。
|
||||
|
||||
Rancher 提供了一些附加功能来帮助管理 HPA,具体取决于 Rancher 的版本。
|
||||
|
||||
你可以使用 Rancher UI 创建、管理和删除 HPA。仅在 `autoscaling/v2beta2` API 中支持 HPA。
|
||||
|
||||
## 管理 HPA
|
||||
|
||||
管理 HPA 的方式因你的 Kubernetes API 版本而异:
|
||||
|
||||
- **Kubernetes API 版本 autoscaling/V2beta1**:允许根据应用程序的 CPU 和内存利用率自动扩缩 pod。
|
||||
- **Kubernetes API 版本 autoscaling/V2beta2**:允许根据 CPU 和内存利用率以及自定义指标自动扩缩 pod。
|
||||
|
||||
你可以使用 Rancher UI 创建、管理和删除 HPA。在 Rancher UI 中,你可以将 HPA 配置为根据 CPU 和内存利用率进行扩缩。有关详细信息,请参阅[使用 Rancher UI 管理 HPA](../how-to-guides/new-user-guides/kubernetes-resources-setup/horizontal-pod-autoscaler/manage-hpas-with-ui.md)。如需根据自定义指标进行 HPA,你仍然需要使用 `kubectl`。有关详细信息,请参阅[配置 HPA 以使用 Prometheus 自定义指标进行扩缩](../how-to-guides/new-user-guides/kubernetes-resources-setup/horizontal-pod-autoscaler/manage-hpas-with-kubectl.md#配置-hpa-以使用-prometheus-自定义指标进行扩缩)。
|
||||
|
||||
在 Rancher 2.0.7 及更高版本中创建的集群自动满足使用 HPA 的所有要求(metrics-server 和 Kubernetes 集群配置)。
|
||||
## 使用服务部署测试 HPA
|
||||
|
||||
你可以转到你的项目并单击**资源 > HPA**来查看 HPA 当前的副本数。有关详细信息,请参阅[获取 HPA 指标和状态](../how-to-guides/new-user-guides/kubernetes-resources-setup/horizontal-pod-autoscaler/manage-hpas-with-ui.md)。
|
||||
|
||||
你还可以使用 `kubectl` 来获取你使用负载测试工具测试的 HPA 的状态。有关详细信息,请参阅[使用 kubectl 测试 HPA](../how-to-guides/new-user-guides/kubernetes-resources-setup/horizontal-pod-autoscaler/test-hpas-with-kubectl.md)。
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: Kubernetes 集群基础设施
|
||||
---
|
||||
|
||||
要为具有外部数据库的高可用 K3s Kubernetes 集群设置基础设施,请参见[本页面](../how-to-guides/new-user-guides/infrastructure-setup/ha-k3s-kubernetes-cluster.md)。
|
||||
|
||||
|
||||
要为高可用 RKE Kubernetes 集群设置基础设施,请参见[本页面](../how-to-guides/new-user-guides/infrastructure-setup/ha-rke1-kubernetes-cluster.md)。
|
||||
@@ -0,0 +1,24 @@
|
||||
---
|
||||
title: Cluster Autoscaler
|
||||
---
|
||||
|
||||
在本文中,你将学习如何使用 AWS EC2 Auto Scaling 组在 Rancher 自定义集群上安装和使用 [Kubernetes cluster-autoscaler](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/)。
|
||||
|
||||
Cluster Autoscaler 是一个自动调整 Kubernetes 集群大小的工具。该工具在满足以下条件之一时能自动调整集群大小:
|
||||
|
||||
* 集群中有 Pod 因资源不足而无法运行。
|
||||
* 集群中有一些节点长时间未得到充分利用,而且它们的 Pod 可以放到其他现有节点上。
|
||||
|
||||
为防止你的 pod 被驱逐,请在你的 pod 规范中设置 `priorityClassName: system-cluster-critical` 属性。
|
||||
|
||||
Cluster Autoscaler 运行在 Kubernetes master 节点上。它可以在 `kube-system` 命名空间中运行。Cluster Autoscaler 不会缩减运行非镜像 `kube-system` pod 的节点。
|
||||
|
||||
你可以在 worker 节点上运行 Cluster Autoscaler 的自定义 deployment,但需要小心以保证 Cluster Autoscaler 能正常运行。
|
||||
|
||||
## 云提供商
|
||||
|
||||
Cluster Autoscaler 为不同的云提供商提供支持。有关详细信息,请参见 [Cluster Autoscaler 支持的云提供商](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler#deployment)。
|
||||
|
||||
### 在 Amazon 上设置 Cluster Autoscaler
|
||||
|
||||
有关在 Amazon 上运行 Cluster Autoscaler 的详细信息,请参阅[此页面](../how-to-guides/new-user-guides/manage-clusters/install-cluster-autoscaler/use-aws-ec2-auto-scaling-groups.md)。
|
||||
+354
@@ -0,0 +1,354 @@
|
||||
---
|
||||
title: 在 Kubernetes 集群上安装/升级 Rancher
|
||||
description: 了解如何在开发和生产环境中安装 Rancher。了解单节点和高可用安装
|
||||
---
|
||||
|
||||
在本节中,你将学习如何使用 Helm CLI 在 Kubernetes 集群上部署 Rancher。
|
||||
|
||||
|
||||
## 先决条件
|
||||
|
||||
- [Kubernetes 集群](#kubernetes-集群)
|
||||
- [Ingress Controller](#ingress-controller)
|
||||
- [CLI 工具](#cli-工具)
|
||||
|
||||
### Kubernetes 集群
|
||||
|
||||
设置 Rancher Server 的本地 Kubernetes 集群。
|
||||
|
||||
Rancher 可以安装在任何 Kubernetes 集群上。这个集群可以使用上游 Kubernetes,也可以使用 Rancher 的 Kubernetes 发行版之一,也可以是来自 Amazon EKS 等提供商的托管 Kubernetes 集群。
|
||||
|
||||
你可参考以下教程,以获得设置 Kubernetes 集群的帮助:
|
||||
|
||||
- **RKE**:[安装 RKE Kubernetes 集群的教程](../how-to-guides/new-user-guides/kubernetes-cluster-setup/rke1-for-rancher.md);[为高可用 RKE 集群设置基础设施的教程](../how-to-guides/new-user-guides/infrastructure-setup/ha-rke1-kubernetes-cluster.md)。
|
||||
- **K3s**:[安装 K3s Kubernetes 集群的教程](../how-to-guides/new-user-guides/kubernetes-cluster-setup/k3s-for-rancher.md);[设置高可用 K3s 集群的基础设施的教程](../how-to-guides/new-user-guides/infrastructure-setup/ha-k3s-kubernetes-cluster.md)。
|
||||
- **RKE2:** :[安装 RKE2 Kubernetes 集群的教程](../how-to-guides/new-user-guides/kubernetes-cluster-setup/rke2-for-rancher.md);[设置高可用 RKE2 集群的基础设施的教程](../how-to-guides/new-user-guides/infrastructure-setup/ha-rke2-kubernetes-cluster.md)。
|
||||
- **Amazon EKS**:[在 Amazon EKS 上安装 Rancher 以及如何安装 Ingress Controller 以访问 Rancher Server](../getting-started/installation-and-upgrade/install-upgrade-on-a-kubernetes-cluster/rancher-on-amazon-eks.md)。
|
||||
- **AKS**:[使用 Azure Kubernetes 服务安装 Rancher 以及如何安装 Ingress Controller 以访问 Rancher Server](../getting-started/installation-and-upgrade/install-upgrade-on-a-kubernetes-cluster/rancher-on-aks.md)。
|
||||
- **GKE**:有关如何使用 GKE 安装 Rancher,包括如何安装 Ingress Controller 以便可以访问 Rancher Server,请参阅[此页面](../getting-started/installation-and-upgrade/install-upgrade-on-a-kubernetes-cluster/rancher-on-gke.md)。GKE 创建 Kubernetes 集群时有两种运行模式,分别是 Autopilot 和 Standard 模式。Autopilot 模式的集群配置对编辑 kube-system 命名空间有限制。但是,Rancher 在安装时需要在 kube-system 命名空间中创建资源。因此,你将无法在以 Autopilot 模式创建的 GKE 集群上安装 Rancher。
|
||||
|
||||
### Ingress Controller
|
||||
|
||||
Rancher UI 和 API 通过 Ingress 公开。换言之,安装 Rancher 的 Kubernetes 集群必须包含一个 Ingress Controller。
|
||||
|
||||
对于 RKE、RKE2 和 K3s,你不需要手动安装 Ingress Controller,因为它是默认安装的。
|
||||
|
||||
对于默认不包含 Ingress Controller 的发行版(例如 EKS、GKE 或 AKS 等托管 Kubernetes 集群),你必须先部署 Ingress Controller。请注意,Rancher Helm Chart 默认情况下不会在 Ingress 上设置 `ingressClassName`。因此,你必须将 Ingress Controller 配置为在没有 `ingressClassName` 的情况下也可以监视 Ingress。
|
||||
|
||||
上面的 **Amazon EKS**、**AKS** 和 **GKE** 教程中包含了示例。
|
||||
|
||||
### CLI 工具
|
||||
|
||||
设置 Kubernetes 集群需要以下 CLI 工具。请确保这些工具已安装并在你的 `$PATH` 中可用。
|
||||
|
||||
- [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl) - Kubernetes 命令行工具。
|
||||
- [Helm](https://docs.helm.sh/using_helm/#installing-helm) - Kubernetes 的包管理器。请参见 [Helm 版本要求](../getting-started/installation-and-upgrade/resources/helm-version-requirements.md)选择 Helm 版本来安装 Rancher。请为你的具体平台参见 [Helm 项目提供的说明](https://helm.sh/docs/intro/install/)。
|
||||
|
||||
## 安装 Rancher Helm Chart
|
||||
|
||||
Rancher 是使用 Kubernetes 的 [Helm](https://helm.sh/) 包管理器安装的。Helm Chart 为 Kubernetes YAML 清单文件提供了模板语法。通过 Helm,用户可以创建可配置的 deployment,而不仅仅只能使用静态文件。
|
||||
|
||||
如果系统无法直接访问互联网,请参见[离线环境:Kubernetes 安装](../getting-started/installation-and-upgrade/other-installation-methods/air-gapped-helm-cli-install/install-rancher-ha.md)。
|
||||
|
||||
如果要指定安装的 Rancher 版本,请参见[选择 Rancher 版本](../getting-started/installation-and-upgrade/resources/choose-a-rancher-version.md)。
|
||||
|
||||
如果要指定用于安装 Rancher 的 Helm 版本,请参见[Helm 版本要求](../getting-started/installation-and-upgrade/resources/helm-version-requirements.md)。
|
||||
|
||||
:::note
|
||||
|
||||
本安装指南假定你使用的是 Helm 3。
|
||||
|
||||
:::
|
||||
|
||||
要设置 Rancher:
|
||||
|
||||
1. [添加 Helm Chart 仓库](#1-添加-helm-chart-仓库)
|
||||
2. [为 Rancher 创建命名空间](#2-为-rancher-创建命名空间)
|
||||
3. [选择 SSL 配置](#3-选择-ssl-配置)
|
||||
4. [安装 cert-manager](#4-安装-cert-manager)(除非你自带证书,否则 TLS 将在负载均衡器上终止)
|
||||
5. [使用 Helm 和你选择的证书选项安装 Rancher](#5-根据你选择的证书选项通过-helm-安装-rancher)
|
||||
6. [验证 Rancher Server 是否部署成功](#6-验证-rancher-server-是否部署成功)
|
||||
7. [保存选项](#7-保存选项)
|
||||
|
||||
### 1. 添加 Helm Chart 仓库
|
||||
|
||||
执行 `helm repo add` 命令,以添加包含安装 Rancher 的 Chart 的 Helm Chart 仓库。有关如何选择仓库,以及哪个仓库最适合你的用例,请参见[选择 Rancher 版本](../getting-started/installation-and-upgrade/resources/choose-a-rancher-version.md)。
|
||||
|
||||
- Latest:建议用于试用最新功能
|
||||
```
|
||||
helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
|
||||
```
|
||||
- Stable:建议用于生产环境
|
||||
```
|
||||
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
|
||||
```
|
||||
- Alpha:即将发布的实验性预览。
|
||||
```
|
||||
helm repo add rancher-alpha https://releases.rancher.com/server-charts/alpha
|
||||
```
|
||||
注意:不支持升级到 Alpha 版、从 Alpha 版升级或在 Alpha 版之间升级。
|
||||
|
||||
### 2. 为 Rancher 创建命名空间
|
||||
|
||||
你需要定义一个 Kubernetes 命名空间,用于安装由 Chart 创建的资源。这个命名空间的名称为 `cattle-system`:
|
||||
|
||||
```
|
||||
kubectl create namespace cattle-system
|
||||
```
|
||||
|
||||
### 3. 选择 SSL 配置
|
||||
|
||||
Rancher Management Server 默认需要 SSL/TLS 配置来保证访问的安全性。
|
||||
|
||||
:::note
|
||||
|
||||
如果你想在外部终止 SSL/TLS,请参见[外部负载均衡器的 TLS 终止](../getting-started/installation-and-upgrade/installation-references/helm-chart-options.md#外部-tls-终止)。
|
||||
|
||||
:::
|
||||
|
||||
你可以从以下三种证书来源中选择一种,用于在 Rancher Server 中终止 TLS:
|
||||
|
||||
- **Rancher 生成的 TLS 证书**:要求你在集群中安装 `cert-manager`。Rancher 使用 `cert-manager` 签发并维护证书。Rancher 会生成自己的 CA 证书,并使用该 CA 签署证书。然后 `cert-manager`负责管理该证书。
|
||||
- **Let's Encrypt**:Let's Encrypt 选项也需要使用 `cert-manager`。但是,在这种情况下,cert-manager 与 Let's Encrypt 的特殊颁发者相结合,该颁发者执行获取 Let's Encrypt 颁发的证书所需的所有操作(包括请求和验证)。此配置使用 HTTP 验证(`HTTP-01`),因此负载均衡器必须具有可以从互联网访问的公共 DNS 记录。
|
||||
- **你已有的证书**:使用已有的 CA 颁发的公有或私有证书。Rancher 将使用该证书来保护 WebSocket 和 HTTPS 流量。在这种情况下,你必须上传名称分别为 `tls.crt` 和 `tls.key`的 PEM 格式的证书以及相关的密钥。如果你使用私有 CA,则还必须上传该 CA 证书。这是由于你的节点可能不信任此私有 CA。Rancher 将获取该 CA 证书,并从中生成一个校验和,各种 Rancher 组件将使用该校验和来验证其与 Rancher 的连接。
|
||||
|
||||
|
||||
| 配置 | Helm Chart 选项 | 是否需要 cert-manager |
|
||||
| ------------------------------ | ----------------------- | ------------------------------------- |
|
||||
| Rancher 生成的证书(默认) | `ingress.tls.source=rancher` | [是](#4-安装-cert-manager) |
|
||||
| Let’s Encrypt | `ingress.tls.source=letsEncrypt` | [是](#4-安装-cert-manager) |
|
||||
| 你已有的证书 | `ingress.tls.source=secret` | 否 |
|
||||
|
||||
### 4. 安装 cert-manager
|
||||
|
||||
:::note
|
||||
|
||||
v2.6.4 兼容 cert-manager 版本 1.6.2 和 1.7.1。推荐使用 v1.7.x,因为 v 1.6.x 将在 2022 年 3 月 30 日结束生命周期。
|
||||
|
||||
:::
|
||||
|
||||
> 如果你使用自己的证书文件(`ingress.tls.source=secret`)或使用[外部负载均衡器的 TLS 终止](../getting-started/installation-and-upgrade/installation-references/helm-chart-options.md#外部-tls-终止),你可以跳过此步骤。
|
||||
|
||||
仅在使用 Rancher 生成的证书(`ingress.tls.source=rancher`)或 Let's Encrypt 颁发的证书(`ingress.tls.source=letsEncrypt`)时,才需要安装 cert-manager。
|
||||
|
||||
<details id="cert-manager">
|
||||
<summary>单击展开</summary>
|
||||
|
||||
:::note 重要提示:
|
||||
|
||||
由于 cert-manager 的最新改动,你需要升级 cert-manager 版本。如果你需要升级 Rancher 并使用低于 0.11.0 的 cert-manager 版本,请参见[升级文档](../getting-started/installation-and-upgrade/resources/upgrade-cert-manager.md)。
|
||||
|
||||
:::
|
||||
|
||||
这些说明来自 [cert-manager 官方文档](https://cert-manager.io/docs/installation/kubernetes/#installing-with-helm)。
|
||||
|
||||
:::note
|
||||
|
||||
要查看自定义 cert-manager 安装的选项(包括集群使用 PodSecurityPolicies 的情况),请参阅 [cert-manager 文档](https://artifacthub.io/packages/helm/cert-manager/cert-manager#configuration)。
|
||||
|
||||
:::
|
||||
|
||||
```
|
||||
# 如果你手动安装了CRD,而不是在 Helm 安装命令中添加了 `--set installCRDs=true` 选项,你应该在升级 Helm Chart 之前升级 CRD 资源。
|
||||
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.11.0/cert-manager.crds.yaml
|
||||
|
||||
# 添加 Jetstack Helm 仓库
|
||||
helm repo add jetstack https://charts.jetstack.io
|
||||
|
||||
# 更新本地 Helm Chart 仓库缓存
|
||||
helm repo update
|
||||
|
||||
# 安装 cert-manager Helm Chart
|
||||
helm install cert-manager jetstack/cert-manager \
|
||||
--namespace cert-manager \
|
||||
--create-namespace \
|
||||
--version v1.11.0
|
||||
```
|
||||
|
||||
安装完 cert-manager 后,你可以通过检查 cert-manager 命名空间中正在运行的 Pod 来验证它是否已正确部署:
|
||||
|
||||
```
|
||||
kubectl get pods --namespace cert-manager
|
||||
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
cert-manager-5c6866597-zw7kh 1/1 Running 0 2m
|
||||
cert-manager-cainjector-577f6d9fd7-tr77l 1/1 Running 0 2m
|
||||
cert-manager-webhook-787858fcdb-nlzsq 1/1 Running 0 2m
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
### 5. 根据你选择的证书选项,通过 Helm 安装 Rancher
|
||||
|
||||
不同的证书配置需要使用不同的 Rancher 安装命令。
|
||||
|
||||
但是,无论证书如何配置,Rancher 在 `cattle-system` 命名空间中的安装名称应该总是 `rancher`。
|
||||
|
||||
:::tip 测试和开发:
|
||||
|
||||
这个安装 Rancher 的最终命令需要一个将流量转发到 Rancher 的域名。如果你使用 Helm CLI 设置概念证明,则可以在传入 `hostname` 选项时使用伪域名。伪域名的一个例子是 `<IP_OF_LINUX_NODE>.sslip.io`,这会把 Rancher 暴露在它运行的 IP 上。生产安装中要求填写真实的域名。
|
||||
|
||||
:::
|
||||
|
||||
<Tabs>
|
||||
<TabItem value="Rancher 生成的证书">
|
||||
|
||||
默认情况是使用 Rancher 生成 CA,并使用 `cert-manager` 颁发用于访问 Rancher Server 接口的证书。
|
||||
|
||||
由于 `rancher` 是 `ingress.tls.source` 的默认选项,因此在执行 `helm install` 命令时,我们不需要指定 `ingress.tls.source`。
|
||||
|
||||
- 将 `hostname` 设置为解析到你的负载均衡器的 DNS 名称。
|
||||
- 将 `bootstrapPassword` 设置为 `admin` 用户独有的值。
|
||||
- 如果你需要安装指定的 Rancher 版本,使用 `--version` 标志,例如 `--version 2.3.6`。
|
||||
|
||||
```
|
||||
helm install rancher rancher-<CHART_REPO>/rancher \
|
||||
--namespace cattle-system \
|
||||
--set hostname=rancher.my.org \
|
||||
--set bootstrapPassword=admin
|
||||
```
|
||||
|
||||
如果你安装的是 alpha 版本,Helm 会要求你在安装命令中添加 `--devel` 选项:
|
||||
|
||||
```
|
||||
helm install rancher rancher-alpha/rancher --devel
|
||||
```
|
||||
|
||||
等待 Rancher 运行:
|
||||
|
||||
```
|
||||
kubectl -n cattle-system rollout status deploy/rancher
|
||||
Waiting for deployment "rancher" rollout to finish: 0 of 3 updated replicas are available...
|
||||
deployment "rancher" successfully rolled out
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="Let's Encrypt">
|
||||
|
||||
此选项使用 `cert-manager` 来自动请求和续订 [Let's Encrypt](https://letsencrypt.org/) 证书。Let's Encrypt 是免费的,而且是受信的 CA,因此可以为你提供有效的证书。
|
||||
|
||||
:::note
|
||||
|
||||
由于 HTTP-01 质询只能在端口 80 上完成,因此你需要打开端口 80。
|
||||
|
||||
:::
|
||||
|
||||
在以下命令中,
|
||||
|
||||
- 将 `hostname` 设置为公有 DNS 记录。
|
||||
- 将 `bootstrapPassword` 设置为 `admin` 用户独有的值。
|
||||
- 将 `ingress.tls.source` 设置为 `letsEncrypt`。
|
||||
- 将 `letsEncrypt.email` 设置为可通讯的电子邮件地址,用于发送通知(例如证书到期的通知)。
|
||||
- 将 `letsEncrypt.ingress.class` 设为你的 Ingress Controller(例如 `traefik`,`nginx`,`haproxy`)
|
||||
|
||||
```
|
||||
helm install rancher rancher-<CHART_REPO>/rancher \
|
||||
--namespace cattle-system \
|
||||
--set hostname=rancher.my.org \
|
||||
--set bootstrapPassword=admin \
|
||||
--set ingress.tls.source=letsEncrypt \
|
||||
--set letsEncrypt.email=me@example.org \
|
||||
--set letsEncrypt.ingress.class=nginx
|
||||
```
|
||||
|
||||
如果你安装的是 alpha 版本,Helm 会要求你在安装命令中添加 `--devel` 选项:
|
||||
|
||||
```
|
||||
helm install rancher rancher-alpha/rancher --devel
|
||||
```
|
||||
|
||||
等待 Rancher 运行:
|
||||
|
||||
```
|
||||
kubectl -n cattle-system rollout status deploy/rancher
|
||||
Waiting for deployment "rancher" rollout to finish: 0 of 3 updated replicas are available...
|
||||
deployment "rancher" successfully rolled out
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="证书文件">
|
||||
在此选项中,你使用你自己的证书来创建 Kubernetes 密文,以供 Rancher 使用。
|
||||
|
||||
运行这个命令时,`hostname` 选项必须与服务器证书中的 `Common Name` 或 `Subject Alternative Names` 条目匹配,否则 Ingress controller 将无法正确配置。
|
||||
|
||||
虽然技术上仅需要 `Subject Alternative Names` 中有一个条目,但是拥有一个匹配的 `Common Name` 可以最大程度地提高与旧版浏览器/应用的兼容性。
|
||||
|
||||
:::note
|
||||
|
||||
如果你想检查证书是否正确,请查看[如何在服务器证书中检查 Common Name 和 Subject Alternative Names](../faq/technical-items.md#如何在服务器证书中检查-common-name-和-subject-alternative-names)。
|
||||
|
||||
:::
|
||||
|
||||
- 设置 `hostname`。
|
||||
- 将 `bootstrapPassword` 设置为 `admin` 用户独有的值。
|
||||
- 将 `ingress.tls.source` 设置为 `secret`。
|
||||
|
||||
```
|
||||
helm install rancher rancher-<CHART_REPO>/rancher \
|
||||
--namespace cattle-system \
|
||||
--set hostname=rancher.my.org \
|
||||
--set bootstrapPassword=admin \
|
||||
--set ingress.tls.source=secret
|
||||
```
|
||||
如果你安装的是 alpha 版本,Helm 会要求你在安装命令中添加 `--devel` 选项:
|
||||
|
||||
```
|
||||
helm install rancher rancher-alpha/rancher --devel
|
||||
```
|
||||
|
||||
如果你使用的是私有 CA 证书,请在命令中增加 `--set privateCA=true`。
|
||||
|
||||
```
|
||||
helm install rancher rancher-<CHART_REPO>/rancher \
|
||||
--namespace cattle-system \
|
||||
--set hostname=rancher.my.org \
|
||||
--set bootstrapPassword=admin \
|
||||
--set ingress.tls.source=secret \
|
||||
--set privateCA=true
|
||||
```
|
||||
|
||||
**添加 TLS 密文(千万不要遗漏此步骤)**:现在 Rancher 已经完成部署,你还需要参考[添加 TLS 密文](../getting-started/installation-and-upgrade/resources/add-tls-secrets.md)发布证书文件,以便 Rancher 和 Ingress Controller 可以使用它们。
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
Rancher Chart 有许多选项,用于为你的具体环境自定义安装。以下是一些常见的高级方案:
|
||||
|
||||
- [HTTP 代理](../getting-started/installation-and-upgrade/installation-references/helm-chart-options.md#http-代理)
|
||||
- [私有容器镜像仓库](../getting-started/installation-and-upgrade/installation-references/helm-chart-options.md#私有仓库和离线安装)
|
||||
- [外部负载均衡器上的 TLS 终止](../getting-started/installation-and-upgrade/installation-references/helm-chart-options.md#外部-tls-终止)
|
||||
|
||||
如需获取完整的选项列表,请参见 [Chart 选项](../getting-started/installation-and-upgrade/installation-references/helm-chart-options.md)。
|
||||
|
||||
|
||||
### 6. 验证 Rancher Server 是否部署成功
|
||||
|
||||
添加密文后,检查 Rancher 是否已成功运行:
|
||||
|
||||
```
|
||||
kubectl -n cattle-system rollout status deploy/rancher
|
||||
Waiting for deployment "rancher" rollout to finish: 0 of 3 updated replicas are available...
|
||||
deployment "rancher" successfully rolled out
|
||||
```
|
||||
|
||||
如果你看到 `error: deployment "rancher" exceeded its progress deadline` 这个错误,可运行以下命令来检查 deployment 的状态:
|
||||
|
||||
```
|
||||
kubectl -n cattle-system get deploy rancher
|
||||
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
|
||||
rancher 3 3 3 3 3m
|
||||
```
|
||||
|
||||
`DESIRED` 和 `AVAILABLE`的个数应该相同。
|
||||
|
||||
### 7. 保存选项
|
||||
|
||||
请保存你使用的 `--set` 选项。使用 Helm 升级 Rancher 到新版本时,你将需要使用相同的选项。
|
||||
|
||||
### 安装完成
|
||||
|
||||
安装已完成。现在 Rancher Server 应该已经可以正常运行了。
|
||||
|
||||
使用浏览器打开把流量转发到你的负载均衡器的 DNS 域名。然后,你就会看到一个漂亮的登录页面了。
|
||||
|
||||
如果遇到任何问题,请参见[故障排除](../getting-started/installation-and-upgrade/install-upgrade-on-a-kubernetes-cluster/troubleshooting.md)。
|
||||
@@ -0,0 +1,94 @@
|
||||
---
|
||||
title: 安装/升级 Rancher
|
||||
description: 了解如何在开发和生产环境中安装 Rancher。了解单节点和高可用安装
|
||||
---
|
||||
|
||||
本节介绍了 Rancher 各种安装方式以及每个安装方式的优点。
|
||||
|
||||
## 名词解释
|
||||
|
||||
本章节涉及以下名词:
|
||||
|
||||
- **Rancher Server**:用于管理和配置 Kubernetes 集群。你可以通过 Rancher Server 的 UI 与下游 Kubernetes 集群进行交互。Rancher Management Server 可以安装到任意 Kubernetes 集群上,包括托管的集群,如 Amazon EKS 集群。
|
||||
- **RKE(Rancher Kubernetes Engine)**:是经过认证的 Kubernetes 发行版,也是用于创建和管理 Kubernetes 集群的 CLI 工具和库。
|
||||
- **K3s(轻量级 Kubernetes)**:也是经过认证的 Kubernetes 发行版。它比 RKE 更新,更易用且更轻量,其所有组件都在一个小于 100 MB 的二进制文件中。
|
||||
- **RKE2**:一个完全合规的 Kubernetes 发行版,专注于安全和合规性。
|
||||
|
||||
`restrictedAdmin` Helm Chart 选项在 **Rancher Server** 可用。如果该选项设置为 true,初始的 Rancher 用户访问本地 Kubernetes 集群会受到限制,以避免权限升级。详情请参见 [restricted-admin 角色](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/manage-role-based-access-control-rbac/global-permissions.md#受限管理员)。
|
||||
|
||||
## 安装方式概述
|
||||
|
||||
Rancher 可以安装在以下主要架构上:
|
||||
|
||||
### 使用 Helm CLI 安装的高可用 Kubernetes
|
||||
|
||||
我们建议使用 Kubernetes 包管理器 Helm 在专用的 Kubernetes 集群上安装 Rancher。在 RKE 集群中,需要使用三个节点才能实现高可用集群。在 K3s 集群中,只需要两个节点即可。
|
||||
|
||||
### 通过 AWS Marketplace 在 EKS 上安装 Rancher
|
||||
|
||||
你可以[通过 AWS Marketplace](../getting-started/quick-start-guides/deploy-rancher-manager/aws-marketplace.md) 将 Rancher 安装到 Amazon Elastic Kubernetes Service (EKS) 上。部署的 EKS 集群已生产就绪,并遵循 AWS 最佳实践。
|
||||
|
||||
### 单节点 Kubernetes 安装
|
||||
|
||||
Rancher 可以安装在单节点 Kubernetes 集群上。但是,在单节点安装的情况下,Rancher Server 没有高可用性。而高可用性对在生产环境中运行 Rancher 非常重要。
|
||||
|
||||
但是,如果你想要短期内使用单节点节省资源,同时又保留高可用性迁移路径,那么单节点 Kubernetes 安装也是合适的。你也可以之后向集群中添加节点,获得高可用的 Rancher Server。
|
||||
|
||||
### Docker 安装
|
||||
|
||||
如果你的目的是测试或演示,你可以使用 Docker 把 Rancher 安装到单个节点中。本地 Kubernetes 集群是安装到单个 Docker 容器中的,而 Rancher 是安装到本地集群中的。
|
||||
|
||||
Rancher backup operator 可将 Rancher 从单个 Docker 容器迁移到高可用 Kubernetes 集群上。详情请参见[把 Rancher 迁移到新集群](../how-to-guides/new-user-guides/backup-restore-and-disaster-recovery/migrate-rancher-to-new-cluster.md)。
|
||||
|
||||
### 其他方式
|
||||
|
||||
如果你需要在离线环境中或使用 HTTP 代理安装 Rancher,请参见以下独立的说明文档:
|
||||
|
||||
| 网络访问方式 | 基于 Kubernetes 安装(推荐) | 基于 Docker 安装 |
|
||||
| ---------------------------------- | ------------------------------ | ---------- |
|
||||
| 可直接访问互联网 | [文档](install-upgrade-on-a-kubernetes-cluster.md) | [文档](rancher-on-a-single-node-with-docker.md) |
|
||||
| 使用 HTTP 代理 | [文档](rancher-behind-an-http-proxy.md) | [文档](rancher-on-a-single-node-with-docker.md)及[配置](../reference-guides/single-node-rancher-in-docker/http-proxy-configuration.md) |
|
||||
| 离线环境 | [文档](air-gapped-helm-cli-install.md) | [文档](air-gapped-helm-cli-install.md) |
|
||||
|
||||
我们建议在 Kubernetes 集群上安装 Rancher,因为在多节点集群中,Rancher Server 可以实现高可用。高可用配置可以提升 Rancher 访问其管理的下游 Kubernetes 集群的稳定性。
|
||||
|
||||
因此,我们建议在生产级别的架构中,设置一个高可用的 Kubernetes 集群,然后在这个集群上安装 Rancher。安装 Rancher 后,你可以使用 Rancher 部署和管理 Kubernetes 集群。
|
||||
|
||||
如果你的目的是测试或演示,你可以将 Rancher 安装到单个 Docker 容器中。Docker 安装可以让你实现开箱即用,以使用 Rancher 设置 Kubernetes 集群。Docker 安装主要是用于探索 Rancher Server 的功能,只适用于开发和测试。
|
||||
|
||||
[在 Kubernetes 上安装 Rancher 的说明](install-upgrade-on-a-kubernetes-cluster.md)介绍了如何首先使用 K3s 或 RKE 创建和管理 Kubernetes 集群,然后再将 Rancher 安装到该集群上。
|
||||
|
||||
如果 Kubernetes 集群中的节点正在运行且满足[节点要求](installation-requirements.md),你可以使用 Helm 将 Rancher 部署到 Kubernetes 上。Helm 使用 Rancher 的 Helm Chart 在 Kubernetes 集群的每个节点上安装 Rancher 的副本。我们建议使用负载均衡器将流量定向到集群中的每个 Rancher 副本上。
|
||||
|
||||
如需进一步了解 Rancher 架构,请参见[架构概述](rancher-manager-architecture.md),[生产级别架构推荐](../reference-guides/rancher-manager-architecture/architecture-recommendations.md)或[最佳实践指南](../reference-guides/best-practices/rancher-server/tips-for-running-rancher.md)。
|
||||
|
||||
## 先决条件
|
||||
|
||||
安装 Rancher 之前,请确保你的节点满足所有[安装要求](installation-requirements.md)。
|
||||
|
||||
## 架构建议
|
||||
|
||||
为了达到最佳性能和安全性,我们建议你为 Rancher Management Server 使用单独的专用 Kubernetes 集群。不建议在此集群上运行用户工作负载。部署 Rancher 后,你可以[创建或导入集群](kubernetes-clusters-in-rancher-setup.md)来运行你的工作负载。
|
||||
|
||||
详情请参见[架构推荐](../reference-guides/rancher-manager-architecture/architecture-recommendations.md)。
|
||||
|
||||
### 在 Kubernetes 上安装 Rancher 的更多选项
|
||||
|
||||
参见 [Helm Chart 选项](../getting-started/installation-and-upgrade/installation-references/helm-chart-options.md)以了解在 Kubernetes 集群上安装 Rancher 的其他配置,包括:
|
||||
|
||||
- [开启 API 审计日志来记录所有事务](../getting-started/installation-and-upgrade/installation-references/helm-chart-options.md#api-审计日志)
|
||||
- [负载均衡器上的 TLS 终止](../getting-started/installation-and-upgrade/installation-references/helm-chart-options.md#外部-tls-终止)
|
||||
- [自定义 Ingress](../getting-started/installation-and-upgrade/installation-references/helm-chart-options.md#自定义-ingress)
|
||||
|
||||
在 Rancher 的安装指南中,我们推荐使用 K3s 或 RKE 来配置 Kubernetes 集群,然后再在这个集群中安装 Rancher。K3s 和 RKE 均提供许多配置选项,用于为你的具体环境自定义 Kubernetes 集群。有关选项和功能的完整列表,请参见:
|
||||
|
||||
- [RKE 配置选项](https://rancher.com/docs/rke/latest/en/config-options/)
|
||||
- [K3s 配置选项](https://rancher.com/docs/k3s/latest/en/installation/install-options/)
|
||||
|
||||
### 在 Docker 上安装 Rancher 的更多选项
|
||||
|
||||
参见 [Docker 安装选项](rancher-on-a-single-node-with-docker.md)了解其他配置,包括:
|
||||
|
||||
- [开启 API 审计日志来记录所有事务](../reference-guides/single-node-rancher-in-docker/advanced-options.md#api-审计日志)
|
||||
- [外部负载均衡器](../how-to-guides/advanced-user-guides/configure-layer-7-nginx-load-balancer.md)
|
||||
- [持久化数据存储](../reference-guides/single-node-rancher-in-docker/advanced-options.md#持久化数据)
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: 安装参考
|
||||
---
|
||||
|
||||
有关其他安装资源,请参阅以下参考指南:[Rancher Helm Chart 选项](../getting-started/installation-and-upgrade/installation-references/helm-chart-options.md)、[TLS 设置](../getting-started/installation-and-upgrade/installation-references/tls-settings.md)和[功能开关](../getting-started/installation-and-upgrade/installation-references/feature-flags.md)。
|
||||
@@ -0,0 +1,155 @@
|
||||
---
|
||||
title: 安装要求
|
||||
description: 如果 Rancher 配置在 Docker 或 Kubernetes 中运行时,了解运行 Rancher Server 的每个节点的节点要求
|
||||
---
|
||||
|
||||
本文描述了对需要安装 Rancher Server 的节点的软件、硬件和网络要求。Rancher Server 可以安装在单个节点或高可用的 Kubernetes 集群上。
|
||||
|
||||
:::note 重要提示:
|
||||
|
||||
如果你需要在 Kubernetes 集群上安装 Rancher,该节点的要求与用于运行应用和服务的[下游集群的节点要求](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/node-requirements-for-rancher-managed-clusters.md)不同。
|
||||
|
||||
:::
|
||||
|
||||
Rancher UI 在基于 Firefox 或 Chromium 的浏览器(Chrome、Edge、Opera、Brave)中效果最佳。
|
||||
|
||||
查看我们的[最佳实践](../reference-guides/best-practices/rancher-server/tips-for-running-rancher.md)页面,获取在生产环境中运行 Rancher Server 的建议。
|
||||
|
||||
## Kubernetes 与 Rancher 的兼容性
|
||||
|
||||
Rancher 需要安装在支持的 Kubernetes 版本上。请查阅 [Rancher 支持矩阵](https://www.suse.com/suse-rancher/support-matrix/all-supported-versions/rancher-v2-6-10/),确保你的 Kubernetes 版本受支持。
|
||||
|
||||
## 操作系统和容器运行时要求
|
||||
|
||||
所有支持的操作系统都使用 64-bit x86 架构。Rancher 兼容当前所有的主流 Linux 发行版。
|
||||
|
||||
[Rancher 支持矩阵](https://www.suse.com/suse-rancher/support-matrix/all-supported-versions/rancher-v2-6-10/)列出了每个 Rancher 版本测试过的操作系统和 Docker 版本。
|
||||
|
||||
运行 RKE 集群的节点需要安装 Docker。RKE2 或 K3s 集群不需要它。
|
||||
|
||||
请安装 `ntp`(Network Time Protocol),以防止在客户端和服务器之间由于时间不同步造成的证书验证错误。
|
||||
|
||||
某些 Linux 发行版的默认防火墙规则可能会阻止 Kubernetes 集群内的通信。从 Kubernetes v1.19 开始,你必须关闭 firewalld,因为它与 Kubernetes 网络插件冲突。
|
||||
|
||||
如果你不太想这样做的话,你可以查看[相关问题](https://github.com/rancher/rancher/issues/28840)中的建议。某些用户已能成功[使用 ACCEPT 策略 为 Pod CIDR 创建一个独立的 firewalld 区域](https://github.com/rancher/rancher/issues/28840#issuecomment-787404822)。
|
||||
|
||||
如果你需要在 ARM64 上使用 Rancher,请参见[在 ARM64(实验功能)上运行 Rancher](../how-to-guides/advanced-user-guides/enable-experimental-features/rancher-on-arm64.md)。
|
||||
|
||||
### RKE 要求
|
||||
|
||||
容器运行时方面,RKE 可以兼容当前的所有 Docker 版本。
|
||||
|
||||
有关详细信息,请参阅[安装 Docker](../getting-started/installation-and-upgrade/installation-requirements/install-docker.md)。
|
||||
|
||||
### K3s 要求
|
||||
|
||||
对于容器运行时,K3s 默认附带了自己的 containerd。你也可以将 K3s 配置为使用已安装的 Docker 运行时。有关在 Docker 中使用 K3s 的更多信息,请参阅 [K3s 文档](https://docs.k3s.io/advanced#using-docker-as-the-container-runtime)。
|
||||
|
||||
Rancher 需要安装在支持的 Kubernetes 版本上。如需了解你使用的 Rancher 版本支持哪些 Kubernetes 版本,请参见 [Rancher 支持矩阵](https://www.suse.com/suse-rancher/support-matrix/all-supported-versions/rancher-v2-6-10/)。如需指定 K3s 版本,在运行 K3s 安装脚本时,使用 `INSTALL_K3S_VERSION` 环境变量。
|
||||
|
||||
如果你使用 **Raspbian Buster** 在 K3s 集群上安装 Rancher,请按照[这些步骤](https://rancher.com/docs/k3s/latest/en/advanced/#enabling-legacy-iptables-on-raspbian-buster)切换到旧版 iptables。
|
||||
|
||||
如果你使用 Alpine Linux 的 K3s 集群上安装 Rancher,请按照[这些步骤](https://rancher.com/docs/k3s/latest/en/advanced/#additional-preparation-for-alpine-linux-setup) 进行其他设置。
|
||||
|
||||
### RKE2 要求
|
||||
|
||||
对于容器运行时,RKE2 附带了自己的 containerd。RKE2 安装不需要 Docker。
|
||||
|
||||
如需了解 RKE2 通过了哪些操作系统版本的测试,请参见 [Rancher 支持矩阵](https://www.suse.com/suse-rancher/support-matrix/all-supported-versions/rancher-v2-6-10/)。
|
||||
|
||||
## 硬件要求
|
||||
|
||||
本节描述安装 Rancher Server 的节点的 CPU、内存和磁盘要求。
|
||||
|
||||
## CPU 和内存
|
||||
|
||||
硬件要求根据你的 Rancher 部署规模而定。请根据要求配置每个节点。通过单节点容器安装 Rancher,和在 Kubernetes 集群上安装 Rancher 的要求有所不同。
|
||||
|
||||
### RKE 和托管 Kubernetes
|
||||
|
||||
这些 CPU 和内存要求适用于每个安装 Rancher Server 的 Kubernetes 集群中的主机。
|
||||
|
||||
这些要求适用于 RKE Kubernetes 集群以及托管的 Kubernetes 集群,例如 EKS。
|
||||
|
||||
| 部署规模 | 集群 | 节点 | vCPUs | 内存 |
|
||||
| --------------- | ---------- | ------------ | -------| ------- |
|
||||
| 小 | 最多 150 个 | 最多 1500 个 | 2 | 8 GB |
|
||||
| 中 | 最多 300 个 | 最多 3,000 个 | 4 | 16 GB |
|
||||
| 大 | 最多 500 个 | 最多 5,000 个 | 8 | 32 GB |
|
||||
| 特大 | 最多 1,000 个 | 最多 10,000 个 | 16 | 64 GB |
|
||||
| 超大 | 最多 2,000 个 | 最多 20,000 个 | 32 | 128 GB |
|
||||
|
||||
每个用例和环境都是不同的。请[联系 Rancher](https://rancher.com/contact/) 来审核你的情况。
|
||||
|
||||
### K3s Kubernetes
|
||||
|
||||
这些 CPU 和内存要求适用于每个[安装 Rancher Server 的 Kubernetes 集群](install-upgrade-on-a-kubernetes-cluster.md)中的主机。
|
||||
|
||||
| 部署规模 | 集群 | 节点 | vCPUs | 内存 | 数据库大小 |
|
||||
| --------------- | ---------- | ------------ | -------| ---------| ------------------------- |
|
||||
| 小 | 最多 150 个 | 最多 1500 个 | 2 | 8 GB | 2 核,4 GB + 1,000 IOPS |
|
||||
| 中 | 最多 300 个 | 最多 3,000 个 | 4 | 16 GB | 2 核,4 GB + 1,000 IOPS |
|
||||
| 大 | 最多 500 个 | 最多 5,000 个 | 8 | 32 GB | 2 核,4 GB + 1,000 IOPS |
|
||||
| 特大 | 最多 1,000 个 | 最多 10,000 个 | 16 | 64 GB | 2 核,4 GB + 1,000 IOPS |
|
||||
| 超大 | 最多 2,000 个 | 最多 20,000 个 | 32 | 128 GB | 2 核,4 GB + 1,000 IOPS |
|
||||
|
||||
每个用例和环境都是不同的。请[联系 Rancher](https://rancher.com/contact/) 来审核你的情况。
|
||||
|
||||
|
||||
### RKE2 Kubernetes
|
||||
|
||||
这些 CPU 和内存要求适用于安装了 RKE2 的每个实例。最低配置要求如下:
|
||||
|
||||
| 部署规模 | 集群 | 节点 | vCPUs | 内存 |
|
||||
| --------------- | -------- | --------- | ----- | ---- |
|
||||
| 小 | 最多 5 个 | 最多 50 个 | 2 | 5 GB |
|
||||
| 中 | 最多 15 个 | 最多 200 个 | 3 | 9 GB |
|
||||
|
||||
### Docker
|
||||
|
||||
这些 CPU 和内存要求适用于[单节点](rancher-on-a-single-node-with-docker.md)安装 Rancher 的主机。
|
||||
|
||||
| 部署规模 | 集群 | 节点 | vCPUs | 内存 |
|
||||
| --------------- | -------- | --------- | ----- | ---- |
|
||||
| 小 | 最多 5 个 | 最多 50 个 | 1 | 4 GB |
|
||||
| 中 | 最多 15 个 | 最多 200 个 | 2 | 8 GB |
|
||||
|
||||
## Ingress
|
||||
|
||||
安装 Rancher 的 Kubernetes 集群中的每个节点都应该运行一个 Ingress。
|
||||
|
||||
Ingress 需要部署为 DaemonSet 以确保负载均衡器能成功把流量转发到各个节点。
|
||||
|
||||
如果是 RKE,RKE2 和 K3s 安装,你不需要手动安装 Ingress,因为它是默认安装的。
|
||||
|
||||
对于托管的 Kubernetes 集群(EKS、GKE、AKS),你需要设置 Ingress。
|
||||
|
||||
- **Amazon EKS**:[在 Amazon EKS 上安装 Rancher 以及如何安装 Ingress 以访问 Rancher Server](../getting-started/installation-and-upgrade/install-upgrade-on-a-kubernetes-cluster/rancher-on-amazon-eks.md)。
|
||||
- **AKS**:[使用 Azure Kubernetes 服务安装 Rancher 以及如何安装 Ingress 以访问 Rancher Server](../getting-started/installation-and-upgrade/install-upgrade-on-a-kubernetes-cluster/rancher-on-aks.md)。
|
||||
- **GKE**:[使用 GKE 安装 Rancher 以及如何安装 Ingress 以访问 Rancher Server](../getting-started/installation-and-upgrade/install-upgrade-on-a-kubernetes-cluster/rancher-on-gke.md)。
|
||||
|
||||
## 磁盘
|
||||
|
||||
etcd 在集群中的性能决定了 Rancher 的性能。因此,为了获得最佳速度,我们建议使用 SSD 磁盘来支持 Rancher 管理的 Kubernetes 集群。在云提供商上,你还需使用能获得最大 IOPS 的最小大小。在较大的集群中,请考虑使用专用存储设备存储 etcd 数据和 wal 目录。
|
||||
|
||||
## 网络要求
|
||||
|
||||
本节描述了安装 Rancher Server 的节点的网络要求。
|
||||
|
||||
:::caution
|
||||
|
||||
如果包含 Rancher 的服务器带有 `X-Frame-Options=DENY` 标头,在升级旧版 UI 之后,Rancher UI 中的某些页面可能无法渲染。这是因为某些旧版页面在新 UI 中是以 iFrames 模式嵌入的。
|
||||
|
||||
:::
|
||||
|
||||
### 节点 IP 地址
|
||||
|
||||
无论你是在单个节点还是高可用集群上安装 Rancher,每个节点都应配置一个静态 IP。如果使用 DHCP,则每个节点都应该有一个 DHCP 预留,以确保节点分配到相同的 IP 地址。
|
||||
|
||||
### 端口要求
|
||||
|
||||
为了确保能正常运行,Rancher 需要在 Rancher 节点和下游 Kubernetes 集群节点上开放一些端口。不同集群类型的 Rancher 和下游集群的所有必要端口,请参见[端口要求](../getting-started/installation-and-upgrade/installation-requirements/port-requirements.md)。
|
||||
|
||||
## Dockershim 支持
|
||||
|
||||
有关 Dockershim 支持的详情,请参见[此页面](../getting-started/installation-and-upgrade/installation-requirements/dockershim.md)。
|
||||
@@ -0,0 +1,30 @@
|
||||
---
|
||||
title: 设置指南
|
||||
---
|
||||
|
||||
本文介绍如何启用 Istio 并在你的项目中使用它。
|
||||
|
||||
如果你使用 Istio 进行流量管理,则需要允许外部流量进入集群。在这种情况下,你将需要执行以下所有步骤。
|
||||
|
||||
## 先决条件
|
||||
|
||||
本指南假设你已经[安装 Rancher](installation-and-upgrade.md),且已经[配置了一个单独的 Kubernetes 集群](kubernetes-clusters-in-rancher-setup.md)并要在该集群上安装 Istio。
|
||||
|
||||
集群中的节点必须满足 [CPU 和内存要求](../integrations-in-rancher/istio/cpu-and-memory-allocations.md)。
|
||||
|
||||
Istio 控制的工作负载和服务必须满足 [Istio 要求](https://istio.io/docs/setup/additional-setup/requirements/)。
|
||||
|
||||
## 安装
|
||||
|
||||
:::tip 快速设置提示:
|
||||
|
||||
如果你不需要外部流量到达 Istio,而只想设置 Istio 以监控和跟踪集群内的流量,请跳过[设置 Istio Gateway](../how-to-guides/advanced-user-guides/istio-setup-guide/set-up-istio-gateway.md) 和[设置 Istio 的流量管理组件](../how-to-guides/advanced-user-guides/istio-setup-guide/set-up-traffic-management.md)步骤。
|
||||
|
||||
:::
|
||||
|
||||
1. [在集群中启用 Istio](../how-to-guides/advanced-user-guides/istio-setup-guide/enable-istio-in-cluster.md)
|
||||
1. [在要使用 Istio 的所有命名空间中启用 Istio](../how-to-guides/advanced-user-guides/istio-setup-guide/enable-istio-in-namespace.md)
|
||||
1. [添加注入了 Istio sidecar 的部署和服务](../how-to-guides/advanced-user-guides/istio-setup-guide/use-istio-sidecar.md)
|
||||
1. [设置 Istio Gateway](../how-to-guides/advanced-user-guides/istio-setup-guide/set-up-istio-gateway.md)
|
||||
1. [设置 Istio 的流量管理组件](../how-to-guides/advanced-user-guides/istio-setup-guide/set-up-traffic-management.md)
|
||||
1. [生成流量并查看 Istio 的运行情况](../how-to-guides/advanced-user-guides/istio-setup-guide/generate-and-view-traffic.md)
|
||||
@@ -0,0 +1,149 @@
|
||||
---
|
||||
title: Istio
|
||||
---
|
||||
|
||||
[Istio](https://istio.io/) 是一种开源工具,可以让 DevOps 团队更轻松地观察、控制、排查并保护复杂的微服务网络中的流量。
|
||||
|
||||
随着微服务网络的变化和增长,微服务网络之间的交互变得越来越难以管理和理解。在这种情况下,将服务网格作为单独的基础设施层是非常有用的。Istio 的服务网格可以让你在不直接更改微服务的情况下控制微服务之间的流量。
|
||||
|
||||
Rancher 与 Istio 集成,使得管理员或集群所有者可以将 Istio 交给开发者团队,然后开发者使用 Istio 执行安全策略,排查问题,或为蓝绿部署,金丝雀部署,和 A/B 测试进行流量管理。
|
||||
|
||||
此核心服务网格支持但不限于以下功能:
|
||||
|
||||
- **管理流量**:例如入口和出口路由、断路、镜像。
|
||||
- **安全**:具有用于验证和授权流量和用户的资源,包括 mTLS。
|
||||
- **可观察性**:观察日志、指标和分布式流量。
|
||||
|
||||
[设置 Istio](istio-setup-guide.md) 后,你可以通过 Rancher UI、`kubectl` 或 ` Istioctl` 来使用 Istio 的 controlplane 功能。
|
||||
|
||||
Istio 需要由 `cluster-admin` 设置后才能在项目中使用。
|
||||
|
||||
|
||||
## Rancher 2.5 的新功能
|
||||
|
||||
Istio 已简化了整体架构。结合 Pilot、Citadel、Galley 和 sidecar injector 创建了一个单独的组件 Istiod。Node Agent 功能也已合并到 istio-agent 中。
|
||||
|
||||
以前由 Istio 安装的插件(cert-manager、Grafana、Jaeger、Kiali、Prometheus、Zipkin)现在需要单独安装。Istio 支持安装来自 Istio 项目的集成,并保持与非 Istio 项目的兼容性。
|
||||
|
||||
你仍然可以通过安装 [Rancher Monitoring](monitoring-and-alerting.md) 或安装你自己的 Prometheus operator 来使用 Prometheus 集成。Rancher 的 Istio chart 还默认安装 Kiali,确保你可以开箱即用地全面了解微服务。
|
||||
|
||||
Istio 已经脱离了使用 Helm 安装的方式,现在通过 Istioctl 二进制文件或 Istio Operator 进行安装。为了使用最简单的方式与 Istio 交互,Rancher 的 Istio 会维护一个 Helm Chart,该 Chart 使用 Istioctl 二进制文件来管理你的 Istio 安装。
|
||||
|
||||
此 Helm Chart 将在 UI 的**应用 & 市场市场**中提供。有权访问 Rancher Chart 应用商店的用户需要先设置 Istio,然后才能在项目中使用它。
|
||||
|
||||
## Istio 附带的工具
|
||||
|
||||
我们的 [Istio](https://istio.io/) 安装程序将 istioctl 二进制命令包装在一个 Helm chart 中,其中包括一个覆盖文件的选项,用来支持复杂的自定义配置。
|
||||
|
||||
它还包括以下内容。
|
||||
|
||||
### Kiali
|
||||
|
||||
Kiali 是一个全面的可视化辅助工具,用于绘制整个服务网格中的流量图。它允许你查看它们的连接方式,包括它们之间的流量速率和延迟。
|
||||
|
||||
你可以检查服务网格的运行状况,或深入查看单个组件的传入和传出请求。
|
||||
|
||||
### Jaeger
|
||||
|
||||
Jaeger 是用于跟踪分布式系统的工具。我们的 Istio 安装程序包括能快速启动的一体化 [Jaeger](https://www.jaegertracing.io/) 安装。
|
||||
|
||||
请注意,这不是符合 Jaeger 生产要求的部署。此部署使用在内存中的存储组件,而 Jaeger 推荐在生产环境中使用持久存储组件。有关你所需的部署策略的更多信息,请参阅 [Jaeger 文档](https://www.jaegertracing.io/docs/1.65/operator/#production-strategy)。
|
||||
|
||||
## 先决条件
|
||||
|
||||
在启用 Istio 之前,建议你先确认你的 Rancher worker 节点是否有足够的 [CPU 和内存](../integrations-in-rancher/istio/cpu-and-memory-allocations.md)来运行 Istio 的所有组件。
|
||||
|
||||
如果要在 RKE2 集群上安装 Istio,则需要执行一些额外的步骤。有关详细信息,请参阅[本节](#在-rke2-集群上安装-istio-的其他步骤)。
|
||||
|
||||
请注意,Istio v2(上游 Istio v1.7+)无法在离线环境中升级。
|
||||
|
||||
## 设置指南
|
||||
|
||||
如需了解如何设置 Istio 并在项目中使用它,请参阅[设置指南](istio-setup-guide.md)。
|
||||
|
||||
## 卸载 Istio
|
||||
|
||||
要从集群、命名空间或工作负载中删除 Istio 组件,请参阅[卸载 Istio](../integrations-in-rancher/istio/disable-istio.md)。
|
||||
|
||||
## 迁移旧 Istio 版本
|
||||
|
||||
如果你的 Istio 版本低于 1.7.x,则没有升级路径。要在 **Apps & Marketplace**(Rancher v2.6.5 之前的版本)或 **App** (Rancher v2.6.5+)页面安装 Istio,你需要在旧版 Rancher UI 的全局视图中禁用现有的 Istio。
|
||||
|
||||
如果你有大量其他的 Istio CRD,你可能需要手动迁移两个 Istio 版本都支持的 CRD。为此,你可以运行 `kubectl get <resource> -n istio-system -o yaml`,保存输出的 yaml,并在新版本中重新应用。
|
||||
|
||||
另一种选择是一次手动卸载一个 Istio 资源,但保留两个 Istio 版本都支持且最新版本不会安装的资源。此方法有可能导致安装新版本时出现问题。你可以根据你的实际情况选择是否采用该方法。
|
||||
|
||||
## 访问可视化
|
||||
|
||||
> 默认情况下,只有 cluster-admin 可以访问 Kiali。有关如何允许具有管理员、编辑或查看权限的角色访问它们的说明,请参阅[本节](../integrations-in-rancher/istio/rbac-for-istio.md)。
|
||||
|
||||
在集群中设置 Istio 后,你可以在 Rancher UI 中使用 Grafana、Prometheus 和 Kiali。
|
||||
|
||||
要访问 Grafana 和 Prometheus 可视化:
|
||||
|
||||
1. 在左上角,单击 **☰ > 集群管理**。
|
||||
1. 在**集群**页面上,转到要可视化的集群,然后单击 **Explore**。
|
||||
1. 在左侧导航栏中,单击**监控**。
|
||||
1. 点击 **Grafana** 或任何其他仪表板。
|
||||
|
||||
要访问 Kiali 可视化:
|
||||
|
||||
1. 在左上角,单击 **☰ > 集群管理**。
|
||||
1. 在**集群**页面上,转到要查看 Kiali 的集群,然后单击 **Explore**。
|
||||
1. 在左侧导航栏中,单击 **Istio**。
|
||||
1. 单击 **Kiali**。从这里,你可以访问**流量图**或**流量指标**选项卡,从而可视化网络指标。
|
||||
|
||||
默认情况下,prometheus 会拾取所有命名空间,并将数据用于 Kiali 图。如果你想使用不同的配置进行 prometheus 数据抓取,请参阅[选择器/抓取配置](../integrations-in-rancher/istio/configuration-options/selectors-and-scrape-configurations.md)。
|
||||
|
||||
你的角色决定了你对可视化的访问。只有 `cluster-admin` 角色可以使用 Grafana 和 Prometheus。默认情况下,只有 `cluster-admin` 可以使用 Kiali UI,但是 `cluster-admin` 可以通过编辑 Istio values.yaml 来允许其他角色进行访问。
|
||||
|
||||
## 架构
|
||||
|
||||
Istio 安装了一个服务网格,它使用 [Envoy](https://www.envoyproxy.io) Sidecar 代理来拦截到每个工作负载的流量。这些 sidecar 拦截并管理服务之间的通信,从而实现精细化观察并控制集群内的流量。
|
||||
|
||||
只有注入了 Istio sidecar 的工作负载可以通过 Istio 进行跟踪和控制。
|
||||
|
||||
如果命名空间启用了 Istio,部署到命名空间的新工作负载会自动具有 Istio sidecar。你需要为之前的工作负载手动启用 Istio。
|
||||
|
||||
有关 Istio sidecar 的更多信息,请参阅 [Istio sidecare-injection 文档](https://istio.io/docs/setup/kubernetes/additional-setup/sidecar-injection/)。有关 Istio 架构的更多信息,请参阅 [Istio 架构文档](https://istio.io/latest/docs/ops/deployment/architecture/)。
|
||||
|
||||
### 多个 Ingress
|
||||
|
||||
默认情况下,每个 Rancher 配置的集群都有一个 NGINX Ingress Controller 来允许流量进入集群。Istio 还在 `istio-system` 命名空间中默认安装一个 Ingress Gateway。因此,你的集群将有两个 ingress。
|
||||
|
||||

|
||||
|
||||
可以通过[覆盖文件](configuration-options.md#覆盖文件)来启用其他 Istio Ingress Gateway。
|
||||
|
||||
### Egress 支持
|
||||
|
||||
默认情况下,Egress 网关是禁用的,但你可以在安装或升级时使用 values.yaml 或[覆盖文件](configuration-options.md#覆盖文件)启用它。
|
||||
|
||||
## 在 RKE2 集群上安装 Istio 的其他步骤
|
||||
|
||||
要在 RKE2 集群上安装 Istio,请按照[步骤](../integrations-in-rancher/istio/configuration-options/install-istio-on-rke2-cluster.md)进行操作。
|
||||
|
||||
## 在离线环境中升级 Istio
|
||||
|
||||
在 Rancher v2.6.x 及更高版本中,Istio 可能会在离线环境中升级。
|
||||
|
||||
现在,Istio Pod 安全策略默认启用。新值 `installer.releaseMirror.enabled` 已添加到 rancher-istio Chart 中,以启用和禁用支持离线升级的 Server。请注意,`installer.releaseMirror.enabled` 默认设置为 `false`。你可以在安装或升级时根据需要设置该值。按照以下步骤执行:
|
||||
|
||||
1. 在 Rancher UI 中配置离线 Rancher 2.6.x 实例和离线自定义集群。
|
||||
2. 在集群中安装 Monitoring:**Cluster Explorer > Apps & Marketplace > Charts > Monitoring**。
|
||||
3. 将 Istio 所需的所有镜像拉入在离线环境中使用的私有镜像仓库。
|
||||
4. 在集群中安装 Istio:**Cluster Explorer > Apps & Marketplace > Charts > Istio**。
|
||||
|
||||
:::note
|
||||
|
||||
你可以在新安装的 Istio 上启用 [Jaeger](https://www.jaegertracing.io/) 和 [Kiali](https://kiali.io/)。为确保 Jaeger 和 Kiali 正常工作,请在安装期间将 `values.yaml` 中的 `installer.releaseMirror.enabled` 设置为 `true`。
|
||||
|
||||
:::
|
||||
|
||||
5. 升级 Istio。
|
||||
|
||||
:::caution
|
||||
|
||||
如果你还没有执行操作,请设置 `installer.releaseMirror.enabled=true` 以升级 Istio。
|
||||
|
||||
:::
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
title: "Kubernetes 使用教程 "
|
||||
---
|
||||
|
||||
本章节介绍如何安装 Kubernetes 集群,使得 Rancher Server 可以安装在该集群上。
|
||||
|
||||
Rancher 可以在任何 Kubernetes 集群上运行。
|
||||
+76
@@ -0,0 +1,76 @@
|
||||
---
|
||||
title: 在 Rancher 中设置 Kubernetes 集群
|
||||
description: 配置 Kubernetes 集群
|
||||
---
|
||||
|
||||
Rancher 允许你通过 Rancher UI 来创建集群,从而简化了集群的创建流程。Rancher 提供了多种启动集群的选项。你可以选择最适合你的用例的选项。
|
||||
|
||||
本节默认你已对 Docker 和 Kubernetes 有一定的了解。如果你需要了解 Kubernetes 组件如何协作,请参见 [Kubernetes 概念](../reference-guides/kubernetes-concepts.md)。
|
||||
|
||||
有关 Rancher Server 配置集群的方式,以及使用什么工具来创建集群的详细信息,请参阅[产品架构](rancher-manager-architecture.md)。
|
||||
|
||||
|
||||
|
||||
### 不同类型集群的管理功能
|
||||
|
||||
下表总结了每一种类型的集群和对应的可编辑的选项和设置:
|
||||
|
||||
import ClusterCapabilitiesTable from '../shared-files/_cluster-capabilities-table.md';
|
||||
|
||||
<ClusterCapabilitiesTable />
|
||||
|
||||
## 在托管的 Kubernetes 提供商中设置集群
|
||||
|
||||
在这种情况下,Rancher 不会配置 Kubernetes,因为它是由 Google Kubernetes Engine (GKE)、Amazon Elastic Container Service for Kubernetes 或 Azure Kubernetes Service 等提供商安装的。
|
||||
|
||||
如果你使用 Kubernetes 提供商,例如 Google GKE,Rancher 将与对应的云 API 集成,允许你从 Rancher UI 为托管集群创建和管理 RBAC。
|
||||
|
||||
详情请参阅[托管 Kubernetes 集群](set-up-clusters-from-hosted-kubernetes-providers.md)。
|
||||
|
||||
## 使用 Rancher 启动 Kubernetes
|
||||
|
||||
在你自己的节点上配置 Kubernetes 时,Rancher 使用 [Rancher Kubernetes Engine (RKE)](https://rancher.com/docs/rke/latest/en/) 作为库。RKE 是 Rancher 自己的轻量级 Kubernetes 安装程序。
|
||||
|
||||
在 RKE 集群中,Rancher 管理 Kubernetes 的部署。这些集群可以部署在任何裸机服务器、云提供商或虚拟化平台上。
|
||||
|
||||
这些节点可以通过 Rancher 的 UI 动态配置,该 UI 调用 [Docker Machine](https://github.com/docker/docs/blob/vnext-engine/machine/overview.md) 在各种云提供商上启动节点。
|
||||
|
||||
如果你已经有一个想要添加到 RKE 集群的节点,你可以通过在节点上运行 Rancher Agent 容器将节点添加到集群中。
|
||||
|
||||
有关详细信息,请参阅 [RKE 集群](../pages-for-subheaders/launch-kubernetes-with-rancher.md)。
|
||||
|
||||
### 在基础设施提供商中启动 Kubernetes 并配置节点
|
||||
|
||||
Rancher 可以在 Amazon EC2、DigitalOcean、Azure 或 vSphere 等基础设施提供商中动态配置节点,然后在节点上安装 Kubernetes。
|
||||
|
||||
使用 Rancher,你可以基于[节点模板](use-new-nodes-in-an-infra-provider.md#节点模板)创建节点池。此模板定义了要在云提供商中启动的节点的参数。
|
||||
|
||||
使用由基础设施提供商托管的节点的一个好处是,如果一个节点与集群失去连接,Rancher 可以自动替换它,从而维护集群配置。
|
||||
|
||||
Rancher UI 中状态为 Active 的[主机驱动](use-new-nodes-in-an-infra-provider.md#主机驱动)决定了可用于创建节点模板的云提供商。
|
||||
|
||||
如需更多信息,请参阅[基础设施提供商托管的节点](use-new-nodes-in-an-infra-provider.md)。
|
||||
|
||||
### 在现有自定义节点上启动 Kubernetes
|
||||
|
||||
在设置这种类型的集群时,Rancher 会在现有的[自定义节点](use-existing-nodes.md)上安装 Kubernetes,从而创建一个自定义集群。
|
||||
|
||||
你可以使用任何节点,在 Rancher 中创建一个集群。
|
||||
|
||||
这些节点包括本地裸机服务器、云托管虚拟机或本地虚拟机。
|
||||
|
||||
## 注册现有集群
|
||||
|
||||
集群注册功能取代了导入集群的功能。
|
||||
|
||||
注册 EKS 集群的优点更多。在大多数情况下,注册的 EKS 集群和在 Rancher 中创建的 EKS 集群在 Rancher UI 中的处理方式相同(除了删除)。
|
||||
|
||||
删除在 Rancher 中创建的 EKS 集群后,该集群将被销毁。删除在 Rancher 中注册的 EKS 集群时,它与 Rancher Server 会断开连接,但它仍然存在。你仍然可以像在 Rancher 中注册之前一样访问它。
|
||||
|
||||
详情请参见[本页面](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/register-existing-clusters.md)。
|
||||
|
||||
## 以编程方式创建集群
|
||||
|
||||
通过 Rancher 以编程方式部署 Kubernetes 集群的最常见方法是使用 Rancher 2 Terraform Provider。详情请参见[使用 Terraform 创建集群](https://registry.terraform.io/providers/rancher/rancher2/latest/docs/resources/cluster)。
|
||||
|
||||
你可以使用 Terraform 创建或导入 EKS、GKE、AKS 集群和 RKE 集群。
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
title: Kubernetes 组件
|
||||
---
|
||||
|
||||
本文列出的命令和步骤适用于 [Rancher 启动的 Kubernetes](../pages-for-subheaders/launch-kubernetes-with-rancher.md) 集群上的核心 Kubernetes 组件。
|
||||
|
||||
本文包括以下类别的故障排除提示:
|
||||
|
||||
- [etcd 节点故障排除](../troubleshooting/kubernetes-components/troubleshooting-etcd-nodes.md)
|
||||
- [Controlplane 节点故障排除](../troubleshooting/kubernetes-components/troubleshooting-controlplane-nodes.md)
|
||||
- [nginx-proxy 节点故障排除](../troubleshooting/kubernetes-components/troubleshooting-nginx-proxy.md)
|
||||
- [Worker 节点和通用组件故障排除](../troubleshooting/kubernetes-components/troubleshooting-worker-nodes-and-generic-components.md)
|
||||
|
||||
## Kubernetes 组件图
|
||||
|
||||
<br/>
|
||||
<sup>线条表示组件之间的通信。而颜色纯粹用于视觉辅助。</sup>
|
||||
@@ -0,0 +1,69 @@
|
||||
---
|
||||
title: Kubernetes 资源
|
||||
---
|
||||
|
||||
你可以在 Rancher UI 中查看和操作 Kubernetes 集群中的所有自定义资源和 CRD。
|
||||
|
||||
## 工作负载
|
||||
|
||||
使用[工作负载](workloads-and-pods.md)将应用部署到集群节点,工作负载是包含用于运行应用的 pod 的对象,以及为部署行为设置规则的元数据。工作负载可以部署在集群范围内,也可以部署在一个命名空间内。
|
||||
|
||||
部署工作负载时,你可以使用任何镜像进行部署。可供选择的[工作负载类型](workloads-and-pods.md#工作负载类型)有多种,工作负载类型决定了你的应用程序的运行方式。
|
||||
|
||||
在工作负载部署之后,你可以继续使用它。你可以:
|
||||
|
||||
- 将工作负载[升级](../how-to-guides/new-user-guides/kubernetes-resources-setup/workloads-and-pods/upgrade-workloads.md)到它运行的应用的更新版本。
|
||||
- 如果升级出现问题,将工作负载[回滚](../how-to-guides/new-user-guides/kubernetes-resources-setup/workloads-and-pods/roll-back-workloads.md)到以前的版本。
|
||||
- [添加一个 sidecar](../how-to-guides/new-user-guides/kubernetes-resources-setup/workloads-and-pods/add-a-sidecar.md),这是一个支持主要工作负载的工作负载。
|
||||
|
||||
## 负载均衡和 Ingress
|
||||
|
||||
### 负载均衡器
|
||||
|
||||
启动应用程序后,它仅在集群中可用。无法从外部访问它。
|
||||
|
||||
如果你希望你的应用程序可以从外部访问,则必须向集群添加负载均衡器。如果用户知道负载均衡器的 IP 地址和应用的端口号,负载均衡器可以为外部连接创建一个访问集群的网关。
|
||||
|
||||
Rancher 支持两种类型的负载均衡器:
|
||||
|
||||
- [Layer-4 负载均衡器](../how-to-guides/new-user-guides/kubernetes-resources-setup/load-balancer-and-ingress-controller/layer-4-and-layer-7-load-balancing.md#四层负载均衡器)
|
||||
- [Layer-7 负载均衡器](../how-to-guides/new-user-guides/kubernetes-resources-setup/load-balancer-and-ingress-controller/layer-4-and-layer-7-load-balancing.md#七层负载均衡器)
|
||||
|
||||
有关详细信息,请参阅[负载均衡器](../how-to-guides/new-user-guides/kubernetes-resources-setup/load-balancer-and-ingress-controller/layer-4-and-layer-7-load-balancing.md)。
|
||||
|
||||
#### Ingress
|
||||
|
||||
负载均衡器只能处理每个 service 的一个 IP 地址。换言之,如果你在集群中运行了多个 service,则必须为每个 service 配备一个负载均衡器。运行多个负载均衡器的花费可能非常高昂。因此,你可以使用 Ingress 来解决此问题。
|
||||
|
||||
Ingress 是一组充当负载均衡器的规则。Ingress 与一个或多个 Ingress Controller 一起动态路由 service 的请求。Ingress 收到请求时,集群中的 Ingress Controller 会对负载均衡器进行配置,从而根据你配置的 service 子域或路径规则将请求定向到正确的 service。
|
||||
|
||||
有关详细信息,请参阅 [Ingress](../how-to-guides/new-user-guides/kubernetes-resources-setup/load-balancer-and-ingress-controller/add-ingresses.md)。
|
||||
|
||||
在项目中使用 Ingress 时,你可以通过设置全局 DNS 条目来将 Ingress 主机名编程到外部 DNS。
|
||||
|
||||
## 服务发现
|
||||
|
||||
使用负载均衡器和/或 Ingress 将集群公开给外部请求后,你只能通过 IP 地址访问集群。要创建可解析的主机名,你必须创建服务记录,该记录将 IP 地址、外部主机名、DNS 记录别名、工作负载或标记的 pod 映射到特定主机名。
|
||||
|
||||
有关详细信息,请参阅[服务发现](../how-to-guides/new-user-guides/kubernetes-resources-setup/create-services.md)。
|
||||
|
||||
## 流水线
|
||||
|
||||
在你的项目中[配置版本控制提供程序](../pages-for-subheaders/pipelines.md#1-配置版本控制提供商)后,你可以添加仓库并开始为每个仓库配置流水线。
|
||||
|
||||
有关详细信息,请参阅[流水线](pipelines.md)。
|
||||
|
||||
## 应用程序
|
||||
|
||||
除了启动应用程序的各个组件外,你还可以使用 Rancher 应用商店来启动应用,即 Helm Chart。
|
||||
|
||||
## Kubernetes 资源
|
||||
|
||||
在 Rancher 项目或命名空间的上下文中,_资源_ 是支持 Pod 操作的文件和数据。在 Rancher 中,证书、镜像仓库和密文都被视为资源。但是,Kubernetes 将资源划分为不同类型的[密文(secret)](https://kubernetes.io/docs/concepts/configuration/secret/)。因此,在单个项目或命名空间中,各个资源必须具有唯一的名称以避免冲突。资源主要用于承载敏感信息,但也有其他用途。
|
||||
|
||||
资源包括:
|
||||
|
||||
- [证书](../how-to-guides/new-user-guides/kubernetes-resources-setup/encrypt-http-communication.md):用于加密/解密进入或离开集群的数据的文件。
|
||||
- [ConfigMap](../how-to-guides/new-user-guides/kubernetes-resources-setup/configmaps.md):存储一般配置信息的文件,例如一组配置文件。
|
||||
- [密文](../how-to-guides/new-user-guides/kubernetes-resources-setup/secrets.md):存储密码、token 或密钥等敏感数据的文件。
|
||||
- [镜像仓库](../how-to-guides/new-user-guides/kubernetes-resources-setup/kubernetes-and-docker-registries.md):携带用于验证私有镜像仓库的凭证的文件。
|
||||
@@ -0,0 +1,80 @@
|
||||
---
|
||||
title: 使用 Rancher 启动 Kubernetes
|
||||
---
|
||||
|
||||
Rancher 可以使用任意节点启动 Kubernetes 集群。在 Rancher 中将 Kubernetes 部署到这些节点上时,你可以选择 [Rancher Kubernetes Engine](https://rancher.com/docs/rke/latest/en/) (RKE) 或 [RKE2](https://docs.rke2.io) 发行版。Rancher 可以在任何计算机上启动 Kubernetes,包括:
|
||||
|
||||
- 裸金属服务器
|
||||
- 本地虚拟机
|
||||
- 由云厂商托管的虚拟机
|
||||
|
||||
Rancher 可以在现有节点上安装 Kubernetes,也可以在云厂商中动态配置节点并安装 Kubernetes。
|
||||
|
||||
Rancher 还可以创建节点池。在托管在云厂商的节点池上安装 Kubernetes 的一个好处是,如果一个节点与集群断开连接,Rancher 可以自动创建另一个节点并将其加入集群,从而确保节点池的数量符合要求。
|
||||
|
||||
## RKE
|
||||
|
||||
### 要求
|
||||
|
||||
如果你使用 RKE 建立集群,节点必须满足下游集群的[节点要求](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/node-requirements-for-rancher-managed-clusters.md)。
|
||||
|
||||
### 在云厂商的新节点上启动 Kubernetes
|
||||
|
||||
使用 Rancher,你可以基于[节点模板](use-new-nodes-in-an-infra-provider.md#节点模板)创建节点池。此节点模板定义了要用于在云厂商中启动节点的参数。
|
||||
|
||||
在托管在云厂商的节点池上安装 Kubernetes 的一个好处是,如果一个节点与集群断开连接,Rancher 可以自动创建另一个节点并将其加入集群,从而确保节点池的数量符合要求。
|
||||
|
||||
有关详细信息,请参阅[在新节点上启动 Kubernetes](use-new-nodes-in-an-infra-provider.md)。
|
||||
|
||||
### 在现有自定义节点上启动 Kubernetes
|
||||
|
||||
在这种情况下,你希望将 Kubernetes 安装到裸机服务器、本地虚拟机或云厂商中已存在的虚拟机上。使用此选项,你将在主机上运行 Rancher Agent Docker 容器。
|
||||
|
||||
如果要重复使用之前的自定义集群中的节点,请在复用之前[清理节点](../how-to-guides/new-user-guides/manage-clusters/clean-cluster-nodes.md)。如果你重复使用尚未清理的节点,则集群配置可能会失败。
|
||||
|
||||
有关详细信息,请参阅[自定义节点](use-existing-nodes.md)。
|
||||
|
||||
### 以编程方式创建 RKE 集群
|
||||
|
||||
通过 Rancher 以编程方式部署 RKE 集群的最常见方法是使用 Rancher 2 Terraform Provider。详情请参见[使用 Terraform 创建集群](https://registry.terraform.io/providers/rancher/rancher2/latest/docs/resources/cluster)。
|
||||
|
||||
## RKE2
|
||||
|
||||
Rancher 2.6 支持直接使用 Rancher UI 配置 [RKE2](https://docs.rke2.io/) 集群。RKE2,也称为 RKE Government,是一个完全符合标准的 Kubernetes 发行版,它专注于安全性和合规性。在 Rancher 2.6.4 及更早版本中,RKE2 配置还处于技术预览阶段。
|
||||
|
||||
在 Rancher 2.6.5 中,RKE2 已经 GA。
|
||||
|
||||
### 要求
|
||||
|
||||
如果你使用 RKE2 建立集群,节点必须满足下游集群的[节点要求](https://docs.rke2.io/install/requirements)。
|
||||
|
||||
### 在云厂商的新节点上启动 Kubernetes
|
||||
|
||||
RKE2 基于使用上游[集群 API](https://github.com/kubernetes-sigs/cluster-api) 项目的新配置框架。这个新配置框架支持:
|
||||
|
||||
- 将 RKE2 集群配置到 Rancher 具有主机驱动的任何提供商上
|
||||
- 完全在 Rancher 中配置 RKE2 集群
|
||||
- 除了 Canal 之外,还可以选择 CNI 选项, Calico、Cilium 和 Multus
|
||||
|
||||
RKE2 配置还包括在具有 Windows 节点的集群上安装 RKE2。
|
||||
|
||||
RKE2 的 Windows 功能包括:
|
||||
|
||||
- Windows 支持 vSphere 主机驱动
|
||||
- 用于 Windows RKE2 自定义集群的 Calico CNI
|
||||
- Calico 的项目网络隔离 (PNI)
|
||||
- 由 containerd 提供支持的使用 RKE2 的 Windows 容器
|
||||
- 通过 Terraform 配置 Windows RKE2 集群
|
||||
- 直接从 Rancher UI 配置 Windows RKE2 自定义集群
|
||||
|
||||
要使 Windows 支持 RKE2 自定义集群,请选择 Calico 作为 CNI。
|
||||
|
||||
### 在现有自定义节点上启动 Kubernetes
|
||||
|
||||
RKE2 还支持在预配置的虚拟机或裸机节点上安装自定义集群。
|
||||
|
||||
如果要重复使用之前的自定义集群中的节点,请在复用之前清理节点。如果你重复使用尚未清理的节点,则集群配置可能会失败。
|
||||
|
||||
### 以编程方式创建 RKE2 集群
|
||||
|
||||
通过 Rancher 以编程方式部署 RKE2 集群的最常见方法是使用 Rancher 2 Terraform Provider。详情请参见[使用 Terraform 创建集群](https://registry.terraform.io/providers/rancher/rancher2/latest/docs/resources/cluster_v2)。
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
---
|
||||
title: 在 Rancher 中设置负载均衡器和 Ingress Controller
|
||||
description: 了解如何设置负载均衡器和 Ingress Controller 以在 Rancher 中重定向服务请求,并了解负载均衡器的限制
|
||||
---
|
||||
|
||||
在 Rancher 中,你可以通过设置负载均衡器和 Ingress Controller 来重定向服务请求。
|
||||
|
||||
## 负载均衡器
|
||||
|
||||
启动应用程序后,该应用程序仅在集群内可用。你无法从集群外部访问它。
|
||||
|
||||
如果你希望从外部访问应用程序,则必须向集群添加负载均衡器或 Ingress。如果用户知道负载均衡器的 IP 地址和应用的端口号,负载均衡器可以为外部连接创建一个访问集群的网关。
|
||||
|
||||
Rancher 支持两种类型的负载均衡器:
|
||||
|
||||
- [Layer-4 负载均衡器](../how-to-guides/new-user-guides/kubernetes-resources-setup/load-balancer-and-ingress-controller/layer-4-and-layer-7-load-balancing.md#四层负载均衡器)
|
||||
- [Layer-7 负载均衡器](../how-to-guides/new-user-guides/kubernetes-resources-setup/load-balancer-and-ingress-controller/layer-4-and-layer-7-load-balancing.md#七层负载均衡器)
|
||||
|
||||
有关详细信息,请参阅[负载均衡器](../how-to-guides/new-user-guides/kubernetes-resources-setup/load-balancer-and-ingress-controller/layer-4-and-layer-7-load-balancing.md)。
|
||||
|
||||
### 负载均衡器限制
|
||||
|
||||
负载均衡器有几个需要注意的限制:
|
||||
|
||||
- 负载均衡器只能处理每个 service 的一个 IP 地址。换言之,如果你在集群中运行了多个 service,则必须为每个 service 配备一个负载均衡器。运行多个负载均衡器的花费可能非常高昂。
|
||||
|
||||
- 如果你想将负载均衡器与托管的 Kubernetes 集群(即托管在 GKE、EKS 或 AKS 中的集群)一起使用,则负载均衡器必须运行在该云提供商的基础设施上。请根据你配置集群的方式查看负载均衡器的兼容列表:
|
||||
|
||||
- [支持 Layer-4 负载均衡](../how-to-guides/new-user-guides/kubernetes-resources-setup/load-balancer-and-ingress-controller/layer-4-and-layer-7-load-balancing.md#四层负载均衡支持)
|
||||
|
||||
- [支持 Layer-7 负载均衡](../how-to-guides/new-user-guides/kubernetes-resources-setup/load-balancer-and-ingress-controller/layer-4-and-layer-7-load-balancing.md#七层负载均衡支持)
|
||||
|
||||
## Ingress
|
||||
|
||||
如上所述,使用负载均衡器的缺点是:
|
||||
|
||||
- 每个服务负载均衡器只能处理一个 IP 地址。
|
||||
- 如果你在集群中运行多个服务,则每个服务都必须配备一个负载均衡器。
|
||||
- 为每个服务配备负载均衡器的花费可能非常高昂。
|
||||
|
||||
相反,如果将某个 Ingress 用作集群的入口点,Ingress 可以更灵活地将流量路由到多个 service。它可以将多个 HTTP 请求映射到 service,而无需为每个 service 提供单独的 IP 地址。
|
||||
|
||||
因此,如果你需要使用相同的 IP 地址、Layer 7 协议或特权节点端口(80 和 443)来公开多个 service,你可以使用一个 Ingress。
|
||||
|
||||
Ingress 与一个或多个 Ingress Controller 一起动态路由 service 的请求。Ingress 收到请求时,集群中的 Ingress Controller 会根据你配置的 service 子域或路径规则将请求定向到正确的 service。
|
||||
|
||||
每个 Kubernetes Ingress 资源都对应一个 `/etc/nginx/sites-available/` 中的文件,其中包含一个配置对特定文件和文件夹的请求的 `server{}` 配置块。
|
||||
|
||||
Ingress 能为你的集群创建一个入口端口(与负载均衡器类似),可以位于集群的内部或外部。RKE 启动的集群中的 Ingress 和 Ingress Controller 由 [Nginx](https://www.nginx.com/) 提供支持。
|
||||
|
||||
Ingress 还支持其他功能,例如 SSL 终止、基于名称的虚拟主机等。
|
||||
|
||||
:::note 在高可用性配置中使用 Rancher:
|
||||
|
||||
请避免将 Ingress 添加到 `local` 集群。Rancher 将 Nginx Ingress Controller 作为 Rancher 管理的 _所有_ 集群的全局入口点,其中包括 `local` 集群。因此,当用户尝试访问应用程序时,Rancher 可能会由于重新加载 Nginx 配置而断开连接。要解决这个问题,我们建议你仅在通过 Rancher 启动的集群中部署应用程序。
|
||||
|
||||
:::
|
||||
|
||||
- 有关如何在 Rancher 中设置 Ingress 的更多信息,请参阅 [Ingress](../how-to-guides/new-user-guides/kubernetes-resources-setup/load-balancer-and-ingress-controller/add-ingresses.md)。
|
||||
- 有关 Ingress 和 Ingress Controller 的完整信息,请参阅 [Kubernetes Ingress 文档](https://kubernetes.io/docs/concepts/services-networking/ingress/)。
|
||||
- 在项目中使用 Ingress 时,你可以通过设置全局 DNS 条目来将 Ingress 主机名编程到外部 DNS。
|
||||
@@ -0,0 +1,146 @@
|
||||
---
|
||||
title: Rancher Logging 集成
|
||||
description: Rancher 集成了主流的日志服务。了解集成日志服务的要求和优势,并在你的集群上启用 Logging。
|
||||
---
|
||||
|
||||
现在,Rancher 的日志管理由 [Logging operator](https://kube-logging.github.io/docs/) 提供支持,它取代了以前的内部解决方案。
|
||||
|
||||
## 启用 Logging
|
||||
|
||||
你可以转到**应用**页面并安装 Logging 应用程序,从而为 Rancher 管理的集群启用 Logging:
|
||||
|
||||
<Tabs groupId="rancher-version">
|
||||
<TabItem value="Rancher v2.6.5+">
|
||||
|
||||
1. 转到要安装 Logging 的集群,然后单击 **Apps**。
|
||||
1. 点击 **Logging** 应用。
|
||||
1. 滚动到 Helm Chart README 的底部,然后单击**安装**。
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="Rancher 版本低于 v2.6.5">
|
||||
|
||||
1. 转到要安装 Logging 的集群,然后单击**应用 & 应用市场**。
|
||||
1. 点击 **Logging** 应用。
|
||||
1. 滚动到 Helm Chart README 的底部,然后单击**安装**。
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
**结果**:Logging 应用已部署到 `cattle-logging-system` 命名空间中。
|
||||
|
||||
## 卸载 Logging
|
||||
|
||||
<Tabs groupId="rancher-version">
|
||||
<TabItem value="Rancher v2.6.5+">
|
||||
|
||||
1. 转到要安装 Logging 的集群,然后单击 **Apps**。
|
||||
1. 点击**已安装的应用**。
|
||||
1. 转到 `cattle-logging-system` 命名空间并选中 `rancher-logging` 和 `rancher-logging-crd` 框。
|
||||
1. 单击**删除**。
|
||||
1. 确认**删除**。
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="Rancher 版本低于 v2.6.5">
|
||||
|
||||
1. 转到要安装 Logging 的集群,然后单击**应用 & 应用市场**。
|
||||
1. 点击**已安装的应用**。
|
||||
1. 转到 `cattle-logging-system` 命名空间并选中 `rancher-logging` 和 `rancher-logging-crd` 框。
|
||||
1. 单击**删除**。
|
||||
1. 确认**删除**。
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
**结果**:已卸载 `rancher-logging`。
|
||||
|
||||
## 架构
|
||||
|
||||
有关 Logging 应用程序工作原理的更多信息,请参阅[本节](../integrations-in-rancher/logging/logging-architecture.md)。
|
||||
|
||||
|
||||
|
||||
## RBAC
|
||||
|
||||
Rancher Logging 有两个角色,分别是 `logging-admin` 和 `logging-view`。有关如何以及何时使用这些角色的更多信息,请参阅[此页面](../integrations-in-rancher/logging/rbac-for-logging.md)。
|
||||
|
||||
## 配置 Logging 自定义资源
|
||||
|
||||
要管理 `Flows`、`ClusterFlows`、`Outputs` 和 `ClusterOutputs`:
|
||||
|
||||
1. 在左上角,单击 **☰ > 集群管理**。
|
||||
1. 在**集群**页面上,转到要配置 Logging 自定义资源的集群,然后单击 **Explore**。
|
||||
1. 在左侧导航栏中,单击 **Logging**。
|
||||
|
||||
### Flows 和 ClusterFlows
|
||||
|
||||
有关配置 `Flows` 和 `ClusterFlows` 的帮助,请参阅[此页面](../integrations-in-rancher/logging/custom-resource-configuration/flows-and-clusterflows.md)。
|
||||
|
||||
### Outputs 和 ClusterOutputs
|
||||
|
||||
有关配置 `Outputs` 和 `ClusterOutputs` 的帮助,请参阅[此页面](../integrations-in-rancher/logging/custom-resource-configuration/outputs-and-clusteroutputs.md)。
|
||||
|
||||
## 配置 Logging Helm Chart
|
||||
|
||||
有关在安装或升级 Logging 应用程序时可配置的选项,请参阅[此页面](../integrations-in-rancher/logging/logging-helm-chart-options.md)。
|
||||
|
||||
### Windows 支持
|
||||
|
||||
Windows 集群支持 Logging,你可以收集 Windows 节点的日志。
|
||||
|
||||
有关如何在 Windows 节点上启用或禁用 Logging 的详细信息,请参阅[本节](../integrations-in-rancher/logging/logging-helm-chart-options.md#启用禁用-windows-节点-logging)。
|
||||
|
||||
### 使用自定义 Docker 根目录
|
||||
|
||||
有关使用自定义 Docker 根目录的详细信息,请参阅[本节](../integrations-in-rancher/logging/logging-helm-chart-options.md#使用自定义-docker-根目录)。
|
||||
|
||||
|
||||
### 处理污点和容忍度
|
||||
|
||||
有关如何在 Logging 应用程序中使用污点和容忍度的信息,请参阅[此页面](../integrations-in-rancher/logging/taints-and-tolerations.md)。
|
||||
|
||||
|
||||
### 在 SELinux 上使用 Logging V2
|
||||
|
||||
有关在启用了 SELinux 的节点上使用 Logging 应用程序的信息,请参阅[本节](../integrations-in-rancher/logging/logging-helm-chart-options.md#启用-logging-应用程序以使用-selinux)。
|
||||
|
||||
### 其他日志来源
|
||||
|
||||
默认情况下,Rancher 会收集所有类型集群的 controlplane 组件和节点组件的日志。在某些情况下,也会收集其他日志。有关详细信息,请参阅[本节](../integrations-in-rancher/logging/logging-helm-chart-options.md#其他日志来源)。
|
||||
|
||||
|
||||
## 故障排除
|
||||
|
||||
### 日志缓冲区导致 Pod 过载
|
||||
|
||||
根据你的配置,默认缓冲区大小可能太大并导致 Pod 故障。减少负载的一种方法是降低记录器的刷新间隔。这可以防止日志溢出缓冲区。你还可以添加更多刷新线程来处理大量日志试图同时填充缓冲区的情况。
|
||||
|
||||
有关如何配置日志缓冲区来满足企业需求的更完整说明,请参阅[缓冲区](https://kube-logging.github.io/docs/configuration/plugins/outputs/buffer/)和 [Fluentd 配置](https://kube-logging.github.io/docs/logging-infrastructure/fluentd/)的官方 Logging Operator 文档。
|
||||
|
||||
### `cattle-logging` 命名空间正在重新创建
|
||||
|
||||
如果你的集群之前在旧版 Rancher UI 的全局视图中部署了 Logging,`cattle-logging` 命名空间可能会不断被重新创建。
|
||||
|
||||
要解决这个问题,你可以将所有 `clusterloggings.management.cattle.io` 和 `projectloggings.management.cattle.io` 自定义资源从管理集群中针对该集群的命名空间中删除。
|
||||
这些自定义资源会导致 Rancher 在下游集群中创建 `cattle-logging` 命名空间(如果不存在)。
|
||||
|
||||
集群命名空间与集群 ID 匹配,因此我们需要找到每个集群的集群 ID。
|
||||
|
||||
1. 在左上角,单击 **☰ > 集群管理**。
|
||||
1. 在**集群**页面上,转到要获取 ID 的集群,然后单击 **Explore**。
|
||||
2. 从以下其中一个 URL 中复制 `<cluster-id>` 的内容。`<cluster-id>` 是集群命名空间名称。
|
||||
|
||||
```bash
|
||||
# Cluster Management UI
|
||||
https://<your-url>/c/<cluster-id>/
|
||||
|
||||
# Cluster Dashboard
|
||||
https://<your-url>/dashboard/c/<cluster-id>/
|
||||
```
|
||||
|
||||
现在我们有了 `<cluster-id>` 命名空间,我们可以删除导致 `cattle-logging` 不断重新创建的自定义资源。
|
||||
*警告*:请当前未使用确保 Logging(从旧版 Rancher UI 全局视图中安装的版本)。
|
||||
|
||||
```bash
|
||||
kubectl delete crd clusterloggings.management.cattle.io -n <cluster-id>
|
||||
kubectl delete crd projectloggings.management.cattle.io -n <cluster-id>
|
||||
```
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: 主机配置
|
||||
---
|
||||
|
||||
主机配置指的是如何将资源分配给虚拟机。请参阅 [Amazon EC2](../reference-guides/cluster-configuration/downstream-cluster-configuration/machine-configuration/amazon-ec2.md)、[DigitalOcean](../reference-guides/cluster-configuration/downstream-cluster-configuration/machine-configuration/digitalocean.md) 和 [Azure](../reference-guides/cluster-configuration/downstream-cluster-configuration/machine-configuration/azure.md) 的文档以了解更多信息。
|
||||
@@ -0,0 +1,32 @@
|
||||
---
|
||||
title: 集群管理
|
||||
---
|
||||
|
||||
在 Rancher 中配置集群后,你可以开始使用强大的 Kubernetes 功能在开发、测试或生产环境中部署和扩展容器化应用。
|
||||
|
||||
:::note
|
||||
|
||||
本节默认你已对 Docker 和 Kubernetes 有一定的了解。如果你需要了解 Kubernetes 组件如何协作,请参见 [Kubernetes 概念](../reference-guides/kubernetes-concepts.md)。
|
||||
|
||||
:::
|
||||
|
||||
## 在 Rancher 中管理集群
|
||||
|
||||
将集群[配置到 Rancher](kubernetes-clusters-in-rancher-setup.md) 之后,[集群所有者](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/manage-role-based-access-control-rbac/cluster-and-project-roles.md#集群角色)需要管理这些集群。管理集群的选项如下:
|
||||
|
||||
import ClusterCapabilitiesTable from '../shared-files/_cluster-capabilities-table.md';
|
||||
|
||||
<ClusterCapabilitiesTable />
|
||||
|
||||
## 配置工具
|
||||
|
||||
Rancher 包含 Kubernetes 中未包含的各种工具来协助你进行 DevOps 操作。Rancher 可以与外部服务集成,让你的集群更高效地运行。工具分为以下几类:
|
||||
|
||||
- 告警
|
||||
- Notifiers
|
||||
- Logging
|
||||
- Monitoring
|
||||
- Istio 服务网格
|
||||
- OPA Gatekeeper
|
||||
|
||||
你可以通过 **Apps & Marketplace**(Rancher v2.6.5 之前的版本)或 **Apps**(Rancher v2.6.5+)来安装工具。
|
||||
@@ -0,0 +1,46 @@
|
||||
---
|
||||
title: 项目资源配额
|
||||
---
|
||||
|
||||
如果多个团队共享一个集群,某个团队可能会使用过多的可用资源,例如 CPU、内存、存储、服务、Kubernetes 对象(如 Pod 或 Secret)等。你可以应用 _资源配额_ 来防止过度消耗资源。资源配额是 Rancher 用来限制项目或命名空间可用资源的功能。
|
||||
|
||||
本文介绍如何在现有项目中创建资源配额。
|
||||
|
||||
你也可以在创建新项目时设置资源配额。有关详细信息,请参阅[创建新项目](../how-to-guides/new-user-guides/manage-clusters/projects-and-namespaces.md#创建项目)。
|
||||
|
||||
Rancher 中的资源配额包含与 [Kubernetes 原生版本](https://kubernetes.io/docs/concepts/policy/resource-quotas/)相同的功能。Rancher 还扩展了资源配额的功能,从而让你将资源配额应用于项目。有关资源配额如何与 Rancher 中的项目一起使用的详细信息,请参阅[此页面](../how-to-guides/advanced-user-guides/manage-projects/manage-project-resource-quotas/about-project-resource-quotas.md)。
|
||||
|
||||
### 将资源配额应用于现有项目
|
||||
|
||||
修改资源配额的使用场景如下:
|
||||
|
||||
- 限制某个项目和项目下的命名空间能使用的资源
|
||||
- 在资源配额已生效的情况下,对项目可用的资源进行扩容或缩容
|
||||
|
||||
1. 在左上角,单击 **☰ > 集群管理**。
|
||||
1. 在**集群**页面,进入要应用资源配额的集群,然后单击 **Explore**。
|
||||
1. 单击**集群 > 项目/命名空间**。
|
||||
1. 确保 **Projects/Namespaces** 页面处于 **Group by Project** 视图模式。
|
||||

|
||||
|
||||
1. 找到要添加资源配额的项目,选择与项目名称同行的 **⋮**。
|
||||

|
||||
|
||||
1. 选择**编辑配置**。
|
||||
|
||||
1. 展开**资源限额**并单击**添加资源**。你也可以编辑现有配额。
|
||||
|
||||
1. 选择资源类型。有关类型的更多信息,请参阅[配额类型参考](../how-to-guides/advanced-user-guides/manage-projects/manage-project-resource-quotas/resource-quota-types.md)。
|
||||
|
||||
1. 输入**项目限制**和**命名空间默认限制**的值。
|
||||
|
||||
| 字段 | 描述 |
|
||||
| ----------------------- | -------------------------------------------------------------------------------------------------------- |
|
||||
| 项目限制 | 项目的总资源限制。 |
|
||||
| 命名空间默认限制 | 每个命名空间的默认资源限制。此限制会沿用到项目中的每个命名空间。项目中所有命名空间的限制之和不应超过项目限制。 |
|
||||
|
||||
1. **可选**:添加更多配额。
|
||||
|
||||
1. 单击**创建**。
|
||||
|
||||
**结果**:资源配额已应用到你的项目和命名空间。如果你后续需要添加更多命名空间,Rancher 会验证项目是否可以容纳该命名空间。如果项目无法分配资源,你仍然可以创建命名空间,但命名空间将获得的资源配额为 0。然后 Rancher 将不允许你创建任何受此配额限制的资源。
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
title: 项目管理
|
||||
---
|
||||
|
||||
_项目_ 是 Rancher 中引入的对象,可帮助你更有组织地管理 Kubernetes 集群中的命名空间。你可以使用项目创建多租户集群,这种集群允许一组用户共享相同的底层资源来创建应用,而应用之间不会相互影响。
|
||||
|
||||
在层次结构方面:
|
||||
|
||||
- 集群包含项目
|
||||
- 项目包含命名空间
|
||||
|
||||
在 Rancher 中,你可以使用项目将多个命名空间作为一个实体进行管理。在原生 Kubernetes(没有项目这个概念)中,RBAC 或集群资源等功能被分配给了各个命名空间。如果集群中的多个命名空间需要分配同样的访问权限,分配权限会变得非常繁琐。即使所有命名空间都需要相同的权限,但也无法使用一个操作中将这些权限应用于所有命名空间。你必须重复地将这些权限分配给每个命名空间。
|
||||
|
||||
而 Rancher 通过引入项目的概念,通过允许你在项目级别应用资源和访问权限。然后,项目中的每个命名空间都会继承这些资源和策略。因此你只需将资源和策略分配给项目即可,不需要将它们分配给每个单独的命名空间。
|
||||
|
||||
你可以使用项目执行以下操作:
|
||||
|
||||
- [为用户分配一组命名空间的访问权限](../how-to-guides/new-user-guides/add-users-to-projects.md)
|
||||
- 为用户分配[项目中的特定角色](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/manage-role-based-access-control-rbac/cluster-and-project-roles.md#项目角色)。角色可以是所有者、成员、只读或[自定义](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/manage-role-based-access-control-rbac/custom-roles.md)
|
||||
- [设置资源配额](manage-project-resource-quotas.md)
|
||||
- [管理命名空间](../how-to-guides/new-user-guides/manage-namespaces.md)
|
||||
- [配置工具](../reference-guides/rancher-project-tools.md)
|
||||
- [为持续集成和 deployment 设置流水线](../how-to-guides/advanced-user-guides/manage-projects/ci-cd-pipelines.md)
|
||||
- [配置 Pod 安全策略](../how-to-guides/advanced-user-guides/manage-projects/manage-pod-security-policies.md)
|
||||
|
||||
### 授权
|
||||
|
||||
非管理者用户只有在[管理员](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/manage-role-based-access-control-rbac/global-permissions.md)、[集群所有者或成员](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/manage-role-based-access-control-rbac/cluster-and-project-roles.md#集群角色)或[项目所有者](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/manage-role-based-access-control-rbac/cluster-and-project-roles.md#项目角色)将非管理员用户添加到项目的**成员**选项卡后,才能获取项目的访问权限。
|
||||
|
||||
创建项目的人自动成为[项目所有者](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/manage-role-based-access-control-rbac/cluster-and-project-roles.md#项目角色)。
|
||||
|
||||
## 在项目之间切换
|
||||
|
||||
要在项目之间切换,请使用导航栏中的下拉菜单。你也可以直接在导航栏中切换项目:
|
||||
|
||||
1. 在左上角,单击 **☰ > 集群管理**。
|
||||
1. 在**集群**页面,进入要切换项目的集群然后点击 **Explore**。
|
||||
1. 在顶部导航栏中,选择要打开的项目。
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
---
|
||||
title: RBAC
|
||||
---
|
||||
|
||||
Rancher 通过 _用户_ 进行授权管理。如[身份验证](authentication-config.md)中所述,用户可以是本地用户,也可以是外部用户。
|
||||
|
||||
配置外部身份验证后,**用户**页面上显示的用户会发生变化。
|
||||
|
||||
- 如果你以本地用户身份登录,则仅显示本地用户。
|
||||
|
||||
- 如果你以外部用户身份登录,则会同时显示外部用户和本地用户。
|
||||
|
||||
## 用户和角色
|
||||
|
||||
一旦用户登录到 Rancher,他们的 _授权_,也就是他们在系统中的访问权限,将由 _全局权限_ 和 _集群和项目角色_ 决定。
|
||||
|
||||
- [全局权限](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/manage-role-based-access-control-rbac/global-permissions.md):
|
||||
|
||||
定义用户在任何特定集群之外的授权。
|
||||
|
||||
- [集群和项目角色](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/manage-role-based-access-control-rbac/cluster-and-project-roles.md):
|
||||
|
||||
定义用户在分配了角色的特定集群或项目中的授权。
|
||||
|
||||
全局权限以及集群和项目角色都是基于 [Kubernetes RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) 实现的。因此,权限和角色的底层实现是由 Kubernetes 完成的。
|
||||
@@ -0,0 +1,11 @@
|
||||
---
|
||||
title: Monitoring 指南
|
||||
---
|
||||
|
||||
- [启用 monitoring](../how-to-guides/advanced-user-guides/monitoring-alerting-guides/enable-monitoring.md)
|
||||
- [卸载 monitoring](../how-to-guides/advanced-user-guides/monitoring-alerting-guides/uninstall-monitoring.md)
|
||||
- [Monitoring 工作负载](../how-to-guides/advanced-user-guides/monitoring-alerting-guides/set-up-monitoring-for-workloads.md)
|
||||
- [自定义 Grafana 仪表板](../how-to-guides/advanced-user-guides/monitoring-alerting-guides/customize-grafana-dashboard.md)
|
||||
- [持久化 Grafana 仪表板](../how-to-guides/advanced-user-guides/monitoring-alerting-guides/create-persistent-grafana-dashboard.md)
|
||||
- [调试高内存使用率](../how-to-guides/advanced-user-guides/monitoring-alerting-guides/debug-high-memory-usage.md)
|
||||
- [从 Monitoring V1 迁移到 V2](../how-to-guides/advanced-user-guides/monitoring-alerting-guides/migrate-to-rancher-v2.5+-monitoring.md)
|
||||
@@ -0,0 +1,95 @@
|
||||
---
|
||||
title: 监控和告警
|
||||
description: Prometheus 允许你查看来自不同 Rancher 和 Kubernetes 对象的指标。了解监控范围以及如何启用集群监控
|
||||
---
|
||||
|
||||
你可以使用 `rancher-monitoring` 应用,将业界领先的开源监控和告警解决方案快速部署到你的集群中。
|
||||
|
||||
|
||||
### 功能
|
||||
|
||||
Prometheus 支持查看 Rancher 和 Kubernetes 对象的指标。通过使用时间戳,Prometheus 能让你通过 Rancher UI 或 Grafana(与 Prometheus 一起部署的分析查看平台)以更容易阅读的图表和视觉形式来查询和查看这些指标。
|
||||
|
||||
通过查看 Prometheus 从集群的 controlplane、节点和 deployment 中抓取的数据,你可以随时了解集群中发生的所有事件。然后,你可以使用这些分析来更好地运行你的环境,例如在系统紧急情况发生之前阻止它们、制定维护策略,或恢复崩溃的服务器。
|
||||
|
||||
在 Rancher v2.5 中引入的 `rancher-monitoring` operator 由 [Prometheus](https://prometheus.io/)、[Grafana](https://grafana.com/grafana/)、[Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/), [Prometheus Operator](https://github.com/prometheus-operator/prometheus-operator) 和 [Prometheus adapter](https://github.com/DirectXMan12/k8s-prometheus-adapter) 提供支持。
|
||||
|
||||
Monitoring 应用允许你:
|
||||
|
||||
- 监控集群节点、Kubernetes 组件和软件部署的状态和进程
|
||||
- 根据 Prometheus 收集的指标定义告警
|
||||
- 创建自定义 Grafana 仪表板
|
||||
- 使用 Prometheus Alertmanager 通过电子邮件、Slack、PagerDuty 等配置告警通知
|
||||
- 根据 Prometheus 收集的指标,将预先计算的、经常需要的,或计算成本高的表达式定义为新的时间序列
|
||||
- 通过 Prometheus Adapter,将从 Prometheus 收集的指标公开给 Kubernetes Custom Metrics API,以便在 HPA 中使用
|
||||
|
||||
## Monitoring 的工作原理
|
||||
|
||||
有关 monitoring 组件如何协同工作的说明,请参阅[此页面](../integrations-in-rancher/monitoring-and-alerting/how-monitoring-works.md)。
|
||||
|
||||
## 默认组件和部署
|
||||
|
||||
### 内置仪表板
|
||||
|
||||
默认情况下,监控应用将 Grafana 仪表板(由 [kube-prometheus](https://github.com/prometheus-operator/kube-prometheus) 项目策划)部署到集群上。
|
||||
|
||||
它害部署一个 Alertmanager UI 和一个 Prometheus UI。有关这些工具的更多信息,请参见[内置仪表板](../integrations-in-rancher/monitoring-and-alerting/built-in-dashboards.md)。
|
||||
### 默认指标 Exporter
|
||||
|
||||
默认情况下,Rancher Monitoring 会部署 Exporter(例如 [node-exporter](https://github.com/prometheus/node_exporter) 和 [kube-state-metrics](https://github.com/kubernetes/kube-state-metrics))。
|
||||
|
||||
这些默认 Exporter 会自动从 Kubernetes 集群的所有组件(包括工作负载)中抓取 CPU 和内存的指标。
|
||||
|
||||
### 默认告警
|
||||
|
||||
Monitoring 应用会默认部署一些告警。要查看默认告警,请转到 [Alertmanager UI](../integrations-in-rancher/monitoring-and-alerting/built-in-dashboards.md#alertmanager-ui) 并单击**展开所有组**。
|
||||
|
||||
### Rancher UI 中公开的组件
|
||||
|
||||
有关 Rancher UI 中公开的监控组件列表,以及编辑它们的常见用例,请参阅[本节](../integrations-in-rancher/monitoring-and-alerting/how-monitoring-works.md#rancher-ui-中公开的组件)。
|
||||
|
||||
## RBAC
|
||||
|
||||
有关配置 monitoring 访问权限的信息,请参阅[此页面](../integrations-in-rancher/monitoring-and-alerting/rbac-for-monitoring.md)。
|
||||
|
||||
## 指南
|
||||
|
||||
- [启用 monitoring](../how-to-guides/advanced-user-guides/monitoring-alerting-guides/enable-monitoring.md)
|
||||
- [卸载 monitoring](../how-to-guides/advanced-user-guides/monitoring-alerting-guides/uninstall-monitoring.md)
|
||||
- [Monitoring 工作负载](../how-to-guides/advanced-user-guides/monitoring-alerting-guides/set-up-monitoring-for-workloads.md)
|
||||
- [自定义 Grafana 仪表板](../how-to-guides/advanced-user-guides/monitoring-alerting-guides/customize-grafana-dashboard.md)
|
||||
- [持久化 Grafana 仪表板](../how-to-guides/advanced-user-guides/monitoring-alerting-guides/create-persistent-grafana-dashboard.md)
|
||||
- [调试高内存使用率](../how-to-guides/advanced-user-guides/monitoring-alerting-guides/debug-high-memory-usage.md)
|
||||
- [从 Monitoring V1 迁移到 V2](../how-to-guides/advanced-user-guides/monitoring-alerting-guides/migrate-to-rancher-v2.5+-monitoring.md)
|
||||
|
||||
## 配置
|
||||
|
||||
### 在 Rancher 中配置 Monitoring 资源
|
||||
|
||||
> 此处的配置参考假设你已经熟悉 monitoring 组件的协同工作方式。如需更多信息,请参阅 [monitoring 的工作原理](../integrations-in-rancher/monitoring-and-alerting/how-monitoring-works.md)。
|
||||
|
||||
- [ServiceMonitor 和 PodMonitor](../reference-guides/monitoring-v2-configuration/servicemonitors-and-podmonitors.md)
|
||||
- [接收器](../reference-guides/monitoring-v2-configuration/receivers.md)
|
||||
- [路由](../reference-guides/monitoring-v2-configuration/routes.md)
|
||||
- [PrometheusRule](../how-to-guides/advanced-user-guides/monitoring-v2-configuration-guides/advanced-configuration/prometheusrules.md)
|
||||
- [Prometheus](../how-to-guides/advanced-user-guides/monitoring-v2-configuration-guides/advanced-configuration/prometheus.md)
|
||||
- [Alertmanager](../how-to-guides/advanced-user-guides/monitoring-v2-configuration-guides/advanced-configuration/alertmanager.md)
|
||||
|
||||
### 配置 Helm Chart 选项
|
||||
|
||||
有关 `rancher-monitoring` Chart 选项的更多信息,包括设置资源限制和请求的选项,请参阅[此页面](../reference-guides/monitoring-v2-configuration/helm-chart-options.md)。
|
||||
|
||||
## Windows 集群支持
|
||||
|
||||
如果 Monitoring 部署到 RKE1 Windows 集群,Monitoring V2 将自动部署 [windows-exporter](https://github.com/prometheus-community/windows_exporter) DaemonSet 并设置 ServiceMonitor,以从每个部署的 Pod 中收集指标。这将使用 `windows_` 指标填充 Prometheus,这些指标与 [node_exporter](https://github.com/prometheus/node_exporter) 为 Linux 主机导出的 `node_` 指标类似。
|
||||
|
||||
为了能够为 Windows 完全部署 Monitoring V2,你的所有 Windows 主机都必须至少具有 v0.1.0 的 [wins](https://github.com/rancher/wins) 版本。
|
||||
|
||||
有关如何在现有 Windows 主机上升级 wins 版本的更多详细信息,请参阅 [Windows 集群对 Monitoring V2 的支持](../integrations-in-rancher/monitoring-and-alerting/windows-support.md)。
|
||||
|
||||
|
||||
## 已知问题
|
||||
|
||||
有一个[已知问题](https://github.com/rancher/rancher/issues/28787#issuecomment-693611821),即 K3s 集群需要更多的默认内存。如果你在 K3s 集群上启用 monitoring,我们建议将 `prometheus.prometheusSpec.resources.memory.limit` 设置为 2500 Mi,并将 `prometheus.prometheusSpec.resources.memory.request` 设置为 1750 Mi。
|
||||
|
||||
有关调试高内存用量的提示,请参阅[此页面](../how-to-guides/advanced-user-guides/monitoring-alerting-guides/debug-high-memory-usage.md)。
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
---
|
||||
title: 配置
|
||||
---
|
||||
|
||||
本文介绍在 Rancher UI 中配置 Monitoring V2 的一些最重要选项。
|
||||
|
||||
有关为 Prometheus 配置自定义抓取目标和规则的信息,请参阅 [Prometheus Operator](https://github.com/prometheus-operator/prometheus-operator) 的上游文档。Prometheus Operator [设计文档](https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/getting-started/design.md)中解释了一些最重要的自定义资源。Prometheus Operator 文档还可以帮助你设置 RBAC、Thanos 或进行自定义配置。
|
||||
|
||||
## 设置资源限制和请求
|
||||
|
||||
安装 `rancher-monitoring` 时可以配置 Monitoring 应用的资源请求和限制。有关默认限制的更多信息,请参阅[此页面](../reference-guides/monitoring-v2-configuration/helm-chart-options.md#配置资源限制和请求)。
|
||||
|
||||
:::note
|
||||
|
||||
在空闲集群上,Monitoring V2 的 CPU 使用率(高达 70%)比 Monitoring V1 显著更高。要提高性能并获得与 Monitoring V1 类似的结果,请关闭 Prometheus Adapter。
|
||||
|
||||
:::
|
||||
|
||||
## Prometheus 配置
|
||||
|
||||
通常不需要直接编辑 Prometheus 自定义资源。
|
||||
|
||||
相反,要让 Prometheus 抓取自定义指标,你只需创建一个新的 ServiceMonitor 或 PodMonitor 来将 Prometheus 配置为抓取其他指标。
|
||||
|
||||
|
||||
### ServiceMonitor 和 PodMonitor 配置
|
||||
|
||||
有关详细信息,请参阅[此页面](../reference-guides/monitoring-v2-configuration/servicemonitors-and-podmonitors.md)。
|
||||
|
||||
### 高级 Prometheus 配置
|
||||
|
||||
有关直接编辑 Prometheus 自定义资源(对高级用例可能有帮助)的更多信息,请参阅[此页面](../how-to-guides/advanced-user-guides/monitoring-v2-configuration-guides/advanced-configuration/prometheus.md)。
|
||||
|
||||
## Alertmanager 配置
|
||||
|
||||
Alertmanager 自定义资源通常不需要直接编辑。在常见用例中,你可以通过更新路由和接收器来管理告警。
|
||||
|
||||
路由和接收器是 Alertmanager 自定义资源配置的一部分。在 Rancher UI 中,路由(Route)和接收器(Receiver)并不是真正的自定义资源,而是 Prometheus Operator 用来将你的配置与 Alertmanager 自定义资源同步的伪自定义资源。当路由和接收器更新时,Monitoring 应用将自动更新 Alertmanager 来反映这些更改。
|
||||
|
||||
对于一些高级用例,你可能需要直接配置 Alertmanager。有关详细信息,请参阅[此页面](../how-to-guides/advanced-user-guides/monitoring-v2-configuration-guides/advanced-configuration/alertmanager.md)。
|
||||
|
||||
### 接收器
|
||||
|
||||
接收器(Receiver)用于设置通知。有关如何配置接收器的详细信息,请参阅[此页面](../reference-guides/monitoring-v2-configuration/receivers.md)。
|
||||
### 路由
|
||||
|
||||
路由(Route)在通知到达接收器之前过滤它们。每条路由都需要引用一个已经配置好的接收器。有关如何配置路由的详细信息,请参阅[此页面](../reference-guides/monitoring-v2-configuration/routes.md)。
|
||||
|
||||
### 高级配置
|
||||
|
||||
有关直接编辑 Alertmanager 自定义资源(对高级用例可能有帮助)的更多信息,请参阅[此页面](../how-to-guides/advanced-user-guides/monitoring-v2-configuration-guides/advanced-configuration/alertmanager.md)。
|
||||
@@ -0,0 +1,11 @@
|
||||
---
|
||||
title: Monitoring V2 配置
|
||||
---
|
||||
|
||||
本文介绍了在 Rancher 中配置 Monitoring V2 的必要选项:
|
||||
|
||||
- [接收器配置](../reference-guides/monitoring-v2-configuration/receivers.md)
|
||||
- [路由配置](../reference-guides/monitoring-v2-configuration/routes.md)
|
||||
- [ServiceMonitor 和 PodMonitor 配置](../reference-guides/monitoring-v2-configuration/servicemonitors-and-podmonitors.md)
|
||||
- [Helm Chart 选项](../reference-guides/monitoring-v2-configuration/helm-chart-options.md)
|
||||
- [示例](../reference-guides/monitoring-v2-configuration/examples.md)
|
||||
@@ -0,0 +1,9 @@
|
||||
---
|
||||
title: 新用户指南
|
||||
---
|
||||
|
||||
新用户指南(也称为**教程**)描述了某些操作的实际步骤。这些文档是“学习导向”的,也就是说用户通过“操作”来学习。
|
||||
|
||||
新用户指南旨在引导初学者或 Rancher 的日常用户通过一系列步骤来学习如何进行某些操作。这些文档旨在帮助用户通过使用易于遵循、有意义且可重复的操作来了解如何完成任务。这些指南将帮助用户完成工作,并能立刻看到效果。
|
||||
|
||||
正常来说,普通 Rancher 用户的技术水平高于“初学者”,但是,我们的新用户指南为初学者以及经验丰富的 Rancher 用户提供相同的指导。我们结合使用了高级语言和技术语言来介绍各个主题,并指导用户完成 Rancher 用户需要了解的通用任务。
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: 节点模板配置
|
||||
---
|
||||
|
||||
要了解节点模板配置,请参阅[EC2 节点模板配置](../reference-guides/cluster-configuration/downstream-cluster-configuration/node-template-configuration/amazon-ec2.md)、[DigitalOcean 节点模板配置](../reference-guides/cluster-configuration/downstream-cluster-configuration/node-template-configuration/digitalocean.md)、[Azure 节点模板配置](../reference-guides/cluster-configuration/downstream-cluster-configuration/node-template-configuration/azure.md)、[vSphere 节点模板配置](../reference-guides/cluster-configuration/downstream-cluster-configuration/node-template-configuration/vsphere.md)和 [Nutanix 节点模板配置](../reference-guides/cluster-configuration/downstream-cluster-configuration/node-template-configuration/nutanix.md)。
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
title: 创建 Nutanix AOS 集群
|
||||
description: 使用 Rancher 创建 Nutanix AOS (AHV) 集群。集群可能包括具有不同属性的 VM 组,这些属性可用于细粒度控制节点的大小。
|
||||
---
|
||||
|
||||
[Nutanix Acropolis 操作系统](https://www.nutanix.com/products/acropolis) (Nutanix AOS) 是适用于 Nutanix 超融合基础架构平台的操作系统。AOS 带有一个名为 [Acropolis Hypervisor(AHV)](https://www.nutanix.com/products/ahv)的内置虚拟机监控程序。你可以结合使用 Rancher 与 Nutanix AOS (AHV),从而在本地体验云环境的操作。
|
||||
|
||||
Rancher 可以在 AOS (AHV) 中配置节点并在其上安装 Kubernetes。在 AOS 中创建 Kubernetes 集群时,Rancher 首先与 Prism Central API 通信来配置指定数量的虚拟机。然后在虚拟机上安装 Kubernetes。
|
||||
|
||||
Nutanix 集群可能由多组具有不同属性(例如内存或 vCPU 数量)的 VM 组成。这种分组允许对每个 Kubernetes 角色的节点大小进行细粒度控制。
|
||||
|
||||
- [创建 Nutanix 集群](../how-to-guides/new-user-guides/launch-kubernetes-with-rancher/use-new-nodes-in-an-infra-provider/nutanix/provision-kubernetes-clusters-in-aos.md#创建-nutanix-aos-集群)
|
||||
- [配置存储](../how-to-guides/new-user-guides/launch-kubernetes-with-rancher/use-new-nodes-in-an-infra-provider/nutanix/provision-kubernetes-clusters-in-aos.md)
|
||||
|
||||
## 创建 Nutanix 集群
|
||||
|
||||
在[本节](../how-to-guides/new-user-guides/launch-kubernetes-with-rancher/use-new-nodes-in-an-infra-provider/nutanix/provision-kubernetes-clusters-in-aos.md)中,你将学习如何使用 Rancher 在 Nutanix AOS 中安装 [RKE](https://rancher.com/docs/rke/latest/en/) Kubernetes 集群。
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
title: 其他安装方式
|
||||
---
|
||||
|
||||
### 离线安装
|
||||
|
||||
按照[以下步骤](air-gapped-helm-cli-install.md)在离线环境中安装 Rancher Server。
|
||||
|
||||
离线环境可以是 Rancher Server 离线安装、防火墙后面或代理后面。
|
||||
|
||||
### Docker 安装
|
||||
|
||||
[单节点 Docker 安装](rancher-on-a-single-node-with-docker.md)适用于想要测试 Rancher 的用户。你无需使用 Helm 在 Kubernetes 集群上运行 Rancher,你可以使用 `docker run` 命令,把 Rancher Server 组件安装到单个节点上。
|
||||
|
||||
Docker 安装仅用于开发和测试环境。
|
||||
|
||||
由于只有一个节点和一个 Docker 容器,因此,如果该节点发生故障,由于其他节点上没有可用的 etcd 数据副本,你将丢失 Rancher Server 的所有数据。
|
||||
|
||||
Rancher backup operator 可将 Rancher 从单个 Docker 容器迁移到高可用 Kubernetes 集群上。详情请参见[把 Rancher 迁移到新集群](../how-to-guides/new-user-guides/backup-restore-and-disaster-recovery/migrate-rancher-to-new-cluster.md)。
|
||||
@@ -0,0 +1,283 @@
|
||||
---
|
||||
title: 流水线
|
||||
---
|
||||
|
||||
:::note 注意事项
|
||||
|
||||
- Rancher 2.5 开始已弃用基于 Git 的部署流水线。我们建议使用由 [Fleet](../how-to-guides/new-user-guides/deploy-apps-across-clusters/fleet.md) 提供支持的 Rancher Continuous Delivery (CD) 来处理流水线。如需在 Rancher 中访问 Fleet,请单击 <b>☰ > 持续交付</b>。
|
||||
|
||||
- 不再支持 Kubernetes 1.21+ 中的流水线。
|
||||
|
||||
- Fleet 不会取代 Rancher 流水线,只是 Rancher 流水线现在由 Fleet 提供支持。
|
||||
|
||||
:::
|
||||
|
||||
Rancher 的流水线提供了简单的 CI/CD 体验。你可以使用流水线来自动签出代码、运行构建或脚本、发布 Docker 镜像或商店应用,以及将更新的软件部署给用户。
|
||||
|
||||
设置流水线可以帮助开发者快速高效地上线新软件。你可以使用 Rancher 与 GitHub 仓库集成,从而设置持续集成(CI)流水线。
|
||||
|
||||
配置 Rancher 和 GitHub 后,你可以部署运行 Jenkins 的容器来自动化执行流水线:
|
||||
|
||||
- 将应用代码构建为镜像。
|
||||
- 验证构建。
|
||||
- 将构建的镜像部署到集群。
|
||||
- 运行单元测试。
|
||||
- 运行回归测试。
|
||||
|
||||
:::note
|
||||
|
||||
Rancher 的流水线提供简单的 CI/CD 体验,但不提供完整的功能和灵活性,也不能替代你团队正在使用的企业级 Jenkins 或其他 CI 工具。
|
||||
|
||||
:::
|
||||
|
||||
|
||||
## 概念
|
||||
|
||||
有关本节中使用的概念和术语说明,请参阅[此页面](../reference-guides/pipelines/concepts.md)。
|
||||
|
||||
## 流水线的工作原理
|
||||
|
||||
为项目中启用流水线功能后,你可以在每个项目中配置多个流水线。每个流水线都是独一无二的,可以独立配置。
|
||||
|
||||
流水线是由一组签入源代码仓库的文件配置的。用户可以通过 Rancher UI 或通过将 `.rancher-pipeline.yml` 添加到仓库来配置流水线。
|
||||
|
||||
在配置流水线之前,你需要为版本控制提供商(例如 GitHub、GitLab 或 Bitbucket)配置身份验证。如果你还没有配置版本控制提供商,你可以随时使用 [Rancher 的示例仓库](../reference-guides/pipelines/example-repositories.md)来查看常见的流水线部署。
|
||||
|
||||
在项目中配置流水线时,会自动创建一个专门用于该流水线的命名空间。以下组件部署到它:
|
||||
|
||||
- **Jenkins**:
|
||||
|
||||
流水线的构建引擎。由于项目用户不直接与 Jenkins 交互,因此 Jenkins 是被托管和锁定的。
|
||||
|
||||
:::note
|
||||
|
||||
没有使用现有 Jenkins deployment 作为流水线引擎的选项。
|
||||
|
||||
:::
|
||||
|
||||
- **Docker 镜像仓库**:
|
||||
|
||||
内部 Docker 镜像仓库是开箱即用,用于构建到发布步骤的默认目标。你也可以进行配置以推送到远程镜像仓库。内部 Docker 镜像仓库只能从集群节点访问,用户不能直接访问它。镜像不会在流水线的生命周期之外被持久化,并且只能在流水线运行使用。如果你需要在流水线运行之外访问镜像,请将镜像推送到外部镜像仓库。
|
||||
|
||||
- **Minio**:
|
||||
|
||||
Minio 存储用于存储流水线执行的日志。
|
||||
|
||||
:::note
|
||||
|
||||
托管的 Jenkins 实例是无状态工作的,因此你不用担心它的数据持久性。Docker 镜像仓库和 Minio 实例默认使用临时卷,这种做法适用于大多数用例。如果你想确保流水线日志能够在节点故障的情况下也能保存,你可以为它们配置持久卷(参见[流水线组件的数据持久性](../reference-guides/pipelines/configure-persistent-data.md))。
|
||||
|
||||
:::
|
||||
|
||||
## 流水线的 RBAC
|
||||
|
||||
如果你可以访问项目,则可以启用仓库来开始构建流水线。
|
||||
|
||||
只有[管理员](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/manage-role-based-access-control-rbac/global-permissions.md)、[集群所有者或成员](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/manage-role-based-access-control-rbac/cluster-and-project-roles.md#集群角色)或[项目所有者](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/manage-role-based-access-control-rbac/cluster-and-project-roles.md#项目角色)可以配置版本控制提供商和管理全局流水线的执行设置。
|
||||
|
||||
项目成员只能配置仓库和流水线。
|
||||
|
||||
## 设置流水线
|
||||
|
||||
### 先决条件
|
||||
|
||||
:::note 旧版功能开关:
|
||||
|
||||
由于流水线应用已被弃用并替换为 Fleet,因此在使用流水线之前,你需要打开旧版功能的功能开关。请注意,我们不再支持 Kubernetes 1.21+ 中的流水线。
|
||||
|
||||
1. 在左上角,单击 **☰ > 全局设置**。
|
||||
1. 单击**功能开关**。
|
||||
1. 转到`旧版应用 `功能开关并单击 **⋮ > 激活**。
|
||||
|
||||
:::
|
||||
|
||||
1. [配置版本控制提供商](#1-配置版本控制提供商)
|
||||
2. [配置仓库](#2-配置仓库)
|
||||
3. [配置流水线](#3-配置流水线)
|
||||
|
||||
### 1. 配置版本控制提供商
|
||||
|
||||
在为仓库配置流水线之前,你必须配置和授权版本控制提供商:
|
||||
|
||||
- GitHub
|
||||
- GitLab
|
||||
- Bitbucket
|
||||
|
||||
在下方选择你的提供商对应的选项卡,然后按照说明进行操作。
|
||||
|
||||
<Tabs>
|
||||
<TabItem value="GitHub">
|
||||
|
||||
1. 在左上角,单击 **☰ > 集群管理**。
|
||||
1. 转到要配置流水线的集群,然后单击 **Explore**。
|
||||
1. 在顶部导航栏的下拉菜单中,选择要配置流水线的项目。
|
||||
1. 在左侧导航栏中,单击 **Legacy > 项目 > 流水线**。
|
||||
1. 单击**配置**选项卡。
|
||||
1. 按照说明**设置 Github 应用**。Rancher 会将你重定向到 GitHub 以在 GitHub 中设置 OAuth 应用。
|
||||
1. 从 GitHub 复制 **Client ID** 和 **Client Secret**。将它们粘贴到 Rancher 中。
|
||||
1. 如果你使用的是企业版 GitHub,请选择**使用私有 GitHub 企业版安装**。输入 GitHub 安装的主机地址。
|
||||
1. 单击**验证**。
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="GitLab">
|
||||
|
||||
1. 在左上角,单击 **☰ > 集群管理**。
|
||||
1. 转到要配置流水线的集群,然后单击 **Explore**。
|
||||
1. 在顶部导航栏的下拉菜单中,选择要配置流水线的项目。
|
||||
1. 在左侧导航栏中,单击 **Legacy > 项目 > 流水线**。
|
||||
1. 单击**配置**选项卡。
|
||||
1. 单击 **GitLab**。
|
||||
1. 按照说明**设置 GitLab 应用**。Rancher 会将你重定向到 GitLab。
|
||||
1. 从 GitLab 复制 **Application ID** 和 **Secret**。将它们粘贴到 Rancher 中。
|
||||
1. 如果你使用的是企业版 GitLab,请选择**使用私有 GitLab 企业版安装**。输入 GitLab 安装的主机地址。
|
||||
1. 单击**验证**。
|
||||
|
||||
:::note 注意事项:
|
||||
|
||||
1. 流水线使用 GitLab [v4 API](https://docs.gitlab.com/ee/api/v3_to_v4.html),支持的 GitLab 版本为 9.0+。
|
||||
2. 如果你使用 GitLab 10.7+ 并且你的 Rancher 设置位于本地网络中,请在 GitLab 管理设置中启用 **Allow requests to the local network from hooks and services** 选项。
|
||||
|
||||
|
||||
:::
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="Bitbucket Cloud">
|
||||
|
||||
1. 在左上角,单击 **☰ > 集群管理**。
|
||||
1. 转到要配置流水线的集群,然后单击 **Explore**。
|
||||
1. 在顶部导航栏的下拉菜单中,选择要配置流水线的项目。
|
||||
1. 在左侧导航栏中,单击 **Legacy > 项目 > 流水线**。
|
||||
1. 单击**配置**选项卡。
|
||||
1. 单击 **Bitbucket** 并保留默认选中的**使用 Bitbucket Cloud**。
|
||||
1. 按照说明**设置 Bitbucket Cloud 应用**。Rancher 会将你重定向到 Bitbucket 以在 Bitbucket 中设置 OAuth 使用者。
|
||||
1. 从 Bitbucket 复制使用者 **Key** 和 **Secret**。将它们粘贴到 Rancher 中。
|
||||
1. 单击**验证**。
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="Bitbucket Server">
|
||||
|
||||
1. 在左上角,单击 **☰ > 集群管理**。
|
||||
1. 转到要配置流水线的集群,然后单击 **Explore**。
|
||||
1. 在顶部导航栏的下拉菜单中,选择要配置流水线的项目。
|
||||
1. 在左侧导航栏中,单击 **Legacy > 项目 > 流水线**。
|
||||
1. 单击**配置**选项卡。
|
||||
1. 点击 **Bitbucket** 并选择**使用私有 Bitbucket Server 设置**选项。
|
||||
1. 按照说明**设置 Bitbucket Server 应用**。
|
||||
1. 输入 Bitbucket Server 安装的主机地址。
|
||||
1. 单击**验证**。
|
||||
|
||||
:::note
|
||||
|
||||
Bitbucket server 在向 Rancher 发送 webhook 时需要进行 SSL 验证。请确保 Rancher server 的证书被 Bitbucket server 信任。有两种选择:
|
||||
|
||||
1. 使用受信任的 CA 签发的证书来设置 Rancher server。
|
||||
1. 如果你使用的是自签名证书,请将 Rancher server 的证书导入 Bitbucket server。有关说明,请参阅 Bitbucket sever 文档以了解如何[配置自签名证书](https://confluence.atlassian.com/bitbucketserver/if-you-use-self-signed-certificates-938028692.html)。
|
||||
|
||||
:::
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
**结果**:版本控制提供商通过身份验证后,你将被自动重定向以配置你希望使用流水线的仓库。
|
||||
|
||||
### 2. 配置仓库
|
||||
|
||||
授权版本控制提供商后,你将被自动重定向以配置你希望使用流水线的仓库。即使其他人设置了版本控制提供商,你也能看到他们的仓库并构建流水线:
|
||||
|
||||
1. 在左上角,单击 **☰ > 集群管理**。
|
||||
1. 转到要配置流水线的集群,然后单击 **Explore**。
|
||||
1. 在顶部导航栏的下拉菜单中,选择要配置流水线的项目。
|
||||
1. 在左侧导航栏中,单击 **Legacy > 项目 > 流水线**。
|
||||
1. 单击**配置仓库**。
|
||||
|
||||
1. 此处会显示仓库列表。如果你是第一次配置仓库,请单击 **Authorize & Fetch Your Own Repositories** 来获取你的仓库列表。
|
||||
|
||||
1. 在要设置流水线的仓库处单击**启用**。
|
||||
|
||||
1. 启用所有仓库后,单击**完成**。
|
||||
|
||||
**结果**:你有了一个可以配置流水线的仓库列表。
|
||||
|
||||
### 3. 配置流水线
|
||||
|
||||
现在仓库已添加到你的项目中。你可以通过添加自动化阶段和步骤来配置流水线。为方便起见,我们提供了多种用于特有任务的内置步骤类型。
|
||||
|
||||
1. 在左上角,单击 **☰ > 集群管理**。
|
||||
1. 转到要配置流水线的集群,然后单击 **Explore**。
|
||||
1. 在顶部导航栏的下拉菜单中,选择要配置流水线的项目。
|
||||
1. 在左侧导航栏中,单击 **Legacy > 项目 > 流水线**。
|
||||
1. 找到要设置流水线的仓库。
|
||||
1. 通过 UI 或使用仓库中的 YAML 文件(即 `.rancher-pipeline.yml` 或 `.rancher-pipeline.yaml`)配置流水线。流水线配置分为阶段和步骤。必须完全完成阶段后才能进入下一个阶段,但一个阶段中的步骤可以同时运行。你可以在每个阶段中添加不同的步骤类型。请注意,在构建步骤时,会根据步骤类型提供不同的高级选项。高级选项包括触发规则、环境变量和密文。有关通过 UI 或 YAML 文件配置流水线的更多信息,请参阅[流水线配置参考](../reference-guides/pipelines/pipeline-configuration.md)。
|
||||
|
||||
* 如果要使用 UI,请选择 **⋮ > 编辑配置**以使用 UI 配置流水线。配置流水线后,你必须查看 YAML 文件并将其推送到仓库。
|
||||
* 如果你要使用 YAML 文件,请选择 **⋮ > 查看/编辑 YAML** 来配置流水线。如果你使用 YAML 文件,你需要在更改文件后将更新的文件推送到仓库,以便更新仓库中的内容。在编辑流水线配置时,Rancher 需要花一些时间检查现有的流水线配置。
|
||||
|
||||
1. 从分支列表中选择要使用的`分支`。
|
||||
|
||||
1. 可选:设置通知。
|
||||
|
||||
1. 设置流水线的触发规则。
|
||||
|
||||
1. 为流水线输入**超时**。
|
||||
|
||||
1. 配置完所有阶段和步骤后,单击**完成**。
|
||||
|
||||
**结果** :你的流水线已配置好并可以运行了。
|
||||
|
||||
|
||||
## 流水线配置参考
|
||||
|
||||
参见[此页面](../reference-guides/pipelines/pipeline-configuration.md)以了解如何通过配置流水线实现以下目的:
|
||||
|
||||
- 运行脚本
|
||||
- 构建和发布镜像
|
||||
- 发布应用商店模板
|
||||
- 部署 YAML
|
||||
- 部署商店应用
|
||||
|
||||
配置参考还包括如何配置:
|
||||
|
||||
- 通知
|
||||
- 超时
|
||||
- 触发流水线的规则
|
||||
- 环境变量
|
||||
- 密文
|
||||
|
||||
|
||||
## 运行流水线
|
||||
|
||||
首次运行你的流水线。找到你的流水线并选择 **⋮ > 运行**。
|
||||
|
||||
在此初始运行期间将测试你的流水线。以下流水线组件将作为工作负载部署到你的项目专用于该流水线的命名空间:
|
||||
|
||||
- `docker-registry`
|
||||
- `jenkins`
|
||||
- `minio`
|
||||
|
||||
这个过程需要几分钟。完成后,你可以从项目的**工作负载**选项卡中查看每个流水线组件。
|
||||
|
||||
## 触发流水线
|
||||
|
||||
启用仓库后,会在版本控制提供商中自动设置 webhook。默认情况下,流水线会由 **push** 事件触发到仓库,但你也可以修改触发运行流水线的事件。
|
||||
|
||||
可用事件:
|
||||
|
||||
* **Push**:当提交被推送到仓库中的分支时,触发流水线。
|
||||
* **Pull Request**:对仓库发起 PR 时,触发流水线。
|
||||
* **Tag**:在仓库中创建标签时,触发流水线。
|
||||
|
||||
:::note
|
||||
|
||||
Rancher 的[示例仓库](../reference-guides/pipelines/example-repositories.md)不存在此选项。
|
||||
|
||||
:::
|
||||
|
||||
### 修改仓库的事件触发器
|
||||
|
||||
1. 在左上角,单击 **☰ > 集群管理**。
|
||||
1. 转到要配置流水线的集群,然后单击 **Explore**。
|
||||
1. 在顶部导航栏的下拉菜单中,选择要配置流水线的项目。
|
||||
1. 在左侧导航栏中,单击 **Legacy > 项目 > 流水线**。
|
||||
1. 找到要修改事件触发器的仓库。选择 **⋮ > 设置**。
|
||||
1. 为仓库选择所需的事件触发器(**Push**、**Pull Request** 或 **Tag**)。
|
||||
1. 单击**保存**。
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: Prometheus Federator 指南
|
||||
---
|
||||
|
||||
- [启用 Prometheus Operator](../how-to-guides/advanced-user-guides/monitoring-alerting-guides/prometheus-federator-guides/enable-prometheus-federator.md)
|
||||
- [卸载 Prometheus Operator](../how-to-guides/advanced-user-guides/monitoring-alerting-guides/prometheus-federator-guides/uninstall-prometheus-federator.md)
|
||||
- [自定义 Grafana 仪表板](../how-to-guides/advanced-user-guides/monitoring-alerting-guides/prometheus-federator-guides/customize-grafana-dashboards.md)
|
||||
- [设置工作负载](../how-to-guides/advanced-user-guides/monitoring-alerting-guides/prometheus-federator-guides/set-up-workloads.md)
|
||||
@@ -0,0 +1,104 @@
|
||||
---
|
||||
title: Prometheus Federator
|
||||
---
|
||||
|
||||
Prometheus Federator(也称为 Project Monitoring V2)基于 [rancher/helm-project-operator](https://github.com/rancher/helm-project-operator) 部署一个 Helm Project Operator。该 Operator 管理 Helm Chart 的部署,每个 Operator 都包含一个 Project Monitoring Stack,而每个堆栈都包含:
|
||||
|
||||
- [Prometheus](https://prometheus.io/)(由 [Prometheus Operator](https://github.com/prometheus-operator/prometheus-operator) 在外部管理)
|
||||
- [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/)(由 [Prometheus Operator](https://github.com/prometheus-operator/prometheus-operator) 在外部管理)
|
||||
- [Grafana](https://github.com/helm/charts/tree/master/stable/grafana)(通过嵌入式 Helm Chart 部署)
|
||||
- 基于 [kube-prometheus](https://github.com/prometheus-operator/kube-prometheus/) 社区策划资源集合的默认 PrometheusRules 和 Grafana 仪表板
|
||||
- 监视已部署资源的默认 ServiceMonitor
|
||||
|
||||
:::note 重要提示:
|
||||
|
||||
Prometheus Federator 适合在已安装 Prometheus Operator CRD 的集群中与现有的 Prometheus Operator Deployment 一起部署。
|
||||
|
||||
:::
|
||||
|
||||
## Operator 工作原理
|
||||
|
||||
1. 在部署此 Chart 时,用户可以创建 ProjectHelmCharts CR,并在**项目 Registration 命名空间 (`cattle-project-<id>`)** 中将 `spec.helmApiVersion` 设置为 `monitoring.cattle.io/v1alpha1`(在 Rancher UI 中也称为“项目监控”)。
|
||||
2. 在看到每个 ProjectHelmChartCR 时,Operator 会代表项目所有者在**项目 Release 命名空间 (`cattle-project-<id>-monitoring`)** 中自动部署一个 Project Prometheus 堆栈(基于 ProjectHelmChart 控制器在 **Operator / System Namespace** 中创建的 HelmChart CR 和 HelmRelease CR)。
|
||||
3. RBAC 将自动分配到项目 Release 命名空间中,从而允许用户查看 Prometheus、Alertmanager 以及已部署的 Project Monitoring Stack 的 Grafana UI(基于在项目 Registration 命名空间上针对[面向用户的默认 Kubernetes 角色](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles)定义的 RBAC)。有关详细信息,请参阅[配置 RBAC](../reference-guides/prometheus-federator/rbac.md)。
|
||||
|
||||
### 什么是项目?
|
||||
|
||||
在 Prometheus Federator 中,项目是一组可以由 `metav1.LabelSelector` 标识的命名空间。默认情况下,用于标识项目的标签是 `field.cattle.io/projectId`,该标签用于标识给定 Rancher 项目中包含的命名空间。
|
||||
|
||||
### 配置由 ProjectHelmChart 创建的 Helm 版本
|
||||
|
||||
此 ProjectHelmChart 资源的 `spec.values` 对应于为底层 Helm Chart 配置的 `values.yaml` 覆盖,该 Helm Chart 是 Operator 代表用户部署的。要查看底层 Chart 的 `values.yaml` 规范,你可以选择以下其中一种方式:
|
||||
|
||||
- 查看位于 [`charts/rancher-project-monitoring` 中的 `rancher/prometheus-federator`](https://github.com/rancher/prometheus-federator/blob/main/charts/rancher-project-monitoring) 的 Chart 定义(Chart 版本会绑定到 Operator 版本)。
|
||||
- 查找在每个项目 Registration 命名空间中自动创建的名为 `monitoring.cattle.io.v1alpha1` 的 ConfigMap,其中包含用于配置 Chart(直接嵌入到 `prometheus-federator` 二进制文件中)的`values.yaml` 和 `questions.yaml`。
|
||||
|
||||
### 命名空间
|
||||
|
||||
Prometheus Federator 是基于 [rancher/helm-project-operator](https://github.com/rancher/helm-project-operator) 的 Project Operator,Prometheus Federator 提供了三类命名空间供 Operator 查找:
|
||||
|
||||
1. **Operator / System 命名空间**:部署 Operator 的命名空间(例如 `cattle-monitoring-system`)。此命名空间将包含该 Operator 监视的所有 ProjectHelmChart 的所有 HelmChart 和 HelmRelease。**只有集群管理员才能访问此命名空间**。
|
||||
|
||||
2. **项目 Registration 命名空间 (`cattle-project-<id>`)**:Operator 在这些命名空间中监视 ProjectHelmChart。对于在项目发布命名空间中创建的自动分配的 RBAC,应用于此命名空间的 RoleBinding 和 ClusterRoleBinding 也会作为 RBAC 的真实来源。有关详细信息,请参阅 [RBAC 页面](../reference-guides/prometheus-federator/rbac.md)。**项目所有者(admin)、项目成员(edit)和只读成员(view)应该有权访问此命名空间。**
|
||||
|
||||
:::note 注意事项:
|
||||
|
||||
- 如果提供了 `.Values.global.cattle.projectLabel`(默认设置为 `field.cattle.io/projectId`),则 Operator 会自动生成项目注册命名空间,并将它导入到命名空间绑定的项目中。换言之,如果观察到至少一个带有该标签的命名空间,则 Operator 会创建一个项目 Registration 命名空间。除非出现以下两种情况,否则 Operator 不会让这些命名空间被删除。第一种情况是带有该标签的所有命名空间都消失了(例如,这是该项目中的最后一个命名空间,在这种情况下,命名空间将标有标签 `"helm.cattle.io/helm-project-operator-orphaned": "true"`,表示可以删除)。第二种情况是由于项目 ID 是在 `.Values.helmProjectOperator.otherSystemProjectLabelValues` 下提供的(用作项目的拒绝名单),导致 Operator 不再监视该项目。这些命名空间不会被自动删除,这样能避免破坏用户数据。如果需要,建议用户在创建或删除项目时手动清理这些命名空间。
|
||||
|
||||
- 如果未提供 `.Values.global.cattle.projectLabel`,则 Operator / System 命名空间也是项目注册命名空间。
|
||||
|
||||
:::
|
||||
|
||||
3. **项目发布命名空间(`cattle-project-<id>-monitoring`)**:Operator 代表 ProjectHelmChart 在其中部署项目监控堆栈的命名空间集。Operator 还将根据在项目 Registration 命名空间中找到的绑定,自动为项目监控堆栈在此命名空间中创建的角色分配 RBAC。**只有集群管理员才能访问这个命名空间。部署的 Helm Chart 和 Prometheus Federator 将为项目所有者(admin)、项目成员(edit)和只读成员(view)分配该命名空间的有限访问权限。**
|
||||
|
||||
:::note 注意事项:
|
||||
|
||||
- 项目发布命名空间会自动部署并导入到 ID 在 `.Values.helmProjectOperator.projectReleaseNamespaces.labelValue` 下指定的项目中,如果未指定,且项目注册命名空间中指定了 ProjectHelmChart,则默认为 `.Values.global.cattle.systemProjectId` 的值。
|
||||
|
||||
- 项目发布命名空间的孤立约定与项目注册命名空间的相同(参见上面的注释)。
|
||||
|
||||
- 如果 `.Values.projectReleaseNamespaces.enabled` 为 false,则项目发布命名空间与项目注册命名空间是相同的。
|
||||
|
||||
:::
|
||||
|
||||
### Helm 资源(HelmChart、HelmRelease)
|
||||
|
||||
在部署 ProjectHelmChart 时,Prometheus Federator 将自动创建和管理两个子自定义资源,它们依次管理以下底层 Helm 资源:
|
||||
|
||||
- HelmChart CR(通过 Operator 中的嵌入式 [k3s-io/helm-contoller](https://github.com/k3s-io/helm-controller) 管理):此自定义资源会根据应用到 HelmChart CR 的变更,在触发 `helm install`、`helm upgrade` 或 `helm uninstall` 的同一命名空间中自动创建一个 Job。此 CR 会根据 ProjectHelmChart 的更改(例如,修改 `values.yaml`)或底层项目定义的更改(例如,从项目中添加或删除命名空间)自动更新。
|
||||
|
||||
:::note 重要提示:
|
||||
|
||||
如果 ProjectHelmChart 没有部署或更新底层项目监控堆栈,你可以先使用此资源在 Operator / System 命名空间中创建的 Job 来检查 Helm 操作是否有问题。通常只能由**集群管理员访问**。
|
||||
|
||||
:::
|
||||
|
||||
- HelmRelease CR(通过 Operator 中的嵌入式 [rancher/helm-locker](https://github.com/rancher/helm-locker) 管理):此自定义资源会自动锁定已部署的 Helm 版本并自动覆盖对底层资源的更新,除非更改是 Helm 操作导致的(`helm install`、`helm upgrade` 或 `helm uninstall` 由 HelmChart CR 执行)。
|
||||
|
||||
:::note
|
||||
|
||||
HelmRelease CR 会发出 Kubernetes 事件,用于检测底层 Helm 版本修改并将其锁定回原位。要查看这些事件,你可以使用 `kubectl describe helmrelease <helm-release-name> -n <operator/system-namespace>`。你还可以查看此 Operator 的日志,了解检测到更改的时间以及哪些资源被尝试更改。
|
||||
|
||||
:::
|
||||
|
||||
这两种资源都是为 Operator / System 命名空间中的所有 Helm Chart 创建的,用于避免低权限用户的权限升级。
|
||||
|
||||
### 高级 Helm Project Operator 配置
|
||||
|
||||
有关高级配置的更多信息,请参阅[此页面](https://github.com/rancher/prometheus-federator/blob/main/charts/prometheus-federator/README.md#advanced-helm-project-operator-configuration)。
|
||||
|
||||
<!--
|
||||
|Value|Configuration|
|
||||
|---|---------------------------|
|
||||
|`helmProjectOperator.valuesOverride`| Allows an Operator to override values that are set on each ProjectHelmChart deployment on an operator-level; user-provided options (specified on the `spec.values` of the ProjectHelmChart) are automatically overridden if operator-level values are provided. For an example, see how the default value overrides `federate.targets`. Note: When overriding list values like `federate.targets`, user-provided list values will **not** be concatenated. |
|
||||
|`helmProjectOperator.projectReleaseNamespaces.labelValues`| The value of the Project that all Project Release Namespaces should be auto-imported into via label and annotation. Not recommended to be overridden on a Rancher setup. |
|
||||
|`helmProjectOperator.otherSystemProjectLabelValues`| Other namespaces that the operator should treat as a system namespace that should not be monitored. By default, all namespaces that match `global.cattle.systemProjectId` will not be matched. `cattle-monitoring-system`, `cattle-dashboards`, and `kube-system` are explicitly marked as system namespaces as well, regardless of label or annotation. |
|
||||
|`helmProjectOperator.releaseRoleBindings.aggregate`| Whether to automatically create RBAC resources in Project Release namespaces.
|
||||
|`helmProjectOperator.releaseRoleBindings.clusterRoleRefs.<admin\|edit\|view>`| ClusterRoles to reference to discover subjects to create RoleBindings for in the Project Release Namespace for all corresponding Project Release Roles. See RBAC above for more information. |
|
||||
|`helmProjectOperator.hardenedNamespaces.enabled`| Whether to automatically patch the default ServiceAccount with `automountServiceAccountToken: false` and create a default NetworkPolicy in all managed namespaces in the cluster; the default values ensure that the creation of the namespace does not break a CIS 1.16 hardened scan. |
|
||||
|`helmProjectOperator.hardenedNamespaces.configuration`| The configuration to be supplied to the default ServiceAccount or auto-generated NetworkPolicy on managing a namespace. |
|
||||
-->
|
||||
|
||||
### Local 集群上的 Prometheus Federator
|
||||
|
||||
Prometheus Federator 是一个资源密集型应用程序。你可以将其安装到 Local 集群(**不推荐**)。
|
||||
@@ -0,0 +1,11 @@
|
||||
---
|
||||
title: 配置存储示例
|
||||
---
|
||||
|
||||
Rancher 通过各种卷插件来支持持久存储。但是,在使用这些插件将持久存储绑定到工作负载之前,无论是使用云解决方案还是你自己管理的本地解决方案,你都必须先配置存储本身。
|
||||
|
||||
为了你的方便,Rancher 提供了配置主流存储的参考文档:
|
||||
|
||||
- [NFS](../how-to-guides/new-user-guides/manage-clusters/provisioning-storage-examples/nfs-storage.md)
|
||||
- [vSphere](../how-to-guides/new-user-guides/manage-clusters/provisioning-storage-examples/vsphere-storage.md)
|
||||
- [EBS](../how-to-guides/new-user-guides/manage-clusters/provisioning-storage-examples/persistent-storage-in-amazon-ebs.md)
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
title: Rancher 部署快速入门指南
|
||||
---
|
||||
|
||||
:::caution
|
||||
|
||||
本章节中提供的指南,旨在帮助你快速启动一个用于 Rancher 的沙盒,以评估 Rancher 是否能满足你的使用需求。快速入门指南不适用于生产环境。如果你需要获取生产环境的操作指导,请参见[安装](installation-and-upgrade.md)。
|
||||
|
||||
:::
|
||||
|
||||
你可以阅读本章节,以快速开始部署和测试 Rancher 2.x。本章节包含 Rancher 的简单设置和一些常见用例的说明。未来,我们会在本章节中添加更多内容。
|
||||
|
||||
我们提供以下快速入门指南:
|
||||
|
||||
- [部署 Rancher Server](deploy-rancher-manager.md):使用最方便的方式运行 Rancher。
|
||||
|
||||
- [部署工作负载](deploy-rancher-workloads.md):部署一个简单的[工作负载](https://kubernetes.io/docs/concepts/workloads/)并公暴露工作负载,以从集群外部访问工作负载。
|
||||
@@ -0,0 +1,13 @@
|
||||
---
|
||||
title: 使用 HTTP 代理安装 Rancher
|
||||
---
|
||||
|
||||
很多企业本地运行的服务器或虚拟机不能直接访问互联网,但是出于安全考虑,他们必须通过 HTTP(S) 代理连接到外部服务。本教程将分步介绍如何在这样的环境中进行高可用的 Rancher 安装。
|
||||
|
||||
另外,用户也可以在没有任何互联网访问的情况下离线设置 Rancher。详情请参见 [Rancher 官方文档](air-gapped-helm-cli-install.md)。
|
||||
|
||||
## 安装概要
|
||||
|
||||
1. [配置基础设施](../getting-started/installation-and-upgrade/other-installation-methods/rancher-behind-an-http-proxy/set-up-infrastructure.md)
|
||||
2. [配置 Kubernetes 集群](../getting-started/installation-and-upgrade/other-installation-methods/rancher-behind-an-http-proxy/install-kubernetes.md)
|
||||
3. [安装 Rancher](../getting-started/installation-and-upgrade/other-installation-methods/rancher-behind-an-http-proxy/install-rancher.md)
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
title: Rancher 管理集群的最佳实践
|
||||
---
|
||||
|
||||
### Logging
|
||||
|
||||
有关集群级别日志和应用日志的建议,请参见 [Logging 最佳实践](../reference-guides/best-practices/rancher-managed-clusters/logging-best-practices.md)。
|
||||
|
||||
### Monitoring
|
||||
|
||||
配置合理的监控和告警规则对于安全、可靠地运行生产环境中的工作负载至关重要。有关更多建议,请参阅[最佳实践](../reference-guides/best-practices/rancher-managed-clusters/monitoring-best-practices.md)。
|
||||
|
||||
### 设置容器的技巧
|
||||
|
||||
配置良好的容器可以极大地提高环境的整体性能和安全性。有关容器设置的建议,请参见[设置容器的技巧](../reference-guides/best-practices/rancher-managed-clusters/tips-to-set-up-containers.md)。
|
||||
|
||||
### Rancher 管理 vSphere 集群的最佳实践
|
||||
|
||||
[Rancher 管理 vSphere 集群的最佳实践](../reference-guides/best-practices/rancher-managed-clusters/rancher-managed-clusters-in-vsphere.md)概述了在 vSphere 环境中配置下游 Rancher 集群的参考架构,以及 VMware 记录的标准 vSphere 最佳实践。
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
title: 架构
|
||||
---
|
||||
|
||||
本章节重点介绍 [Rancher Server 及其组件](../reference-guides/rancher-manager-architecture/rancher-server-and-components.md) 以及 [Rancher 如何与下游 Kubernetes 集群通信](../reference-guides/rancher-manager-architecture/communicating-with-downstream-user-clusters.md)。
|
||||
|
||||
有关安装 Rancher 的不同方式的信息,请参见[安装选项概述](installation-and-upgrade.md#安装方式概述)。
|
||||
|
||||
有关 Rancher API Server 的主要功能,请参见[概述](../getting-started/overview.md#rancher-api-server-的功能)。
|
||||
|
||||
有关如何为 Rancher Server 设置底层基础架构,请参见[架构推荐](../reference-guides/rancher-manager-architecture/architecture-recommendations.md)。
|
||||
|
||||
:::note
|
||||
|
||||
本节默认你已对 Docker 和 Kubernetes 有一定的了解。如果你需要了解 Kubernetes 组件如何协作,请参见 [Kubernetes 概念](../reference-guides/kubernetes-concepts.md)。
|
||||
|
||||
:::
|
||||
+207
@@ -0,0 +1,207 @@
|
||||
---
|
||||
title: 使用 Docker 将 Rancher 安装到单个节点中
|
||||
description: 在开发和测试环境中,你可以使用 Docker 安装。在单个 Linux 主机上安装 Docker,然后使用一个 Docker 容器部署 Rancher。
|
||||
---
|
||||
|
||||
Rancher 可以通过运行单个 Docker 容器进行安装。
|
||||
|
||||
在这种安装方案中,你需要将 Docker 安装到单个 Linux 主机,然后使用单个 Docker 容器将 Rancher 部署到主机中。
|
||||
|
||||
:::note 想要使用外部负载均衡器?
|
||||
|
||||
请参阅[使用外部负载均衡器的 Docker 安装](../how-to-guides/advanced-user-guides/configure-layer-7-nginx-load-balancer.md)。
|
||||
|
||||
:::
|
||||
|
||||
Rancher 的 Docker 安装仅推荐用于开发和测试环境中。Rancher 版本决定了能否将 Rancher 迁移到高可用集群。
|
||||
|
||||
Rancher backup operator 可将 Rancher 从单个 Docker 容器迁移到高可用 Kubernetes 集群上。详情请参见[把 Rancher 迁移到新集群](../how-to-guides/new-user-guides/backup-restore-and-disaster-recovery/migrate-rancher-to-new-cluster.md)。
|
||||
|
||||
## Rancher 特权访问
|
||||
|
||||
当 Rancher Server 部署在 Docker 容器中时,容器内会安装一个本地 Kubernetes 集群供 Rancher 使用。为 Rancher 的很多功能都是以 deployment 的方式运行的,而在容器内运行容器是需要特权模式的,因此你需要在安装 Rancher 时添加 `--privileged` 选项。
|
||||
|
||||
## 操作系统,Docker,硬件和网络要求
|
||||
|
||||
请确保你的节点满足常规的[安装要求](installation-requirements.md)。
|
||||
|
||||
## 1. 配置 Linux 主机
|
||||
|
||||
按照[要求](installation-requirements.md)配置一个 Linux 主机,用于运行 Rancher Server。
|
||||
|
||||
## 2. 选择一个 SSL 选项并安装 Rancher
|
||||
|
||||
出于安全考虑,使用 Rancher 时请使用 SSL(Secure Sockets Layer)。SSL 保护所有 Rancher 网络通信(如登录和与集群交互)的安全。
|
||||
|
||||
:::tip 你是否需要:
|
||||
|
||||
- 使用代理。参见 [HTTP 代理配置](../reference-guides/single-node-rancher-in-docker/http-proxy-configuration.md)。
|
||||
- 配置自定义 CA 根证书以访问服务。参见[自定义 CA 根证书](../reference-guides/single-node-rancher-in-docker/advanced-options.md#自定义-ca-证书)。
|
||||
- 完成离线安装。参见 [离线:Docker 安装](air-gapped-helm-cli-install.md)。
|
||||
- 记录所有 Rancher API 的事务。参加 [API 审计](../reference-guides/single-node-rancher-in-docker/advanced-options.md#api-审计日志)。
|
||||
|
||||
:::
|
||||
|
||||
选择以下的选项之一:
|
||||
|
||||
- [选项 A:使用 Rancher 生成的默认自签名证书](#选项-a使用-rancher-生成的默认自签名证书)
|
||||
- [选项 B:使用你自己的证书 - 自签名](#选项-b使用你自己的证书---自签名)
|
||||
- [选项 C:使用你自己的证书 - 可信 CA 签名的证书](#选项-c使用你自己的证书---可信-ca-签名的证书)
|
||||
- [选项 D:Let's Encrypt 证书](#选项-dlets-encrypt-证书)
|
||||
- [选项 E:Localhost 隧道,不使用证书](#选项-elocalhost-隧道不使用证书)
|
||||
|
||||
### 选项 A:使用 Rancher 生成的默认自签名证书
|
||||
|
||||
如果你在不考虑身份验证的开发或测试环境中安装 Rancher,可以使用 Rancher 生成的自签名证书安装 Rancher。这种安装方式避免了自己生成证书的麻烦。
|
||||
|
||||
登录到你的主机,然后运行以下命令:
|
||||
|
||||
```
|
||||
docker run -d --restart=unless-stopped \
|
||||
-p 80:80 -p 443:443 \
|
||||
--privileged \
|
||||
rancher/rancher:latest
|
||||
```
|
||||
|
||||
### 选项 B:使用你自己的证书 - 自签名
|
||||
在你团队访问 Rancher Server 的开发或测试环境中,创建一个用于你的安装的自签名证书,以便团队验证他们对实例的连接。
|
||||
|
||||
:::note 先决条件:
|
||||
|
||||
使用 [OpenSSL](https://www.openssl.org/) 或其他方法创建自签名证书。
|
||||
|
||||
- 证书文件的格式必须是 PEM。
|
||||
- 在你的证书文件中,包括链中的所有中间证书。你需要对你的证书进行排序,把你的证书放在最前面,后面跟着中间证书。如需查看示例,请参见[证书故障排除](../getting-started/installation-and-upgrade/other-installation-methods/rancher-on-a-single-node-with-docker/certificate-troubleshooting.md)。
|
||||
|
||||
:::
|
||||
|
||||
创建证书后,运行以下 Docker 命令以安装 Rancher。使用 `-v` 标志并提供证书的路径,以将证书挂载到容器中。
|
||||
|
||||
| 占位符 | 描述 |
|
||||
| ------------------- | --------------------- |
|
||||
| `<CERT_DIRECTORY>` | 包含证书文件的目录的路径。 |
|
||||
| `<FULL_CHAIN.pem>` | 完整证书链的路径。 |
|
||||
| `<PRIVATE_KEY.pem>` | 证书私钥的路径。 |
|
||||
| `<CA_CERTS.pem>` | CA 证书的路径。 |
|
||||
|
||||
登录到你的主机,然后运行以下命令:
|
||||
|
||||
```
|
||||
docker run -d --restart=unless-stopped \
|
||||
-p 80:80 -p 443:443 \
|
||||
-v /<CERT_DIRECTORY>/<FULL_CHAIN.pem>:/etc/rancher/ssl/cert.pem \
|
||||
-v /<CERT_DIRECTORY>/<PRIVATE_KEY.pem>:/etc/rancher/ssl/key.pem \
|
||||
-v /<CERT_DIRECTORY>/<CA_CERTS.pem>:/etc/rancher/ssl/cacerts.pem \
|
||||
--privileged \
|
||||
rancher/rancher:latest
|
||||
```
|
||||
|
||||
### 选项 C:使用你自己的证书 - 可信 CA 签名的证书
|
||||
|
||||
在公开暴露应用的生产环境中,请使用由可信 CA 签名的证书,以避免用户收到证书安全警告。
|
||||
|
||||
不建议将 Docker 安装用于生产环境。这些说明仅适用于测试和开发。
|
||||
|
||||
:::note 先决条件:
|
||||
|
||||
- 证书文件的格式必须是 PEM。
|
||||
- 在你的证书文件中,包括可信 CA 提供的所有中间证书。你需要对你的证书进行排序,把你的证书放在最前面,后面跟着中间证书。如需查看示例,请参见[证书故障排除](../getting-started/installation-and-upgrade/other-installation-methods/rancher-on-a-single-node-with-docker/certificate-troubleshooting.md)。
|
||||
|
||||
:::
|
||||
|
||||
获取证书后,运行以下 Docker 命令。
|
||||
|
||||
- 使用 `-v` 标志并提供证书的路径,以将证书挂载到容器中。因为你的证书是由可信的 CA 签名的,因此你不需要安装额外的 CA 证书文件。
|
||||
- 使用 `--no-cacerts` 作为容器的参数,以禁用 Rancher 生成的默认 CA 证书。
|
||||
|
||||
| 占位符 | 描述 |
|
||||
| ------------------- | ----------------------------- |
|
||||
| `<CERT_DIRECTORY>` | 包含证书文件的目录的路径。 |
|
||||
| `<FULL_CHAIN.pem>` | 完整证书链的路径。 |
|
||||
| `<PRIVATE_KEY.pem>` | 证书私钥的路径。 |
|
||||
|
||||
登录到你的主机,然后运行以下命令:
|
||||
|
||||
```
|
||||
docker run -d --restart=unless-stopped \
|
||||
-p 80:80 -p 443:443 \
|
||||
-v /<CERT_DIRECTORY>/<FULL_CHAIN.pem>:/etc/rancher/ssl/cert.pem \
|
||||
-v /<CERT_DIRECTORY>/<PRIVATE_KEY.pem>:/etc/rancher/ssl/key.pem \
|
||||
--privileged \
|
||||
rancher/rancher:latest \
|
||||
--no-cacerts
|
||||
```
|
||||
|
||||
### 选项 D:Let's Encrypt 证书
|
||||
|
||||
:::caution
|
||||
|
||||
Let's Encrypt 对新证书请求有频率限制。因此,请限制创建或销毁容器的频率。详情请参见 [Let's Encrypt 官方文档 - 频率限制](https://letsencrypt.org/docs/rate-limits/)。
|
||||
|
||||
:::
|
||||
|
||||
你也可以在生产环境中使用 [Let's Encrypt](https://letsencrypt.org/) 证书。Let's Encrypt 使用 HTTP-01 质询来验证你对域名的控制权。如果要确认你对该域名有控制权,你可将用于访问 Rancher 的主机名(例如 `rancher.mydomain.com`)指向运行的主机的 IP。你可通过在 DNS 中创建 A 记录,以将主机名绑定到 IP 地址。
|
||||
|
||||
不建议将 Docker 安装用于生产环境。这些说明仅适用于测试和开发。
|
||||
|
||||
:::note 先决条件:
|
||||
|
||||
- Let's Encrypt 是联网服务。因此,在内网和离线环境中不能使用。
|
||||
- 在 DNS 中创建一条记录,将 Linux 主机 IP 地址绑定到要用于访问 Rancher 的主机名(例如,`rancher.mydomain.com`)。
|
||||
- 在 Linux 主机上打开 `TCP/80` 端口。Let's Encrypt 的 HTTP-01 质询可以来自任何源 IP 地址,因此端口 `TCP/80` 必须开放开所有 IP 地址。
|
||||
|
||||
:::
|
||||
|
||||
满足先决条件后,你可以运行以下命令使用 Let's Encrypt 证书安装 Rancher。
|
||||
|
||||
| 占位符 | 描述 |
|
||||
| ----------------- | ------------------- |
|
||||
| `<YOUR.DNS.NAME>` | 你的域名地址 |
|
||||
|
||||
登录到你的主机,然后运行以下命令:
|
||||
|
||||
```
|
||||
docker run -d --restart=unless-stopped \
|
||||
-p 80:80 -p 443:443 \
|
||||
--privileged \
|
||||
rancher/rancher:latest \
|
||||
--acme-domain <YOUR.DNS.NAME>
|
||||
```
|
||||
|
||||
### 选项 E:Localhost 隧道,不使用证书
|
||||
|
||||
如果你在开发或测试环境中安装 Rancher,且环境中有运行的 localhost 隧道解决方案(如 [ngrok](https://ngrok.com/)),不要生成证书。此安装选项不需要证书。
|
||||
|
||||
- 使用 `--no-cacerts` 作为参数,以禁用 Rancher 生成的默认 CA 证书。
|
||||
|
||||
登录到你的主机,然后运行以下命令:
|
||||
|
||||
```
|
||||
docker run -d --restart=unless-stopped \
|
||||
-p 80:80 -p 443:443 \
|
||||
--privileged \
|
||||
rancher/rancher:latest \
|
||||
--no-cacerts
|
||||
```
|
||||
|
||||
## 高级选项
|
||||
|
||||
使用 Docker 将 Rancher 安装到单个节点时,有如下几个可开启的高级选项:
|
||||
|
||||
- 自定义 CA 证书
|
||||
- API 审计日志
|
||||
- TLS 设置
|
||||
- 离线环境
|
||||
- 持久化数据
|
||||
- 在同一个节点中运行 `rancher/rancher` 和 `rancher/rancher-agent`
|
||||
|
||||
详情请参见[本页](../reference-guides/single-node-rancher-in-docker/advanced-options.md)。
|
||||
|
||||
## 故障排除
|
||||
|
||||
如需了解常见问题及故障排除提示,请参见[本页](../getting-started/installation-and-upgrade/other-installation-methods/rancher-on-a-single-node-with-docker/certificate-troubleshooting.md)。
|
||||
|
||||
## 后续操作
|
||||
|
||||
- **推荐**:检查单节点[备份](../how-to-guides/new-user-guides/backup-restore-and-disaster-recovery/back-up-docker-installed-rancher.md)和[恢复](../how-to-guides/new-user-guides/backup-restore-and-disaster-recovery/restore-docker-installed-rancher.md)。你可能暂时没有需要备份的数据,但是我们建议你在常规使用 Rancher 后创建备份。
|
||||
- 创建 Kubernetes 集群:[配置 Kubernetes 集群](kubernetes-clusters-in-rancher-setup.md)。
|
||||
@@ -0,0 +1,86 @@
|
||||
---
|
||||
title: 安全
|
||||
---
|
||||
|
||||
<table width="100%">
|
||||
<tr style={{verticalAlign: 'top'}}>
|
||||
<td width="30%" style={{border: 'none'}}>
|
||||
<h4>安全策略</h4>
|
||||
<p style={{padding: '8px'}}>Rancher Labs 会负责任地披露问题,并致力于在合理的时间内解决所有问题。 </p>
|
||||
</td>
|
||||
<td width="30%" style={{border: 'none'}}>
|
||||
<h4>报告过程</h4>
|
||||
<p style={{padding: '8px'}}>请将安全问题发送至 <a href="mailto:security-rancher@suse.com">security-rancher@suse.com</a>。</p>
|
||||
</td>
|
||||
<td width="30%" style={{border: 'none'}}>
|
||||
<h4>公告</h4>
|
||||
<p style={{padding:'8px'}}>订阅 <a href="https://forums.rancher.com/c/announcements">Rancher 公告论坛</a>以获取版本更新。</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
安全是 Rancher 全部功能的基础。Rancher 集成了全部主流身份验证工具和服务,并提供了企业级的 [RBAC 功能](manage-role-based-access-control-rbac.md),让你的 Kubernetes 集群更加安全。
|
||||
|
||||
本文介绍了安全相关的文档以及资源,让你的 Rancher 安装和下游 Kubernetes 集群更加安全。
|
||||
### NeuVector 与 Rancher 的集成
|
||||
|
||||
_2.6.5 的新功能_
|
||||
|
||||
NeuVector 是一个开源的、以容器为中心的安全应用程序,现已集成到 Rancher 中。NeuVector 提供生产安全、DevOps 漏洞保护和容器防火墙等功能。请参阅 [Rancher 文档](../integrations-in-rancher/neuvector.md)和 [NeuVector 文档](https://open-docs.neuvector.com/)了解更多信息。
|
||||
|
||||
### 在 Kubernetes 集群上运行 CIS 安全扫描
|
||||
|
||||
Rancher 使用 [kube-bench](https://github.com/aquasecurity/kube-bench) 来运行安全扫描,从而检查 Kubernetes 是否按照 [CIS](https://www.cisecurity.org/cis-benchmarks/)(Center for Internet Security,互联网安全中心)Kubernetes Benchmark 中定义的安全最佳实践进行部署。
|
||||
|
||||
CIS Kubernetes Benchmark 是一个参考文档,用于为 Kubernetes 建立安全配置基线。
|
||||
|
||||
CIS 是一个 501(c\)(3) 非营利组织,成立于 2000 年 10 月,其使命是识别、开发、验证、促进和维持网络防御的最佳实践方案,并建立和指导社区,以在网络空间中营造信任的环境。
|
||||
|
||||
CIS Benchmark 是目标系统安全配置的最佳实践。CIS Benchmark 是由安全专家、技术供应商、公开和私人社区成员,以及 CIS Benchmark 开发团队共同志愿开发的。
|
||||
|
||||
Benchmark 提供两种类型的建议,分别是自动(Automated)和手动(Manual)。我们只运行 Automated 相关的测试。
|
||||
|
||||
Rancher 在集群上运行 CIS 安全扫描时会生成一份报告,该报告会显示每个测试的结果,包括测试概要以及 `passed`、`skipped` 和 `failed` 的测试数量。报告还包括失败测试的修正步骤。
|
||||
|
||||
有关详细信息,请参阅[安全扫描](cis-scan-guides.md)。
|
||||
|
||||
### SELinux RPM
|
||||
|
||||
[安全增强型 Linux (SELinux)](https://en.wikipedia.org/wiki/Security-Enhanced_Linux) 是对 Linux 的安全增强。被政府机构使用之后,SELinux 已成为行业标准,并在 CentOS 7 和 8 上默认启用。
|
||||
|
||||
我们提供了 `rancher-selinux` 和 `rke2-selinux` 两个 RPM(Red Hat 软件包),让 Rancher 产品能够在 SELinux 主机上正常运行。有关详细信息,请参阅[此页面](selinux-rpm.md)。
|
||||
|
||||
### Rancher 强化指南
|
||||
|
||||
Rancher 强化指南基于 <a href="https://www.cisecurity.org/benchmark/kubernetes/" target="_blank">CIS Kubernetes Benchmark</a>。
|
||||
|
||||
强化指南为强化 Rancher 的生产安装提供了说明性指导。有关安全管控的完整列表,请参阅 Rancher 的 [CIS Kubernetes Benchmark自我评估指南](#cis-benchmark-和自我评估)。
|
||||
|
||||
> 强化指南描述了如何保护集群中的节点,建议在安装 Kubernetes 之前参考强化指南中的步骤。
|
||||
|
||||
每个强化指南版本都针对特定的 CIS Kubernetes Benchmark、Kubernetes 和 Rancher 版本。
|
||||
|
||||
### CIS Benchmark 和自我评估
|
||||
|
||||
Benchmark 自我评估是 Rancher 安全强化指南的辅助。强化指南展示了如何强化集群,而 Benchmark 指南旨在帮助你评估强化集群的安全级别。
|
||||
|
||||
由于 Rancher 和 RKE 将 Kubernetes 服务安装为 Docker 容器,因此 CIS Kubernetes Benchmark 中的许多管控验证检查都不适用。本指南将介绍各种管控,并提供更新的示例命令来审核 Rancher 创建的集群的合规性。你可以前往 [CIS 网站](https://www.cisecurity.org/benchmark/kubernetes/)下载原始的 Benchmark 文档。
|
||||
|
||||
Rancher 每个版本的自我评估指南都对应特定的强化指南、Rancher、Kubernetes 和 CIS Benchmark 版本。
|
||||
|
||||
### 第三方渗透测试报告
|
||||
|
||||
Rancher 会定期聘请第三方对 Rancher 2.x 软件栈进行安全审核和渗透测试。测试环境会遵循 Rancher 提供的强化指南。旧的渗透测试报告如下。
|
||||
|
||||
结果:
|
||||
|
||||
- [Cure53 渗透测试 - 2019 年 7 月](https://releases.rancher.com/documents/security/pen-tests/2019/RAN-01-cure53-report.final.pdf)
|
||||
- [Untamed Theory 渗透测试 - 2019 年 3 月](https://releases.rancher.com/documents/security/pen-tests/2019/UntamedTheory-Rancher_SecurityAssessment-20190712_v5.pdf)
|
||||
|
||||
### Rancher 安全公告和 CVE
|
||||
|
||||
Rancher 致力于向社区披露我们产品的安全问题。有关我们已解决问题的 CVE(Common Vulnerabilities and Exposures,通用漏洞披露)列表,请参阅[此页面](../reference-guides/rancher-security/security-advisories-and-cves.md)。
|
||||
|
||||
### Kubernetes 安全最佳实践
|
||||
|
||||
有关保护 Kubernetes 集群的建议,请参阅 [Kubernetes 安全最佳实践指南](../reference-guides/rancher-security/kubernetes-security-best-practices.md)。
|
||||
@@ -0,0 +1,12 @@
|
||||
---
|
||||
title: Rancher Server 配置
|
||||
---
|
||||
|
||||
- [RKE1 集群配置](../reference-guides/cluster-configuration/rancher-server-configuration/rke1-cluster-configuration.md)
|
||||
- [RKE2 集群配置](../reference-guides/cluster-configuration/rancher-server-configuration/rke2-cluster-configuration.md)
|
||||
- [K3s 集群配置](../reference-guides/cluster-configuration/rancher-server-configuration/k3s-cluster-configuration.md)
|
||||
- [EKS 集群配置](../reference-guides/cluster-configuration/rancher-server-configuration/eks-cluster-configuration.md)
|
||||
- [AKS 集群配置](../reference-guides/cluster-configuration/rancher-server-configuration/aks-cluster-configuration.md)
|
||||
- [GKE 集群配置](../pages-for-subheaders/gke-cluster-configuration.md)
|
||||
- [使用现有节点](../pages-for-subheaders/use-existing-nodes.md)
|
||||
- [同步集群](../reference-guides/cluster-configuration/rancher-server-configuration/sync-clusters.md)
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
title: Rancher Server 的最佳实践
|
||||
---
|
||||
|
||||
本指南介绍了让 Rancher 管理下游 Kubernetes 集群的 Rancher Server 运行建议。
|
||||
|
||||
### 推荐的架构和基础设施
|
||||
|
||||
有关在高可用 Kubernetes 集群上设置 Rancher Server 的通用建议,请参见[本指南](../reference-guides/best-practices/rancher-server/tips-for-running-rancher.md)。
|
||||
|
||||
### 部署策略
|
||||
|
||||
[本指南](../reference-guides/best-practices/rancher-server/rancher-deployment-strategy.md)旨在帮助你选择部署策略(区域部署/中心辐射型部署),来让 Rancher Server 更好地管理下游 Kubernetes 集群。
|
||||
|
||||
### 在 vSphere 环境中安装 Rancher
|
||||
|
||||
[本指南](../reference-guides/best-practices/rancher-server/on-premises-rancher-in-vsphere.md)介绍了在 vSphere 环境中安装 Rancher 的参考架构,以及 VMware 记录的标准 vSphere 最佳实践。
|
||||
@@ -0,0 +1,51 @@
|
||||
---
|
||||
title: Rancher 2.6 的自我评估和强化指南
|
||||
---
|
||||
|
||||
Rancher 为每个受支持的 Rancher Kubernetes 发行版提供了对应的安全强化指南。
|
||||
|
||||
|
||||
## Rancher Kubernetes 发行版
|
||||
|
||||
Rancher 使用以下 Kubernetes 发行版:
|
||||
|
||||
- [**RKE**](https://rancher.com/docs/rke/latest/en/):全称是 Rancher Kubernetes Engine,一个 CNCF 认证的 Kubernetes 发行版,能完全在 Docker 容器中运行。
|
||||
- [**RKE2**](https://docs.rke2.io/):一个完全合规的 Kubernetes 发行版,专注于安全和合规性。
|
||||
- [**K3s**](https://rancher.com/docs/k3s/latest/en/):一个完全符合要求的轻量级 Kubernetes 发行版。它易于安装,仅需要上游 Kubernetes 内存的一半,所有组件都在一个小于 100 MB 的二进制文件中。
|
||||
|
||||
要在 Rancher 发行版之外强化 Kubernetes 集群,请参阅你的 Kubernetes 提供商文档。
|
||||
|
||||
## 强化指南和 Benchmark 版本
|
||||
|
||||
这些指南已与 Rancher 2.6 版本一起测试。每个自我评估指南都附有强化指南,并在特定的 Kubernetes 版本和 CIS Benchmark 版本上进行了测试。如果 CIS Benchmark 测试尚未针对你的 Kubernetes 版本进行验证,你可以先使用现有指南。
|
||||
|
||||
### RKE 指南
|
||||
|
||||
| Kubernetes 版本 | CIS Benchmark 版本 | 自我评估指南 | 强化指南 |
|
||||
| ------------------ | --------------------- | --------------------- | ---------------- |
|
||||
| Kubernetes v1.18 到 v1.23 | CIS v1.6 | [链接](../reference-guides/rancher-security/rancher-v2.6-hardening-guides/rke1-self-assessment-guide-with-cis-v1.6-benchmark.md) | [链接](../reference-guides/rancher-security/rancher-v2.6-hardening-guides/rke1-hardening-guide-with-cis-v1.6-benchmark.md) |
|
||||
|
||||
:::note
|
||||
|
||||
- Kubernetes v1.19 和 v1.20 的 CIS v1.20 Benchmark 版本尚未作为配置文件发布在 Rancher 的 CIS Benchmark Chart 中。
|
||||
|
||||
:::
|
||||
|
||||
### RKE2 指南
|
||||
|
||||
| 类型 | Kubernetes 版本 | CIS Benchmark 版本 | 自我评估指南 | 强化指南 |
|
||||
| ---- | ------------------ | --------------------- | --------------------- | ---------------- |
|
||||
| Rancher 配置的 RKE2 集群 | Kubernetes v1.21 到 v1.23 | CIS v1.6 | [链接](../reference-guides/rancher-security/rancher-v2.6-hardening-guides/rke2-self-assessment-guide-with-cis-v1.6-benchmark.md) | [链接](../reference-guides/rancher-security/rancher-v2.6-hardening-guides/rke2-hardening-guide-with-cis-v1.6-benchmark.md) |
|
||||
| 独立 RKE2 | Kubernetes v1.21 到 v1.23 | CIS v1.6 | [链接](https://docs.rke2.io/security/cis_self_assessment16/) | [链接](https://docs.rke2.io/security/hardening_guide/) |
|
||||
|
||||
### K3s 指南
|
||||
|
||||
| Kubernetes 版本 | CIS Benchmark 版本 | 自我评估指南 | 强化指南 |
|
||||
| ------------------ | --------------------- | --------------------- | ---------------- |
|
||||
| Kubernetes v1.21 和 v1.22 | CIS v1.6 | [链接](https://rancher.com/docs/k3s/latest/en/security/self_assessment/) | [链接](https://rancher.com/docs/k3s/latest/en/security/hardening_guide/) |
|
||||
|
||||
## 使用 SELinux 的 Rancher
|
||||
|
||||
[安全增强型 Linux (SELinux)](https://en.wikipedia.org/wiki/Security-Enhanced_Linux) 是对 Linux 的安全增强。被政府机构使用之后,SELinux 已成为行业标准,并在 RHEL 和 CentOS 上默认启用。
|
||||
|
||||
要配合使用 Rancher 与 SELinux,我们建议你根据[此页面](../reference-guides/rancher-security/selinux-rpm/about-rancher-selinux.md#安装-rancher-selinux-rpm)的安装说明安装 `rancher-selinux` RPM。
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
title: 资源
|
||||
---
|
||||
|
||||
### Docker 安装
|
||||
|
||||
[单节点 Docker 安装](rancher-on-a-single-node-with-docker.md)适用于想要测试 Rancher 的用户。你无需使用 Helm 在 Kubernetes 集群上运行 Rancher,你可以使用 `docker run` 命令,把 Rancher Server 组件安装到单个节点上。
|
||||
|
||||
由于只有一个节点和一个 Docker 容器,因此,如果该节点发生故障,由于其他节点上没有可用的 etcd 数据副本,你将丢失 Rancher Server 的所有数据。
|
||||
|
||||
### 离线安装
|
||||
|
||||
按照[以下步骤](air-gapped-helm-cli-install.md)在离线环境中安装 Rancher Server。
|
||||
|
||||
离线环境可以是 Rancher Server 离线安装、防火墙后面或代理后面。
|
||||
|
||||
### 高级选项
|
||||
|
||||
安装 Rancher 时,有如下几个可开启的高级选项:每个安装指南中都提供了对应的选项。了解选项详情:
|
||||
|
||||
- [自定义 CA 证书](../getting-started/installation-and-upgrade/resources/custom-ca-root-certificates.md)
|
||||
- [API 审计日志](../how-to-guides/advanced-user-guides/enable-api-audit-log.md)
|
||||
- [TLS 设置](../getting-started/installation-and-upgrade/installation-references/tls-settings.md)
|
||||
- [etcd 配置](../how-to-guides/advanced-user-guides/tune-etcd-for-large-installs.md)
|
||||
- [离线安装 Local System Chart](../getting-started/installation-and-upgrade/resources/local-system-charts.md)
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
title: SELinux RPM
|
||||
---
|
||||
|
||||
[安全增强型 Linux (SELinux)](https://en.wikipedia.org/wiki/Security-Enhanced_Linux) 是对 Linux 的安全增强。
|
||||
|
||||
它由 Red Hat 开发,是 Linux 上 MAC(mandatory access controls,强制访问控制)的实现。系统管理员可以使用 MAC 设置应用程序和用户是如何访问不同资源的,例如文件、设备、网络和进程间的通信。SELinux 还通过默认限制操作系统来增强安全性。
|
||||
|
||||
被政府机构使用之后,SELinux 已成为行业标准,并在 CentOS 7 和 8 上默认启用。要检查 SELinux 是否在你的系统上启用和执行,请使用 `getenforce`:
|
||||
|
||||
```
|
||||
# getenforce
|
||||
Enforcing
|
||||
```
|
||||
|
||||
我们提供了 [`rancher-selinux`](../reference-guides/rancher-security/selinux-rpm/about-rancher-selinux.md) 和 [`rke2-selinux`](../reference-guides/rancher-security/selinux-rpm/about-rke2-selinux.md) 两个 RPM(Red Hat 软件包),让 Rancher 产品能够在 SELinux 主机上正常运行。
|
||||
@@ -0,0 +1,43 @@
|
||||
---
|
||||
title: 设置 Cloud Provider
|
||||
---
|
||||
|
||||
_cloud provider_ 是 Kubernetes 中的一个模块,它提供了一个用于管理节点、负载均衡器和网络路由的接口。
|
||||
|
||||
在 Rancher 中设置 cloud provider 时,如果你使用的云提供商支持自动化,Rancher Server 可以在启动 Kubernetes 定义时自动配置新节点、负载均衡器或持久存储设备。
|
||||
|
||||
如果你配置的节点云提供商集群不满足先决条件,集群将无法正确配置。
|
||||
|
||||
**Cloud Provider** 选项默认设置为 `None`。
|
||||
|
||||
可以启用的云提供商包括:
|
||||
|
||||
* Amazon
|
||||
* Azure
|
||||
* GCE (Google Compute Engine)
|
||||
* vSphere
|
||||
|
||||
### 设置 Amazon 云提供商
|
||||
|
||||
有关启用 Amazon 云提供商的详细信息,请参阅[此页面](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-cloud-providers/amazon.md)。
|
||||
|
||||
### 设置 Azure 云提供商
|
||||
|
||||
有关启用 Azure 云提供商的详细信息,请参阅[此页面](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-cloud-providers/azure.md)。
|
||||
|
||||
### 设置 GCE 云提供商
|
||||
|
||||
有关启用 Google Compute Engine 云提供商的详细信息,请参阅[此页面](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-cloud-providers/google-compute-engine.md)。
|
||||
|
||||
### 设置 vSphere 云提供商
|
||||
|
||||
有关启用 vSphere 云提供商的详细信息,请参阅[树内 vSphere 配置](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-cloud-providers/configure-in-tree-vsphere.md)和[树外 vSphere 配置](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-cloud-providers/configure-out-of-tree-vsphere.md)。
|
||||
|
||||
### 设置自定义云提供商
|
||||
|
||||
任何 Kubernetes Cloud Provider 都可以通过`自定义`云提供商进行配置。
|
||||
|
||||
对于自定义云提供商选项,你可以参考 [RKE 文档](https://rancher.com/docs/rke/latest/en/config-options/cloud-providers/),了解如何为你的云提供商编辑 yaml 文件。特定云提供商的详细配置说明如下:
|
||||
|
||||
* [vSphere](https://rke.docs.rancher.com/config-options/cloud-providers/vsphere)
|
||||
* [OpenStack](https://rancher.com/docs/rke/latest/en/config-options/cloud-providers/openstack/)
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
---
|
||||
title: 通过托管 Kubernetes 提供商设置集群
|
||||
---
|
||||
|
||||
在这种情况下,Rancher 不会配置 Kubernetes,因为它是由 Google Kubernetes Engine (GKE)、Amazon Elastic Container Service for Kubernetes 或 Azure Kubernetes Service 等提供商安装的。
|
||||
|
||||
如果你使用 Kubernetes 提供商,例如 Google GKE,Rancher 将与对应的云 API 集成,允许你从 Rancher UI 为托管集群创建和管理 RBAC。
|
||||
|
||||
在这个用例中,Rancher 使用提供商的 API 向托管提供商发送请求。然后,提供商会为你配置和托管集群。集群创建成功后,你可以像管理本地集群或云上集群一样,通过 Rancher UI 对集群进行管理。
|
||||
|
||||
Rancher 支持以下 Kubernetes 提供商:
|
||||
|
||||
- [Google GKE (Google Kubernetes Engine)](https://cloud.google.com/kubernetes-engine/)
|
||||
- [Amazon EKS (Amazon Elastic Container Service for Kubernetes)](https://aws.amazon.com/eks/)
|
||||
- [Microsoft AKS (Azure Kubernetes Service)](https://azure.microsoft.com/en-us/services/kubernetes-service/)
|
||||
- [Alibaba ACK (Alibaba Cloud Container Service for Kubernetes)](https://www.alibabacloud.com/product/kubernetes)
|
||||
- [Tencent TKE (Tencent Kubernetes Engine)](https://intl.cloud.tencent.com/product/tke)
|
||||
- [Huawei CCE (Huawei Cloud Container Engine)](https://www.huaweicloud.com/en-us/product/cce.html)
|
||||
|
||||
## 托管 Kubernetes 提供商的身份验证
|
||||
|
||||
使用 Rancher 创建由提供商托管的集群时,你需要输入身份验证信息。Rancher 会使用验证信息来访问云厂商的 API。有关如何获取此信息的详情,请参阅:
|
||||
|
||||
- [创建 GKE 集群](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/gke.md)
|
||||
- [创建 EKS 集群](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/eks.md)
|
||||
- [创建 AKS 集群](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/aks.md)
|
||||
- [创建 ACK 集群](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/alibaba.md)
|
||||
- [创建 TKE 集群](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/tencent.md)
|
||||
- [创建 CCE 集群](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/huawei.md)
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: Docker 中的单节点 Rancher
|
||||
---
|
||||
|
||||
以下文档将讨论 Docker 安装的 [HTTP 代理配置](../reference-guides/single-node-rancher-in-docker/http-proxy-configuration.md)和[高级选项](../reference-guides/single-node-rancher-in-docker/advanced-options.md)。
|
||||
@@ -0,0 +1,137 @@
|
||||
---
|
||||
title: 在现有自定义节点上启动 Kubernetes
|
||||
description: 要创建具有自定义节点的集群,你需要访问集群中的服务器,并根据 Rancher 的要求配置服务器。
|
||||
---
|
||||
|
||||
创建自定义集群时,Rancher 使用 RKE(Rancher Kubernetes Engine)在本地裸机服务器、本地虚拟机或云服务器节点中创建 Kubernetes 集群。
|
||||
|
||||
要使用此选项,你需要访问要在 Kubernetes 集群中使用的服务器。请根据[要求](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/node-requirements-for-rancher-managed-clusters.md)配置每台服务器,其中包括硬件要求和 Docker 要求。在每台服务器上安装 Docker 后,你还需要在每台服务器上运行 Rancher UI 中提供的命令,从而将每台服务器转换为 Kubernetes 节点。
|
||||
|
||||
本节介绍如何设置自定义集群。
|
||||
|
||||
## 使用自定义节点创建集群
|
||||
|
||||
:::note 使用 Windows 主机作为 Kubernetes Worker 节点?
|
||||
|
||||
在开始之前,请参阅[配置 Windows 自定义集群](use-windows-clusters.md)。
|
||||
|
||||
:::
|
||||
|
||||
### 1. 配置 Linux 主机
|
||||
|
||||
你可以通过配置 Linux 主机,来创建自定义集群。你的主机可以是:
|
||||
|
||||
- 云虚拟机
|
||||
- 本地虚拟机
|
||||
- 裸机服务器
|
||||
|
||||
如果要重复使用之前的自定义集群中的节点,请在复用之前[清理节点](../how-to-guides/new-user-guides/manage-clusters/clean-cluster-nodes.md)。如果你重复使用尚未清理的节点,则集群配置可能会失败。
|
||||
|
||||
根据[安装要求](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/node-requirements-for-rancher-managed-clusters.md)和[生产就绪集群的检查清单](checklist-for-production-ready-clusters.md)配置主机。
|
||||
|
||||
如果你使用 Amazon EC2 作为主机,并希望使用[双栈 (dual-stack)](https://kubernetes.io/docs/concepts/services-networking/dual-stack/) 功能,则需要满足配置主机的其他[要求](https://rancher.com/docs/rke//latest/en/config-options/dual-stack#requirements)。
|
||||
|
||||
### 2. 创建自定义集群
|
||||
|
||||
1. 点击 **☰ > 集群管理**。
|
||||
1. 在**集群**页面上,单击**创建**。
|
||||
1. 单击**自定义**。
|
||||
1. 输入**集群名称**。
|
||||
1. 在**集群配置**中,选择 Kubernetes 版本、要使用的网络提供商,以及是否启用项目网络隔离。要查看更多集群选项,请单击**显示高级选项**。
|
||||
|
||||
:::note 你使用 Windows 主机作为 Kubernetes Worker 节点?
|
||||
|
||||
- 请参阅[启用 Windows 支持选项](use-windows-clusters.md)。
|
||||
- 支持 Windows 集群的唯一网络插件是 Flannel。
|
||||
|
||||
:::
|
||||
|
||||
:::note Amazon EC2 上的双栈:
|
||||
|
||||
如果你使用 Amazon EC2 作为主机,并希望使用[双栈 (dual-stack)](https://kubernetes.io/docs/concepts/services-networking/dual-stack/) 功能,则需要满足配置 RKE 的其他[要求](https://rancher.com/docs/rke//latest/en/config-options/dual-stack#requirements)。
|
||||
|
||||
:::
|
||||
|
||||
6. 点击**下一步**。
|
||||
|
||||
4. 使用**成员角色**为集群配置用户授权。点击**添加成员**添加可以访问集群的用户。使用**角色**下拉菜单为每个用户设置权限。
|
||||
|
||||
7. 从**节点角色**中,选择要由集群节点充当的角色。你必须为 `etcd`、`worker` 和 `controlplane` 角色配置至少一个节点。自定义集群需要所有三个角色才能完成配置。有关角色的详细信息,请参阅[本节](../reference-guides/kubernetes-concepts.md#kubernetes-集群中节点的角色)。
|
||||
|
||||
:::note
|
||||
|
||||
- 使用 Windows 主机作为 Kubernetes Worker 节点?请参阅[本节](use-windows-clusters.md)。
|
||||
- 裸机服务器提醒:如果你想将裸机服务器专用于每个角色,则必须为每个角色配置一个裸机服务器(即配置多个裸机服务器)。
|
||||
|
||||
:::
|
||||
|
||||
8. **可选**:点击[显示高级选项](../how-to-guides/new-user-guides/launch-kubernetes-with-rancher/about-rancher-agents.md)来指定注册节点时使用的 IP 地址,覆盖节点的主机名,或将[标签](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/)或[污点](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/)添加到节点。
|
||||
|
||||
9. 将屏幕上显示的命令复制到剪贴板。
|
||||
|
||||
10. 使用你惯用的 shell(例如 PuTTy 或远程终端)登录到你的 Linux 主机。粘贴剪贴板的命令并运行。
|
||||
|
||||
:::note
|
||||
|
||||
如果要将特定主机专用于特定节点角色,请重复步骤 7-10。根据需要多次重复这些步骤。
|
||||
|
||||
:::
|
||||
|
||||
11. 在 Linux 主机上运行完命令后,单击**完成**。
|
||||
|
||||
**结果**:
|
||||
|
||||
你已创建集群,集群的状态是**配置中**。Rancher 已在你的集群中。
|
||||
|
||||
当集群状态变为 **Active** 后,你可访问集群。
|
||||
|
||||
**Active** 状态的集群会分配到两个项目:
|
||||
|
||||
- `Default`:包含 `default` 命名空间
|
||||
- `System`:包含 `cattle-system`,`ingress-nginx`,`kube-public` 和 `kube-system` 命名空间。
|
||||
|
||||
|
||||
### 3. 仅限亚马逊:标签资源
|
||||
|
||||
如果你已将集群配置为使用 Amazon 作为**云提供商**,请使用集群 ID 标记你的 AWS 资源。
|
||||
|
||||
[Amazon 文档:标记你的 Amazon EC2 资源](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)
|
||||
|
||||
:::note
|
||||
|
||||
你可以使用 Amazon EC2 实例,而无需在 Kubernetes 中配置云提供商。如果你想使用特定的 Kubernetes 云提供商功能,配置云提供商即可。如需更多信息,请参阅 [Kubernetes 云提供商](https://github.com/kubernetes/website/blob/release-1.18/content/en/docs/concepts/cluster-administration/cloud-providers.md)。
|
||||
|
||||
:::
|
||||
|
||||
以下资源需要使用 `ClusterID` 进行标记:
|
||||
|
||||
- **Nodes**:Rancher 中添加的所有主机。
|
||||
- **Subnet**:集群使用的子网。
|
||||
- **Security Group**:用于你的集群的安全组。
|
||||
|
||||
:::note
|
||||
|
||||
不要标记多个安全组。创建 Elastic Load Balancer 时,标记多个组会导致错误。
|
||||
|
||||
:::
|
||||
|
||||
应该使用的标签是:
|
||||
|
||||
```
|
||||
Key=kubernetes.io/cluster/<CLUSTERID>, Value=owned
|
||||
```
|
||||
|
||||
`<CLUSTERID>` 可以是你选择的任何字符串。但是,必须在你标记的每个资源上使用相同的字符串。将值设置为 `owned` 会通知集群所有带有 `<CLUSTERID>` 标记的资源都由该集群拥有和管理。
|
||||
|
||||
如果你在集群之间共享资源,你可以将标签更改为:
|
||||
|
||||
```
|
||||
Key=kubernetes.io/cluster/CLUSTERID, Value=shared
|
||||
```
|
||||
|
||||
## 可选的后续步骤
|
||||
|
||||
创建集群后,你可以通过 Rancher UI 访问集群。最佳实践建议你设置以下访问集群的备用方式:
|
||||
|
||||
- **通过 kubectl CLI 访问你的集群**:按照[这些步骤](../how-to-guides/new-user-guides/manage-clusters/access-clusters/use-kubectl-and-kubeconfig.md#在工作站使用-kubectl-访问集群)在你的工作站上使用 kubectl 访问集群。在这种情况下,你将通过 Rancher Server 的身份验证代理进行身份验证,然后 Rancher 会让你连接到下游集群。此方法允许你在没有 Rancher UI 的情况下管理集群。
|
||||
- **通过 kubectl CLI 使用授权的集群端点访问你的集群**:按照[这些步骤](../how-to-guides/new-user-guides/manage-clusters/access-clusters/use-kubectl-and-kubeconfig.md#直接使用下游集群进行身份验证)直接使用 kubectl 访问集群,而无需通过 Rancher 进行身份验证。我们建议设置此替代方法来访问集群,以便在无法连接到 Rancher 时访问集群。
|
||||
+152
@@ -0,0 +1,152 @@
|
||||
---
|
||||
title: 在云厂商的新节点上启动 Kubernetes
|
||||
---
|
||||
|
||||
在 Rancher 中使用节点模板来创建 RKE 或 RKE2 集群时,每个生成的节点池都会显示在新的**主机池**选项卡中。你可以通过执行以下操作来查看主机池:
|
||||
|
||||
1. 点击**☰ > 集群管理**。
|
||||
1. 单击 RKE 或 RKE2 集群的名称。
|
||||
|
||||
## RKE 集群
|
||||
|
||||
使用 Rancher,你可以基于[节点模板](use-new-nodes-in-an-infra-provider.md#节点模板)创建节点池。此节点模板定义了要用于在基础设施提供商或云厂商中启动节点的参数。
|
||||
|
||||
在托管在云厂商的节点池上安装 Kubernetes 的一个好处是,如果一个节点与集群断开连接,Rancher 可以自动创建另一个节点并将其加入集群,从而确保节点池的数量符合要求。
|
||||
|
||||
可用于创建节点模板的云提供商是由[主机驱动](use-new-nodes-in-an-infra-provider.md#主机驱动)决定的。
|
||||
|
||||
### 节点模板
|
||||
|
||||
节点模板保存了用于在特定云提供商中配置节点时要使用的参数。这些节点可以从 UI 启动。Rancher 使用 [Docker Machine](https://github.com/docker/docs/blob/vnext-engine/machine/overview.md) 来配置这些节点。可用于创建节点模板的云提供商取决于 Rancher 中状态是 Active 的主机驱动。
|
||||
|
||||
在 Rancher 中创建节点模板后,模板会被保存,以便你可以再次使用该模板来创建节点池。节点模板绑定到你的登录名。添加模板后,你可以将其从用户配置文件中删除。
|
||||
|
||||
#### 节点标签
|
||||
|
||||
你可以为每个节点模板添加[标签](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/),这样,使用节点模板创建的节点都会自动带有这些标签。
|
||||
|
||||
无效标签会阻止升级,或阻止 Rancher 启动。有关标签语法的详细信息,请参阅 [Kubernetes 文档](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set)。
|
||||
|
||||
#### 节点污点
|
||||
|
||||
你可以为每个节点模板添加[污点](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/),这样,使用节点模板创建的节点都会自动带有这些污点。
|
||||
|
||||
由于污点可以同时添加到节点模板和节点池中,因此如果添加了相同键的污点效果没有冲突,则所有污点都将添加到节点中。如果存在具有相同键但不同效果的污点,则节点池中的污点将覆盖节点模板中的污点。
|
||||
|
||||
#### 节点模板的管理员控制
|
||||
|
||||
管理员可以控制所有节点模板。现在,管理员可以维护 Rancher 中的所有节点模板。当节点模板所有者不再使用 Rancher 时,他们创建的节点模板可以由管理员管理,以便继续更新和维护集群。
|
||||
|
||||
要访问所有节点模板,管理员需要执行以下操作:
|
||||
|
||||
1. 点击 **☰ > 集群管理**。
|
||||
1. 单击 **RKE1 配置 > 节点模板**。
|
||||
|
||||
**结果**:列出所有节点模板。你可以通过单击 **⋮** 来编辑或克隆模板。
|
||||
|
||||
### 节点池
|
||||
|
||||
使用 Rancher,你可以基于[节点模板](#节点模板)创建节点池。
|
||||
|
||||
节点模板定义了节点的配置,例如要使用的操作系统、CPU 数量和内存量。
|
||||
|
||||
使用节点池的好处是,如果一个节点被销毁或删除,你可以增加 Active 节点的数量来补偿丢失的节点。节点池可以帮助你确保节点池的计数符合要求。
|
||||
|
||||
每个节点池必须分配一个或多个节点角色。
|
||||
|
||||
每个节点角色(即 etcd、controlplane 和 worker)都应分配给不同的节点池。虽然你可以将多个节点角色分配给同一个节点池,但不要在生产集群中执行此操作。
|
||||
|
||||
推荐的设置:
|
||||
|
||||
- 具有 etcd 角色且计数为 3 的节点池
|
||||
- 具有 controlplane 角色且计数至少为 2 的节点池
|
||||
- 具有 worker 角色且计数至少为 2 的节点池
|
||||
|
||||
**离线环境中的 RKE1 下游集群节点**:
|
||||
|
||||
默认情况下,在配置 RKE1 下游集群节点时(例如在 vSphere 中),Rancher 会尝试运行 Docker 安装脚本。但是,Rancher Docker 安装脚本在离线环境中会运行失败。要解决此问题,如果 Docker 已预安装到 VM 镜像上,你可以选择在创建节点模板时跳过安装 Docker。为此,你可以在 Rancher UI **引擎选项**下的 `Docker 安装 URL` 下拉列表中选择 **无**。
|
||||
|
||||
<figcaption>**引擎选项下拉列表**</figcaption>
|
||||
|
||||

|
||||
|
||||
#### 节点池污点
|
||||
|
||||
如果你没有在节点模板上定义[污点](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/),则可以为每个节点池添加污点。相比在节点模板上添加污点,在节点池上添加污点的好处在于,你可以替换节点模板,而不必担心污点是否在节点模板中。
|
||||
|
||||
每个污点都将自动添加到节点池中已创建的节点。因此,如果你在已有节点的节点池中添加污点,污点不会应用到已有的节点,但是添加到该节点池中的新节点都将获得该污点。
|
||||
|
||||
如果污点同时添加到节点模板和节点池中,且添加了相同键的污点效果没有冲突,则所有污点都将添加到节点中。如果存在具有相同键但不同效果的污点,则节点池中的污点将覆盖节点模板中的污点。
|
||||
|
||||
#### 节点自动替换
|
||||
|
||||
Rancher 可以自动替换节点池中无法访问的节点。如果节点在指定的时间中处于 Inactive 状态,Rancher 将使用该节点池的节点模板来重新创建节点。
|
||||
|
||||
:::caution
|
||||
|
||||
自我修复节点池的功能帮助你替换<b>无状态</b>应用的 worker 节点。不建议在 master 节点或连接了持久卷的节点的节点池上启用节点自动替换,因为虚拟机会被临时处理。节点池中的节点与集群断开连接时,其持久卷将被破坏,从而导致有状态应用的数据丢失。
|
||||
|
||||
:::
|
||||
|
||||
节点自动替换基于 Kubernetes 节点控制器工作。节点控制器定期检查所有节点的状态(可通过 `kube-controller` 的 `--node-monitor-period` 标志配置)。一个节点不可访问时,节点控制器将污染该节点。发生这种情况时,Rancher 将开始其删除倒计时。你可以配置 Rancher 等待删除节点的时间。如果在删除倒计时结束前污点没有被删除,Rancher 将继续删除该节点。Rancher 会根据节点池设置的数量来创建新的节点。
|
||||
|
||||
#### 启用节点自动替换
|
||||
|
||||
创建节点池时,你可以指定 Rancher 替换无响应节点的等待时间(以分钟为单位)。
|
||||
|
||||
1. 在创建或编辑集群的表单中,转到**节点池**。
|
||||
1. 转到要启用节点自动替换的节点池。在 **Recreate Unreachable After** 字段中,输入 Rancher 在替换节点之前应该等待节点响应的分钟数。
|
||||
1. 填写表单的其余部分以创建或编辑集群。
|
||||
|
||||
**结果** :已为节点池启用节点自动替换。
|
||||
|
||||
#### 禁用节点自动替换
|
||||
|
||||
你可以执行以下步骤从 Rancher UI 禁用节点自动替换:
|
||||
|
||||
1. 点击 **☰ > 集群管理**。
|
||||
1. 在**集群**页面上,转到要禁用节点自动替换的集群,然后单击 **⋮ > 编辑配置**。
|
||||
1. 在**节点池**部分中,转到要启用节点自动替换的节点池。在 **Recreate Unreachable After** 字段中,输入 0。
|
||||
1. 单击**保存**。
|
||||
|
||||
**结果**:已禁用节点池的节点自动替换。
|
||||
|
||||
### 云凭证
|
||||
|
||||
节点模板可以使用云凭证,来存储用于在云提供商中启动节点的凭证,其优点是:
|
||||
|
||||
- 凭证会存储为更安全的 Kubernetes 密文,而且你无需每次都输入凭证便可编辑节点模板。
|
||||
|
||||
- 创建云凭证后,你可以重新使用该凭证来创建其他节点模板。
|
||||
|
||||
- 多个节点模板可以使用相同的云凭证来创建节点池。如果你的密钥被泄露或过期,则可以在一个位置更新云凭证,从而一次更新所有使用该凭证的节点模板。
|
||||
|
||||
创建云凭证后,用户可以[管理创建的云凭证](../reference-guides/user-settings/manage-cloud-credentials.md)。
|
||||
|
||||
### 主机驱动
|
||||
|
||||
如果你找不到想要的主机驱动,你可以在 Rancher 的[内置主机驱动](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-provisioning-drivers/manage-node-drivers.md#激活停用主机驱动)中查看并激活它,也可以[添加自定义主机驱动](../how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/about-provisioning-drivers/manage-node-drivers.md#添加自定义主机驱动)。
|
||||
|
||||
## RKE2 集群
|
||||
|
||||
Rancher 2.6 支持直接使用 Rancher UI 配置 [RKE2](https://docs.rke2.io/) 集群。RKE2,也称为 RKE Government,是一个完全符合标准的 Kubernetes 发行版,它专注于安全性和合规性。
|
||||
|
||||
:::note
|
||||
|
||||
对于 RKE2 集群模板,请参阅[此页面](../how-to-guides/new-user-guides/manage-clusters/manage-cluster-templates.md#rke2-集群模板)了解更多信息。
|
||||
|
||||
:::
|
||||
|
||||
### 节点角色
|
||||
|
||||
RKE2 CLI 公开了 `server` 和 `agent` 两个角色,它们分别代表 Kubernetes 节点角色 `etcd` + `controlplane` 和 `worker`。通过 Rancher 2.6 中的 RKE2 集成,RKE2 节点池可以分配更细粒度的角色,例如 `etcd` 和 `controlplane`。
|
||||
|
||||
你可以在 RKE2 CLI 中使用标志和节点污染,来控制调度工作负载和 Kubernetes master 节点的位置,从而使用 `etcd`,`controlplane` 和 `worker` 节点功能。这些角色没有在 RKE2 CLI 中实现为第一级角色的原因是,RKE2 被概念化为一组原始构建块,使用 Rancher 等编排系统得到最佳利用。
|
||||
|
||||
在 Rancher 中实现这三个节点角色,表示 Rancher 管理的 RKE2 集群能够轻松使用为 RKE 集群推荐的相同架构的所有最佳实践。
|
||||
|
||||
在[推荐的集群架构](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/checklist-for-production-ready-clusters/recommended-cluster-architecture.md)中,我们概述了每个角色集群应该有多少节点:
|
||||
|
||||
- 至少拥有三个角色为 etcd 的节点,来确保失去一个节点时仍能存活。
|
||||
- 至少两个节点具有 controlplane 角色,以实现主组件高可用性。
|
||||
- 至少两个具有 worker 角色的节点,用于在节点故障时重新安排工作负载。
|
||||
@@ -0,0 +1,286 @@
|
||||
---
|
||||
title: 在 Windows 集群上启动 Kubernetes
|
||||
---
|
||||
|
||||
使用 Rancher 配置[自定义集群](use-existing-nodes.md)时,Rancher 通过 RKE(Rancher Kubernetes Engine)在现有节点上安装 Kubernetes。
|
||||
|
||||
在使用 Rancher 配置的 Windows 集群中,集群必须同时包含 Linux 和 Windows 节点。Kubernetes controlplane 只能运行在 Linux 节点上,Windows 节点只能有 Worker 角色。Windows 节点只能用于部署工作负载。
|
||||
|
||||
Windows 集群的其他要求如下:
|
||||
|
||||
- 只有在创建集群时启用了 Windows 支持的集群才能添加 Windows 节点。无法为现有集群启用 Windows 支持。
|
||||
- 需要 Kubernetes 1.15+。
|
||||
- 必须使用 Flannel 网络提供商。
|
||||
- Windows 节点必须有 50 GB 的磁盘空间。
|
||||
|
||||
有关完整的要求列表,请参阅[本节](#windows-集群的要求)。
|
||||
|
||||
有关支持 Windows 的 Kubernetes 功能摘要,请参阅[在 Windows 中使用 Kubernetes 支持的功能和限制](https://kubernetes.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/#supported-functionality-and-limitations)的 Kubernetes 文档,或[在 Kubernetes 中调度 Windows 容器的指南](https://kubernetes.io/docs/setup/production-environment/windows/user-guide-windows-containers/)。
|
||||
|
||||
|
||||
## Rancher 2.6 变更
|
||||
|
||||
Rancher 2.6 支持直接使用 Rancher UI 配置 [RKE2](https://docs.rke2.io/) 集群。RKE2,也称为 RKE Government,是一个完全符合标准的 Kubernetes 发行版,它专注于安全性和合规性。
|
||||
|
||||
在 Rancher 2.6.5 中,RKE2 已经 GA。
|
||||
|
||||
### RKE2 Windows
|
||||
|
||||
RKE2 配置功能还包括在 Windows 集群上安装 RKE2。RKE2 的 Windows 功能包括:
|
||||
|
||||
- 由 containerd 提供支持的使用 RKE2 的 Windows 容器
|
||||
- 直接从 Rancher UI 配置 Windows RKE2 自定义集群
|
||||
- 用于 Windows RKE2 自定义集群的 Calico CNI
|
||||
- 技术预览包含了 Windows Server 的 SAC 版本(2004 和 20H2)
|
||||
|
||||
要使 Windows 支持 RKE2 自定义集群,请选择 Calico 作为 CNI。
|
||||
|
||||
:::note
|
||||
|
||||
默认情况下,Rancher 允许 Windows 工作负载 pod 部署在 Windows 和 Linux Worker 节点上。在 RKE2 中创建混合集群时,你必须编辑 Chart 中的 `nodeSelector`,从而将 Pod 放置到兼容的 Windows 节点上。有关如何使用 `nodeSelector` 将 pod 分配给节点的更多信息,请参阅 [Kubernetes 文档](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector)。
|
||||
|
||||
:::
|
||||
|
||||
**_Rancher v2.6.7 新功能_**
|
||||
|
||||
- Kubernetes v1.24.1 及更高版本支持 Windows RKE2 中的 HostProcess 容器。有关详细信息,请参阅[上游文档](https://kubernetes.io/docs/tasks/configure-pod-container/create-hostprocess-pod/)。
|
||||
|
||||
## Windows 集群的要求
|
||||
|
||||
网络、操作系统和 Docker 的一般节点要求与 [Rancher 安装](installation-requirements.md)的节点要求相同。
|
||||
|
||||
### 操作系统和 Docker 要求
|
||||
|
||||
我们对 Windows Server 和 Windows 容器的支持与 LTSC(长期服务渠道)和 SAC(半年渠道)的 Microsoft 官方生命周期相匹配。
|
||||
|
||||
有关 Windows Server 的支持生命周期的日期,请参阅 [Microsoft 文档](https://docs.microsoft.com/en-us/windows-server/get-started/windows-server-release-info)。
|
||||
|
||||
### Kubernetes 版本
|
||||
|
||||
需要 Kubernetes v1.15+。
|
||||
|
||||
如果你在 Windows Server 20H2 Standard Core 上使用 Kubernetes v1.21,则必须在节点上安装补丁“2019-08 Servicing Stack Update for Windows Server”。
|
||||
|
||||
### 节点要求
|
||||
|
||||
集群中的主机至少需要:
|
||||
|
||||
- 2 核 CPU
|
||||
- 5 GB 内存
|
||||
- 50 GB 磁盘空间
|
||||
|
||||
Rancher 不会配置不满足要求的节点。
|
||||
|
||||
### 网络要求
|
||||
|
||||
在配置新集群之前,请确保你已经在接收入站网络流量的设备上安装了 Rancher。这是集群节点与 Rancher 通信所必需的。如果你尚未安装 Rancher,请在继续阅读本指南之前先参阅[安装文档](installation-and-upgrade.md)进行安装。
|
||||
|
||||
Rancher 仅支持使用 Flannel 作为网络提供商的 Windows。
|
||||
|
||||
有两个网络选项:[**Host Gateway (L2bridge)**](https://github.com/coreos/flannel/blob/master/Documentation/backends.md#host-gw) 和 [**VXLAN (Overlay)**](https://github.com/coreos/flannel/blob/master/Documentation/backends.md#vxlan)。默认选项是 **VXLAN (Overlay)** 模式。
|
||||
|
||||
对于 **Host Gateway (L2bridge)** 网络,最好为所有节点使用相同的第 2 层网络。否则,你需要为它们配置路由规则。有关详细信息,请参阅[配置云托管 VM 路由的文档](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/use-windows-clusters/network-requirements-for-host-gateway.md#云托管虚拟机的路由配置)。如果你使用的是 Amazon EC2、Google GCE 或 Azure 虚拟机,你需要[禁用私有 IP 地址检查](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/use-windows-clusters/network-requirements-for-host-gateway.md#禁用私有-ip-地址检查)。
|
||||
|
||||
对于 **VXLAN (Overlay)** 网络,你必须安装 [KB4489899](https://support.microsoft.com/en-us/help/4489899) 修补程序。大多数云托管的 VM 已经具有此修补程序。
|
||||
|
||||
如果你在为 AWS 虚拟私有云配置 DHCP 选项集,请注意,你只能在 `domain-name` 选项字段中指定一个域名。详情请参见 [DHCP 选项文档](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html)。
|
||||
|
||||
:::note
|
||||
|
||||
一些 Linux 操作系统支持以空格分隔的多个域名。但是,其他 Linux 操作系统和 Windows 将该值视为单个域名,从而导致意外错误。如果你的 DHCP 选项集与具有多个操作系统实例的 VPC 相关联,请仅指定一个域名。
|
||||
|
||||
:::
|
||||
|
||||
### 带有 ESXi 6.7u2 及更高版本的 vSphere 上的 Rancher
|
||||
|
||||
如果你在带有 ESXi 6.7u2 或更高版本的 VMware vSphere 上使用 Rancher,并使用 Red Hat Enterprise Linux 8.3、CentOS 8.3 或 SUSE Enterprise Linux 15 SP2 或更高版本,你需要禁用 `vmxnet3` 虚拟网络适配器硬件卸载功能。否则,不同集群节点上的 pod 之间的所有网络连接会因为超时错误而失败。从 Windows pod 到在 Linux 节点上运行的关键服务(例如 CoreDNS)的所有连接也将失败。外部连接也可能失败。出现这个问题的原因是 Linux 发行版在 `vmxnet3` 中启用了硬件卸载功能,而且 `vmxnet3` 硬件卸载功能中存在一个会丢弃客户覆盖流量的数据包的 bug。要解决此问题,必须禁用 `vmxnet3` 硬件卸载功能。此设置不会在重启后继续生效,因此需要在每次启动时禁用。推荐的做法是在 `/etc/systemd/system/disable_hw_offloading.service` 中创建一个 systemd 单元文件,这会在启动时禁用 `vmxnet3` 硬件卸载功能。禁用 `vmxnet3` 硬件卸载功能的示例 systemd 单元文件如下所示。注意,`<VM network interface>` 必须自定义为主机的 `vmxnet3` 网络接口,如 `ens192`:
|
||||
|
||||
```
|
||||
[Unit]
|
||||
Description=Disable vmxnet3 hardware offloading feature
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=ethtool -K <VM network interface> tx-udp_tnl-segmentation off
|
||||
ExecStart=ethtool -K <VM network interface> tx-udp_tnl-csum-segmentation off
|
||||
StandardOutput=journal
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
然后在 systemd 单元文件上设置适当的权限:
|
||||
```
|
||||
chmod 0644 /etc/systemd/system/disable_hw_offloading.service
|
||||
```
|
||||
最后,启用 systemd 服务:
|
||||
```
|
||||
systemctl enable disable_hw_offloading.service
|
||||
```
|
||||
|
||||
### 架构要求
|
||||
|
||||
Kubernetes 集群管理节点(`etcd` 和 `controlplane`)必须运行在 Linux 节点上。
|
||||
|
||||
部署工作负载的 `worker` 节点通常是 Windows 节点,但必须至少有一个 `worker` 节点运行在 Linux 上,才能按顺序运行 Rancher Cluster Agent、DNS、Metrics Server 和 Ingress 相关容器。
|
||||
|
||||
#### 推荐架构
|
||||
|
||||
我们推荐下表中列出的三节点架构,但你始终可以添加额外的 Linux 和 Windows worker 节点来扩展集群,从而实现冗余:
|
||||
|
||||
| 节点 | 操作系统 | Kubernetes 集群角色 | 用途 |
|
||||
| ------ | --------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
|
||||
| 节点 1 | Linux(推荐 Ubuntu Server 18.04) | controlplane, etcd, worker | 管理 Kubernetes 集群 |
|
||||
| 节点 2 | Linux(推荐 Ubuntu Server 18.04) | Worker | 支持集群的 Rancher Cluster Agent、Metrics Server、DNS 和 Ingress |
|
||||
| 节点 3 | Windows(Windows Server 核心版本 1809 或更高版本) | Worker | 运行 Windows 容器 |
|
||||
|
||||
### 容器要求
|
||||
|
||||
Windows 要求容器的版本必须与部署容器的 Windows Server 的版本一致。因此,你必须在 Windows Server 核心版本 1809 或更高版本上构建容器。如果你已经使用早期的 Windows Server 核心版本构建了容器,则必须使用 Windows Server 核心版本 1809 或更高版本重新构建容器。
|
||||
|
||||
### 云提供商要求
|
||||
|
||||
如果你在集群中设置了 Kubernetes 云提供商,则需要进行一些额外的操作。如果你想使用云提供商的功能,例如为集群自动配置存储、负载均衡器或其他基础设施,你可能需要设置云提供商。有关如何配置满足条件的云提供商集群节点,请参阅[此页面](../pages-for-subheaders/set-up-cloud-providers.md)。
|
||||
|
||||
如果你的云提供商是 GCE(Google Compute Engine),则必须执行以下操作:
|
||||
|
||||
- 按照[步骤](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-cloud-providers/google-compute-engine.md) 在`cluster.yml` 中启用 GCE 云提供商。
|
||||
- 在 Rancher 中配置集群时,在 Rancher UI 中选择**自定义云提供商**作为云提供商。
|
||||
|
||||
## 教程:如何创建支持 Windows 的集群
|
||||
|
||||
本教程描述了如何使用[推荐架构](#推荐架构)中的三个节点创建由 Rancher 配置的集群。
|
||||
|
||||
在现有节点上使用 Rancher 配置集群时,你需要在每个节点上安装 [Rancher Agent](../reference-guides/cluster-configuration/rancher-server-configuration/use-existing-nodes/rancher-agent-options.md) 来将节点添加到集群中。在 Rancher UI 中创建或编辑集群时,你会看到一个**自定义节点运行命令**,你可以在每台服务器上运行该命令,从而将服务器添加到集群中。
|
||||
|
||||
要设置支持 Windows 节点和容器的集群,你需要完成以下任务:
|
||||
|
||||
|
||||
### 1. 配置主机
|
||||
|
||||
要在具有 Windows 支持的现有节点上配置集群,请准备好你的主机。
|
||||
|
||||
主机可以是:
|
||||
|
||||
- 云托管的虚拟机
|
||||
- 虚拟化集群中的虚拟机
|
||||
- 裸金属服务器
|
||||
|
||||
你将配置三个节点:
|
||||
|
||||
- 一个 Linux 节点,用于管理 Kubernetes controlplane 并存储你的 `etcd`。
|
||||
- 第二个 Linux 节点,它将作为 worker 节点。
|
||||
- Windows 节点,它将作为 worker 节点运行 Windows 容器。
|
||||
|
||||
| 节点 | 操作系统 |
|
||||
| ------ | ------------------------------------------------------------ |
|
||||
| 节点 1 | Linux(推荐 Ubuntu Server 18.04) |
|
||||
| 节点 2 | Linux(推荐 Ubuntu Server 18.04) |
|
||||
| 节点 3 | Windows(Windows Server 核心版本 1809 或更高版本) |
|
||||
|
||||
如果你的节点托管在**云提供商**上,并且你需要自动化支持(例如负载均衡器或持久存储设备),你的节点还需要满足额外的配置要求。详情请参见[选择云提供商](../pages-for-subheaders/set-up-cloud-providers.md)。
|
||||
|
||||
### 2. 在现有节点上创建集群
|
||||
|
||||
在现有节点上创建 Windows 集群的说明与一般[创建自定义集群的说明](use-existing-nodes.md)非常相似,但有一些特定于 Windows 的要求。
|
||||
|
||||
1. 在左上角,单击 **☰ > 集群管理**。
|
||||
1. 在**集群**页面上,单击**创建**。
|
||||
1. 单击**自定义**。
|
||||
1. 在**集群名称**字段中输入集群的名称。
|
||||
1. 在 **Kubernetes 版本**下拉菜单中,选择 v1.19 或更高版本。
|
||||
1. 在**网络提供商**字段中,选择 **Flannel**。
|
||||
1. 在 **Windows 支持**中,单击**启用**。
|
||||
1. 可选:启用 Windows 支持后,你将能够选择 Flannel 后端模式。有两个网络选项:[**Host Gateway (L2bridge)**](https://github.com/coreos/flannel/blob/master/Documentation/backends.md#host-gw) 和 [**VXLAN (Overlay)**](https://github.com/coreos/flannel/blob/master/Documentation/backends.md#vxlan)。默认选项是 **VXLAN (Overlay)** 模式。
|
||||
1. 点击**下一步**。
|
||||
|
||||
:::note 重要提示:
|
||||
|
||||
对于 <b>Host Gateway (L2bridge)</b> 网络,最好为所有节点使用相同的第 2 层网络。否则,你需要为它们配置路由规则。有关详细信息,请参阅[配置云托管 VM 路由的文档](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/use-windows-clusters/network-requirements-for-host-gateway.md#云托管虚拟机的路由配置)。如果你使用的是 Amazon EC2、Google GCE 或 Azure 虚拟机,你需要[禁用私有 IP 地址检查](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/use-windows-clusters/network-requirements-for-host-gateway.md#禁用私有-ip-地址检查)。
|
||||
|
||||
:::
|
||||
|
||||
### 3. 将节点添加到集群
|
||||
|
||||
本节介绍如何将 Linux 和 Worker 节点注册到集群。你将在每个节点上运行一个命令,该命令将安装 Rancher Agent 并允许 Rancher 管理每个节点。
|
||||
|
||||
#### 添加 Linux master 节点
|
||||
|
||||
在本节中,你需要在 Rancher UI 上填写表单以获取自定义命令,从而在 Linux master 节点上安装 Rancher Agent。然后,复制该命令并在 Linux master 节点上运行命令,从而在集群中注册该节点。
|
||||
|
||||
集群中的第一个节点应该是具有 **controlplane** 和 **etcd** 角色的 Linux 主机。至少必须为此节点启用这两个角色,并且必须先将此节点添加到集群中,然后才能添加 Windows 主机。
|
||||
|
||||
1. 在**节点操作系统**中,单击 **Linux**。
|
||||
1. 在**节点角色**中,至少选择 **etcd** 和 **controlplane**。推荐选择所有的三个角色。
|
||||
1. 可选:如果点击**显示高级选项**,你可以自定义 [Rancher Agent](../reference-guides/cluster-configuration/rancher-server-configuration/use-existing-nodes/rancher-agent-options.md) 和[节点标签](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/)的设置。
|
||||
1. 将屏幕上显示的命令复制到剪贴板。
|
||||
1. SSH 到你的 Linux 主机,然后运行复制到剪贴板的命令。
|
||||
1. 完成配置 Linux 节点后,选择**完成**。
|
||||
|
||||
**结果**:
|
||||
|
||||
你已创建集群,集群的状态是**配置中**。Rancher 已在你的集群中。
|
||||
|
||||
当集群状态变为 **Active** 后,你可访问集群。
|
||||
|
||||
**Active** 状态的集群会分配到两个项目:
|
||||
|
||||
- `Default`:包含 `default` 命名空间
|
||||
- `System`:包含 `cattle-system`,`ingress-nginx`,`kube-public` 和 `kube-system` 命名空间。
|
||||
|
||||
|
||||
节点可能需要几分钟才能注册到集群中。
|
||||
|
||||
#### 添加 Linux Worker 节点
|
||||
|
||||
在本节中,我们通过运行命令将 Linux Worker 节点注册到集群中。
|
||||
|
||||
在初始配置集群之后,你的集群只有一个 Linux 主机。接下来,我们添加另一个 Linux `worker` 主机,用于支持集群的 _Rancher Cluster Agent_、_Metrics Server_、_DNS_ 和 _Ingress_。
|
||||
|
||||
1. 在左上角,单击 **☰ > 集群管理**。
|
||||
1. 转到你创建的集群,然后单击 **⋮ > 编辑配置**。
|
||||
1. 向下滚动到**节点操作系统**。选择 **Linux**。
|
||||
1. 在**自定义节点运行命令**中,转到**节点选项**并选择 **Worker** 角色。
|
||||
1. 将屏幕上显示的命令复制到剪贴板。
|
||||
1. 使用远程终端连接登录到你的 Linux 主机。粘贴剪贴板的命令并运行。
|
||||
1. 在 **Rancher**中,单击**保存**。
|
||||
|
||||
**结果**:**Worker** 角色已安装在你的 Linux 主机上,并且节点会向 Rancher 注册。节点可能需要几分钟才能注册到集群中。
|
||||
|
||||
:::note
|
||||
|
||||
Linux Worker 节点上的污点
|
||||
|
||||
以下污点将添加集群中的 Linux Worker 节点中。将此污点添加到 Linux Worker 节点后,添加到 Windows 集群的任何工作负载都将自动调度到 Windows Worker 节点。如果想将工作负载专门调度到 Linux Worker 节点上,则需要为这些工作负载添加容忍度。
|
||||
|
||||
| 污点键 | 污点值 | 污点效果 |
|
||||
| -------------- | ----------- | ------------ |
|
||||
| `cattle.io/os` | `linux` | `NoSchedule` |
|
||||
|
||||
:::
|
||||
|
||||
#### 添加 Windows Worker 节点
|
||||
|
||||
在本节中,我们通过运行命令将 Windows Worker 节点注册到集群中。
|
||||
|
||||
你可以通过编辑集群并选择 **Windows** 选项,从而将 Windows 主机添加到集群中。
|
||||
|
||||
1. 在左上角,单击 **☰ > 集群管理**。
|
||||
1. 转到你创建的集群,然后单击 **⋮ > 编辑配置**。
|
||||
1. 向下滚动到**节点操作系统**。选择 **Windows**。注意:你将看到 **worker** 角色是唯一可用的角色。
|
||||
1. 将屏幕上显示的命令复制到剪贴板。
|
||||
1. 使用你喜欢的工具(例如 [Microsoft 远程桌面](https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-desktop-clients))登录到 Windows 主机。在 **Command Prompt (CMD)** 中运行复制到剪贴板的命令。
|
||||
1. 在 Rancher 中,单击**保存**。
|
||||
1. 可选:如果要向集群添加更多 Windows 节点,请重复这些操作。
|
||||
|
||||
**结果**:**Worker** 角色已安装在你的 Windows 主机上,并且节点会向 Rancher 注册。节点可能需要几分钟才能注册到集群中。你现在已拥有一个 Windows Kubernetes 集群。
|
||||
|
||||
### 可选的后续步骤
|
||||
|
||||
创建集群后,你可以通过 Rancher UI 访问集群。最佳实践建议你设置以下访问集群的备用方式:
|
||||
|
||||
- **通过 kubectl CLI 访问你的集群**:按照[这些步骤](../how-to-guides/new-user-guides/manage-clusters/access-clusters/use-kubectl-and-kubeconfig.md#在工作站使用-kubectl-访问集群)在你的工作站上使用 kubectl 访问集群。在这种情况下,你将通过 Rancher Server 的身份验证代理进行身份验证,然后 Rancher 会让你连接到下游集群。此方法允许你在没有 Rancher UI 的情况下管理集群。
|
||||
- **通过 kubectl CLI 使用授权的集群端点访问你的集群**:按照[这些步骤](../how-to-guides/new-user-guides/manage-clusters/access-clusters/use-kubectl-and-kubeconfig.md#直接使用下游集群进行身份验证)直接使用 kubectl 访问集群,而无需通过 Rancher Server 进行身份验证。我们建议设置此替代方法来访问集群,以便在无法连接到 Rancher 时访问集群。
|
||||
|
||||
## Azure 中存储类的配置
|
||||
|
||||
如果你的节点使用 Azure VM,则可以使用 [Azure 文件](https://docs.microsoft.com/en-us/azure/aks/azure-files-dynamic-pv)作为集群的存储类(StorageClass)。详情请参见[此部分](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/use-windows-clusters/azure-storageclass-configuration.md)。
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: 用户设置
|
||||
---
|
||||
|
||||
在 Rancher 中,每个用户都有很多与登录相关的设置,例如个人偏好、API 密钥等。你可以从**用户设置**菜单中配置这些设置。你可以单击主菜单中的头像来打开此菜单。
|
||||
|
||||

|
||||
|
||||
可用的用户设置包括:
|
||||
|
||||
- [API & 密钥](../reference-guides/user-settings/api-keys.md):如果你想以编程方式与 Rancher 交互,你需要一个 API 密钥。你可以按照本节中的说明获取密钥。
|
||||
- [云凭证](../reference-guides/user-settings/manage-cloud-credentials.md):管理[节点模板](use-new-nodes-in-an-infra-provider.md#节点模板)使用的云凭证,从而[为集群配置节点](../pages-for-subheaders/launch-kubernetes-with-rancher.md)。
|
||||
- [节点模板](../reference-guides/user-settings/manage-node-templates.md):管理 [Rancher 用来为集群配置节点](../pages-for-subheaders/launch-kubernetes-with-rancher.md)的模板。
|
||||
- [偏好设置](../reference-guides/user-settings/user-preferences.md):设置 Rancher UI 的表面首选项。
|
||||
- 登出:结束你的用户会话。
|
||||
@@ -0,0 +1,56 @@
|
||||
---
|
||||
title: 创建 vSphere 集群
|
||||
description: 使用 Rancher 创建 vSphere 集群。集群可能包括具有不同属性的 VM 组,这些属性可用于细粒度控制节点的大小。
|
||||
---
|
||||
|
||||
import YouTube from '@site/src/components/YouTube'
|
||||
|
||||
你可以结合使用 Rancher 与 vSphere,从而在本地体验云环境的操作。
|
||||
|
||||
Rancher 可以在 vSphere 中配置节点并在其上安装 Kubernetes。在 vSphere 中创建 Kubernetes 集群时,Rancher 首先与 vCenter API 通信来配置指定数量的虚拟机。然后在它们之上安装 Kubernetes。
|
||||
|
||||
vSphere 集群可能由多组具有不同属性(例如内存或 vCPU 数量)的 VM 组成。这种分组允许对每个 Kubernetes 角色的节点大小进行细粒度控制。
|
||||
|
||||
## Rancher 2.3 中的 vSphere 增强功能
|
||||
|
||||
我们更新了 vSphere 节点模板,使你可以通过以下增强功能在本地体验云操作:
|
||||
|
||||
### 自我修复的节点池
|
||||
|
||||
使用 Rancher 配置 vSphere 节点的最大优势之一,是允许你在本地集群中使用 Rancher 的自我修复节点池(也称为[节点自动替换功能](use-new-nodes-in-an-infra-provider.md#节点自动替换))。自我修复节点池的功能帮助你替换无状态应用的 worker 节点。当 Rancher 使用节点模板配置节点时,Rancher 可以自动替换无法访问的节点。
|
||||
|
||||
:::caution
|
||||
|
||||
不建议在 master 节点或连接了持久卷的节点的节点池上启用节点自动替换,因为虚拟机会被临时处理。节点池中的节点与集群断开连接时,其持久卷将被破坏,从而导致有状态应用的数据丢失。
|
||||
|
||||
:::
|
||||
|
||||
### 实例和调度的动态填充选项
|
||||
|
||||
vSphere 的节点模板已更新。当你使用 vSphere 凭证创建节点模板时,该模板会自动填充你在 vSphere 控制台中可以访问的相同的虚拟机配置选项。
|
||||
|
||||
要填充的字段设置需要满足[先决条件](../how-to-guides/new-user-guides/launch-kubernetes-with-rancher/use-new-nodes-in-an-infra-provider/vsphere/provision-kubernetes-clusters-in-vsphere.md#vsphere-中的准备工作)。
|
||||
|
||||
### 更多支持的操作系统
|
||||
|
||||
你可以使用任何支持 `cloud-init` 的操作系统来配置 VM。[cloud config](https://cloudinit.readthedocs.io/en/latest/topics/examples.html) 仅支持 YAML 格式。
|
||||
|
||||
### 2.3.3 节点模板功能的视频介绍
|
||||
|
||||
在这段 YouTube 视频中,我们演示了如何使用新的节点模板在本地环境体验云环境一样的操作。
|
||||
|
||||
<YouTube id="dPIwg6x1AlU"/>
|
||||
|
||||
## 创建 vSphere 集群
|
||||
|
||||
在[本节](../how-to-guides/new-user-guides/launch-kubernetes-with-rancher/use-new-nodes-in-an-infra-provider/vsphere/provision-kubernetes-clusters-in-vsphere.md)中,你将学习如何使用 Rancher 在 vSphere 中安装 [RKE](https://rancher.com/docs/rke/latest/en/) Kubernetes 集群。
|
||||
|
||||
## 配置存储
|
||||
|
||||
有关如何使用 Rancher 在 vSphere 中配置存储的示例,请参阅[本节](../how-to-guides/new-user-guides/manage-clusters/provisioning-storage-examples/vsphere-storage.md)。要在 vSphere 中动态配置存储,你必须启用 vSphere 云提供商。请参阅[树内 vSphere 配置](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-cloud-providers/configure-in-tree-vsphere.md)和[树外 vSphere 配置](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-cloud-providers/configure-out-of-tree-vsphere.md)。
|
||||
|
||||
## 启用 vSphere 云提供商
|
||||
|
||||
在 Rancher 中设置云提供商时,Rancher Server 可以自动为集群配置新的基础设施,包括新节点或持久存储设备。
|
||||
|
||||
有关启用 vSphere 云提供商的详细信息,请参阅[树内 vSphere 配置](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-cloud-providers/configure-in-tree-vsphere.md)和[树外 vSphere 配置](../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-cloud-providers/configure-out-of-tree-vsphere.md)。
|
||||
@@ -0,0 +1,78 @@
|
||||
---
|
||||
title: "Kubernetes 工作负载和 Pod"
|
||||
description: "了解在 Kubernetes 中构建复杂容器化应用程序的两种结构:Kubernetes 工作负载和 Pod"
|
||||
---
|
||||
|
||||
你可以使用两种基本结构(pod 和工作负载)在 Kubernetes 中构建复杂的容器化应用程序。构建应用程序后,你可以使用第三种结构(service)在集群中或互联网上公开应用程序。
|
||||
|
||||
### Pod
|
||||
|
||||
[_Pod_](https://kubernetes.io/docs/concepts/workloads/pods/pod-overview/) 是一个或多个共享网络命名空间和存储卷的容器。大多数 pod 只有一个容器。因此,我们讨论的 _pod_ 通常等同于 _容器_。扩展 pod 的方式与扩展容器的方式相同,即配置实现服务的同一 pod 的多个实例。通常,Pod 会根据工作负载进行扩展和管理。
|
||||
|
||||
### 工作负载
|
||||
|
||||
_工作负载_ 是为 pod 设置部署规则的对象。Kubernetes 基于这些规则执行部署,并根据应用程序的当前状态来更新工作负载。
|
||||
工作负载让你可以定义应用程序调度、扩展和升级的规则。
|
||||
|
||||
#### 工作负载类型
|
||||
|
||||
Kubernetes 将工作负载分为不同的类型。Kubernetes 支持的最流行的类型是:
|
||||
|
||||
- [Deployment](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/)
|
||||
|
||||
_Deployment_ 最适合用于无状态应用程序(即不需要维护工作负载的状态)。由 Deployment 类型工作负载管理的 Pod 是独立且一次性的。如果 pod 中断了,Kubernetes 会删除该 pod 然后重新创建它。一个示例应用程序是 Nginx Web 服务器。
|
||||
|
||||
- [StatefulSet](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/)
|
||||
|
||||
与 Deployment 相比,_StatefulSet_ 最适合在需要维护身份和存储数据的应用程序中使用。适用的应用程序类似于 Zookeeper(一个需要数据库进行存储的应用程序)。
|
||||
|
||||
- [DaemonSet](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/)
|
||||
|
||||
_Daemonset_ 确保集群中的每个节点都运行 pod 的副本。如果你需要收集日志或监控节点性能,这种类似 daemon 的工作负载效果是最好的。
|
||||
|
||||
- [Job](https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/)
|
||||
|
||||
_Job_ 启动一个或多个 Pod 并确保指定数量的 Pod 能成功终止。Job 最好用于运行有限任务至完成状态,而不是管理正在进行的应用程序的所需状态。
|
||||
|
||||
- [CronJob](https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/)
|
||||
|
||||
_CronJobs_ 与 Job 类似。但是,CronJob 会基于 cron 的计划运行到完成状态。
|
||||
|
||||
### Services
|
||||
|
||||
在许多用例中,工作负载必须:
|
||||
|
||||
- 由集群中的其他工作负载访问。
|
||||
- 暴露给外部。
|
||||
|
||||
你可以通过创建一个 _Service_ 实现这些目的。Service 使用[选择器/标签(查看代码示例)](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#service-and-replicationcontroller)来映射到底层工作负载的 pod。Rancher UI 使用你选择的服务端口和类型来自动创建 service 以及工作负载,从而简化此映射过程。
|
||||
|
||||
#### Service 类型
|
||||
|
||||
Rancher 中有几种可用的 Service 类型。以下描述来自 [Kubernetes 文档](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)。
|
||||
|
||||
- **ClusterIP**
|
||||
|
||||
> 在集群内部 IP 上公开 Service。如果你选择此值,Service 只能从集群内访问。这是默认的 `ServiceType`。
|
||||
|
||||
- **NodePort**
|
||||
|
||||
> 在每个节点 IP 上的静态端口(`NodePort`)上暴露 Service。`ClusterIP` service 是自动创建的,而 `NodePort` service 会路由到 ClusterIP service。你可以通过请求 `<NodeIP>:<NodePort>` 在集群外部联系 `NodePort` service。
|
||||
|
||||
- **LoadBalancer**
|
||||
|
||||
> 使用云提供商的负载均衡器向外部公开服务。`NodePort` 和 `ClusterIP` service 是自动创建的,外部负载均衡器会路由到这些 service。
|
||||
|
||||
## 工作负载选项
|
||||
|
||||
以下文档介绍了如何部署工作负载和使用工作负载选项。
|
||||
|
||||
- [部署工作负载](../how-to-guides/new-user-guides/kubernetes-resources-setup/workloads-and-pods/deploy-workloads.md)
|
||||
- [升级工作负载](../how-to-guides/new-user-guides/kubernetes-resources-setup/workloads-and-pods/upgrade-workloads.md)
|
||||
- [回滚工作负载](../how-to-guides/new-user-guides/kubernetes-resources-setup/workloads-and-pods/roll-back-workloads.md)
|
||||
|
||||
## 相关链接
|
||||
|
||||
### 外部链接
|
||||
|
||||
- [Service](https://kubernetes.io/docs/concepts/services-networking/service/)
|
||||
Reference in New Issue
Block a user