mirror of
https://github.com/rancher/rancher-docs.git
synced 2026-09-27 13:38:07 +00:00
Add v2.14 preview docs (#2212)
This commit is contained in:
+66
@@ -0,0 +1,66 @@
|
||||
---
|
||||
title: 架构推荐
|
||||
---
|
||||
|
||||
如果你准备在单个节点上安装 Rancher,我们推荐你[分开部署 Rancher 与下游集群](#分开部署-rancher-与下游集群)。
|
||||
|
||||
## 分开部署 Rancher 与下游集群
|
||||
|
||||
下游集群,是运行你自己的应用和服务的下游 Kubernetes 集群。
|
||||
|
||||
如果你通过 Docker 安装了 Rancher,运行 Rancher Server 的节点应该与你的下游集群分开。
|
||||
|
||||
如果你需要使用 Rancher 管理下游 Kubernetes 集群,那么运行 Rancher Server 的 Kubernetes 集群也应该与下游集群分开。
|
||||
|
||||

|
||||
|
||||
## 为什么高可用(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>
|
||||
|
||||

|
||||
|
||||
## 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>
|
||||
|
||||

|
||||
|
||||
## 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 的步骤。
|
||||
+131
@@ -0,0 +1,131 @@
|
||||
---
|
||||
title: 与下游集群通信
|
||||
---
|
||||
|
||||
本节介绍 Rancher 如何配置和管理运行应用和服务的下游集群。
|
||||
|
||||
下图显示了 Cluster Controller、Cluster Agent 和 Node Agent 让 Rancher 控制下游集群的。
|
||||
|
||||
<figcaption>与下游集群通信</figcaption>
|
||||
|
||||

|
||||
|
||||
以下描述对应于上图中的数字:
|
||||
|
||||
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 的 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)。
|
||||
+20
@@ -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)。
|
||||
|
||||
:::
|
||||
+35
@@ -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>
|
||||
|
||||

|
||||
|
||||
你可以把 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 集群上,它需要运行在与其管理的集群不同的集群上。
|
||||
Reference in New Issue
Block a user