Add v2.14 preview docs (#2212)

This commit is contained in:
Lucas Saintarbor
2026-03-05 12:30:57 -08:00
committed by GitHub
parent 4a0d71b3f3
commit 2dcfa6f6b8
874 changed files with 92618 additions and 0 deletions
@@ -0,0 +1,66 @@
---
title: 架构推荐
---
如果你准备在单个节点上安装 Rancher,我们推荐你[分开部署 Rancher 与下游集群](#分开部署-rancher-与下游集群)。
## 分开部署 Rancher 与下游集群
下游集群,是运行你自己的应用和服务的下游 Kubernetes 集群。
如果你通过 Docker 安装了 Rancher,运行 Rancher Server 的节点应该与你的下游集群分开。
如果你需要使用 Rancher 管理下游 Kubernetes 集群,那么运行 Rancher Server 的 Kubernetes 集群也应该与下游集群分开。
![分开部署 Rancher Server 与下游集群](/img/rancher-architecture-separation-of-rancher-server.svg)
## 为什么高可用(HA)更适合生产环境中的 Rancher
我们建议在高可用 Kubernetes 集群上安装 Rancher Server,以保护 Rancher Server 的数据。在高可用安装中,负载均衡器充当客户端的单点入口,并在集群中的多台服务器之间分配网络流量,这有助于防止任何一台服务器成为单点故障。
我们不建议在单个 Docker 容器中安装 Rancher,因为如果该节点发生故障,则其他节点上将没有可用的集群数据副本,并且你可能会丢失 Rancher Server 上的数据。
### K3s Kubernetes 集群安装
底层 Kubernetes 集群的一种选择是使用 K3s Kubernetes。K3s 是 Rancher CNCF 认证的 Kubernetes 发行版。K3s 易于安装,仅需要 Kubernetes 内存的一半,所有组件都在一个小于 100 MB 的二进制文件中。K3s 的另一个优点是允许外部 Datastore 保存集群数据,因此可以把 K3s 服务器节点视为无状态。
<figcaption>运行 Rancher Management Server 的 K3s Kubernetes 集群的架构</figcaption>
![运行 Rancher Management Server 的 K3s Kubernetes 集群的架构](/img/k3s-server-storage.svg)
## Kubernetes 安装的负载均衡器推荐配置
我们建议你为负载均衡器和 Ingress Controller 使用以下配置:
* 把 Rancher 的 DNS 解析到四层负载均衡器上。
* 负载均衡器应该把 TCP/80 端口和 TCP/443 端口的流量转发到 Kubernetes 集群的全部 3 个节点上。
* Ingress Controller 会把 HTTP 重定向到 HTTPS,在 TCP/443 端口终结 SSL/TLS。
* Ingress Controller 会把流量转发到 Rancher deployment 的 Pod 上的 TCP/80 端口。
<figcaption>在 Kubernetes 集群中安装 Rancher,并使用四层负载均衡器,SSL 终止在 Ingress Controller 中</figcaption>
![Rancher HA](/img/ha/rancher2ha.svg)
## Kubernetes 安装环境
我们强烈建议你把 Rancher 安装到托管在云提供商(如 AWS EC2 和 Google Compute Engine(GCE)等)上的 Kubernetes 集群上。
为了达到最佳性能和安全性,我们建议你为 Rancher Management Server 创建一个专用的 Kubernetes 集群。不建议在此集群上运行用户工作负载。部署 Rancher 后,你可以[创建或导入集群](../../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/kubernetes-clusters-in-rancher-setup.md)来运行你的工作负载。
## Kubernetes 安装的推荐节点角色
如果 Rancher 安装在 K3s Kubernetes 上,则适用以下建议。
### K3s 集群角色
在 K3s 集群中有两种类型的节点,分别是 Server 节点和 Agent 节点。你可以把工作负载调度到 Server 节点和 Agent 节点上。Server 节点运行 Kubernetes master。
对于运行 Rancher Management Server 的集群,我们建议使用两个 server 节点。不需要 Agent 节点。
## 授权集群端点架构
如果你使用[授权集群端点(ACE)](../../reference-guides/rancher-manager-architecture/communicating-with-downstream-user-clusters.md#4-授权集群端点),我们建议你创建一个指向负载均衡器的 FQDN,这个负载均衡器把流量转到所有角色为 `controlplane` 的节点。
如果你在负载均衡器上使用了私有 CA 签发的证书,你需要提供 CA 证书,这个证书会包含在生成的 kubeconfig 文件中,以校验证书链。详情请参见 [kubeconfig 文件](../../how-to-guides/new-user-guides/manage-clusters/access-clusters/use-kubectl-and-kubeconfig.md)和 [API 密钥](../user-settings/api-keys.md#创建-api-密钥)的相关文档。
注册的 RKE2 和 K3s 集群可以使用 ACE 支持。点击[这里](../../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/register-existing-clusters.md#对-rke2-和-k3s-集群的授权集群端点支持)了解在下游集群中开启 ACE 的步骤。
@@ -0,0 +1,131 @@
---
title: 与下游集群通信
---
本节介绍 Rancher 如何配置和管理运行应用和服务的下游集群。
下图显示了 Cluster Controller、Cluster Agent 和 Node Agent 让 Rancher 控制下游集群的。
<figcaption>与下游集群通信</figcaption>
![Rancher 组件](/img/rancher-architecture-cluster-controller.svg)
以下描述对应于上图中的数字:
1. [认证代理](#1-认证代理)
2. [Cluster Controller 和 Cluster Agent](#2-cluster-controller-和-cluster-agent)
3. [Node Agents](#3-node-agents)
4. [授权集群端点](#4-授权集群端点)
## Components
### 1. 认证代理
在此图中,名为 Bob 的用户希望查看在名为 User Cluster 1 的下游集群上运行的所有 Pod。在 Rancher 中,他可以运行 `kubectl` 命令来查看
Pod。Bob 通过 Rancher 的认证代理进行身份验证。
认证代理将所有 Kubernetes API 调用转发到下游集群。它集成了本地身份验证、Active Directory 和 GitHub 等身份验证方式。在每个 Kubernetes API 调用请求时,认证代理会验证请求方的身份,并在转发给 Kubernetes master 节点之前,设置正确的 Kubernetes 消息头。
Rancher 使用 [ServiceAccount](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/) 与 Kubernetes 集群通信,该 ServiceAccount 为在 Pod 中运行的进程提供身份。
默认情况下,Rancher 生成一个 [kubeconfig 文件](../../how-to-guides/new-user-guides/manage-clusters/access-clusters/use-kubectl-and-kubeconfig.md),文件包含凭证信息,用于为 Rancher Server 连接下游集群的 Kubernetes API Server 的代理。kubeconfig 文件 (`kube_config_rancher-cluster.yml`) 包含对集群的完全访问权限。
### 2. Cluster Controller 和 Cluster Agent
每个下游集群都有一个 Cluster Agent,用于打开与 Rancher Server 中对应的 Cluster Controller 之间的通道。
每个下游集群有一个 Cluster Controller 和一个 Cluster Agent。每个 Cluster Controller 都能:
- 检测下游集群中的资源变化
- 将下游集群的当前状态变更到目标状态
- 配置集群和项目的访问控制策略
- 通过调用所需的 Docker Machine 驱动和 Kubernetes 引擎(例如,GKE)来配置集群
默认情况下,Cluster Controller 连接到 Cluster Agent,Rancher 才能与下游集群通信。如果 Cluster Agent 不可用,Cluster Controller 可以连接到 [Node Agent](#3-node-agents)。
Cluster Agent,也叫做 `cattle-cluster-agent`,是运行在下游集群中的组件。它具有以下功能:
- 连接 Rancher 启动的 Kubernetes 集群中的 Kubernetes API。
- 管理集群内的工作负载,pod 创建和部署。
- 根据每个集群的全局策略,应用定义的角色和绑定。
- 通过与 Cluster Controller 之间的通道,实现集群和 Rancher Server 之间的通信,包括事件,统计数据,节点信息和健康状况。
### 3. Node Agents
如果 Cluster Agent(也称为 `cattle-cluster-agent`)不可用,其中一个 Node Agent 会创建一个连接到 Cluster Controller 的通道与 Rancher 通信。
`cattle-node-agent` 使用 [DaemonSet](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/) 资源进行部署,以确保它能在 Rancher 启动的 Kubernetes 集群中的每个节点上运行,用于在执行集群操作时与节点交互。集群操作的包括升级 Kubernetes 版本,创建或恢复 etcd 快照等。
### 4. 授权集群端点
授权集群端点(ACE)可连接到下游集群的 Kubernetes API Server,而不用通过 Rancher 认证代理调度请求。
> 授权集群端点仅适用于 Rancher 启动的 Kubernetes 集群,即 [Rancher 配置的集群](../../how-to-guides/new-user-guides/launch-kubernetes-with-rancher/launch-kubernetes-with-rancher.md) 它不适用于导入的集群,也不适用于托管在 Kubernetes 提供商中的集群(例如 Amazon 的 EKS)。
授权集群端点的主要用途:
- 在 Rancher 不可用时访问下游集群
- 在 Rancher Server 和与下游集群之间相距甚远时降低延迟
`kube-api-auth` 微服务为授权集群端点提供用户验证功能。当使用 `kubectl`访问下游集群时,集群的 Kubernetes API Server 使用 `kube-api-auth` 服务作为 webhook 对用户进行身份验证。
与授权集群端点一样,`kube-api-auth` 的身份验证功能也仅适用于 Rancher 启动的 Kubernetes 集群。
> **示例场景:** 假设 Rancher Server 位于美国,User Cluster 1 与用户 Alice 均位于澳大利亚。Alice 可以使用 Rancher UI 操作 User Cluster 1 中的资源,但她的请求必须从澳大利亚发送到美国的 Rancher Server,然后通过代理返回澳大利亚,即下游集群所在的位置。地理距离可能导致明显延迟,因此,Alice 可以使用授权集群端点来降低延迟。
为下游集群启用授权集群端点后,Rancher 会在 kubeconfig 文件中额外生成一段 Kubernetes 上下文,用于直连到集群。该文件具有 `kubectl` 和 `helm`的凭证。
如果 Rancher 出现问题,你需要使用此 kubeconfig 文件中定义的上下文来访问集群。因此,我们建议你导出 kubeconfig 文件,以便在 Rancher 出现问题时,仍能使用文件中的凭证访问集群。详情请参见使用 [kubectl 和 kubeconfig 文件](../../how-to-guides/new-user-guides/manage-clusters/access-clusters/use-kubectl-and-kubeconfig.md)访问集群的章节。
## 重要文件
维护、排除问题和升级集群需要用到以下文件,请妥善保管这些文件:
- `config.yaml`: The RKE2 and K3s cluster configuration file.
- `rke2.yaml` or `k3s.yaml`: The Kubeconfig file for your RKE2 or K3s cluster. This file contains credentials for full access to the cluster. You can use this file to authenticate with a Rancher-launched Kubernetes cluster if Rancher goes down.
有关在没有 Rancher 认证代理和其他配置选项的情况下连接到集群的更多信息,请参见 [kubeconfig 文件](../../how-to-guides/new-user-guides/manage-clusters/access-clusters/use-kubectl-and-kubeconfig.md)。
## 配置 Kubernetes 集群的工具
Rancher 使用什么工具配置下游集群,取决于集群的类型。
### Rancher 为托管在云提供商中的节点启动 Kubernetes
Rancher 可以动态启动云上(如 Amazon EC2、DigitalOcean、Azure 或 vSphere 等)的节点,然后在节点上安装 Kubernetes。
Rancher 使用 [docker-machine](https://github.com/rancher/machine) 来配置这类型的集群。
### Rancher Launched Kubernetes for Custom Nodes
When setting up this type of cluster, Rancher installs Kubernetes on existing nodes, which creates a custom cluster.
Rancher provisions this type of cluster using [RKE2](https://github.com/rancher/rke2) or [K3s](https://github.com/rancher/k3s).
### 托管的 Kubernetes 提供商
配置此类集群时,Kubernetes 由云提供商安装,如 GKE、ECS 或 AKS 等。
Rancher 使用 [kontainer-engine](https://github.com/rancher/kontainer-engine) 配置此类型的集群。
### 导入的 Kubernetes 集群
这种情况下,Rancher 需要连接到一个设置好的 Kubernetes 集群。因此,Rancher 不提供 Kubernetes,只设置 Rancher Agent 实现与集群通信。
## Rancher Server 组件和源码
下图展示了 Rancher Server 的组件:
![Rancher 组件](/img/rancher-architecture-rancher-components.svg)
Rancher 的 GitHub 代码仓库如下:
- [Rancher Server 主代码库](https://github.com/rancher/rancher)
- [Rancher UI](https://github.com/rancher/ui)
- [Rancher API UI](https://github.com/rancher/api-ui)
- [Norman](https://github.com/rancher/norman)(Rancher 的 API 框架)
- [类型](https://github.com/rancher/types)
- [Rancher CLI](https://github.com/rancher/cli)
- [应用商店](https://github.com/rancher/helm)
以上仅列出部分 Rancher 最重要的仓库。详情请参见[参与 Rancher 开源贡献](../../contribute-to-rancher.md#rancher-仓库)。如需获取 Rancher 使用的所有库和项目,请参见 `rancher/rancher` 仓库中的 [`go.mod` 文件](https://github.com/rancher/rancher/blob/master/go.mod)。
@@ -0,0 +1,20 @@
---
title: 架构
---
<head>
<link rel="canonical" href="https://ranchermanager.docs.rancher.com/reference-guides/rancher-manager-architecture"/>
</head>
本章节重点介绍 [Rancher Server 及其组件](rancher-server-and-components.md) 以及 [Rancher 如何与下游 Kubernetes 集群通信](communicating-with-downstream-user-clusters.md)
有关安装 Rancher 的不同方式的信息,请参见[安装选项概述](../../getting-started/installation-and-upgrade/installation-and-upgrade.md#安装方式概述)。
有关 Rancher API Server 的主要功能,请参见[概述](../../getting-started/overview.md#rancher-api-server-的功能)。
有关如何为 Rancher Server 设置底层基础架构,请参见[架构推荐](architecture-recommendations.md)。
:::note
本节默认你已对 Docker 和 Kubernetes 有一定的了解。如果你需要了解 Kubernetes 组件如何协作,请参见 [Kubernetes 概念](../kubernetes-concepts.md)。
:::
@@ -0,0 +1,35 @@
---
title: Rancher Server 和 Components
---
大多数 Rancher 2.x 软件均运行在 Rancher Server 上。Rancher Server 包括用于管理整个 Rancher 部署的所有软件组件。
下图展示了 Rancher 2.x 的上层架构。下图中,Rancher Server 管理两个下游 Kubernetes 集群,其中一个由 RKE 创建,另一个由 Amazon EKS 创建。
为了达到最佳性能和安全性,我们建议你为 Rancher Management Server 创建一个专用的 Kubernetes 集群。不建议在此集群上运行用户工作负载。部署 Rancher 后,你可以[创建或导入集群](../../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/kubernetes-clusters-in-rancher-setup.md)来运行你的工作负载。
下图介绍了用户如何通过 Rancher 的认证代理管理 [Rancher 启动的 Kubernetes](../../how-to-guides/new-user-guides/launch-kubernetes-with-rancher/launch-kubernetes-with-rancher.md) 集群和[托管的 Kubernetes](../../how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/set-up-clusters-from-hosted-kubernetes-providers.md) 集群:
<figcaption>通过 Rancher 的认证代理管理 Kubernetes 集群</figcaption>
![架构](/img/rancher-architecture-rancher-api-server.svg)
你可以把 Rancher 安装到单个节点或高可用 Kubernetes 集群上。
在生产环境中,建议安装到高可用 Kubernetes 集群。
Rancher 的 Docker 安装仅推荐用于开发和测试环境中。Rancher 版本决定了能否将 Rancher 迁移到高可用集群。
要查看已部署的资源,运行以下命令:
```bash
kubectl get all -n <namespace>
```
如果你具有管理员权限,你还可以在 Rancher UI 中看到列出的资源:
1. 单击 **☰** 并选择一个集群。
1. 从侧面导航菜单中选择**更多资源**,从而按类型查看已部署的资源。
1. 从侧面导航菜单中选择**集群** > **项目/命名空间**,然后选择一个命名空间,从而按命名空间查看已部署的资源。
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 Server 是如何安装的,它都应该运行在与其管理的下游集群不同节点上。如果 Rancher 安装在高可用的 Kubernetes 集群上,它需要运行在与其管理的集群不同的集群上。