mirror of
https://github.com/rancher/rancher-docs.git
synced 2026-09-25 04:28:15 +00:00
Merge pull request #2031 from sunilarjun/rke1-removal
RKE1 removal/updates - /getting-started pages
This commit is contained in:
-47
@@ -1,47 +0,0 @@
|
||||
---
|
||||
title: Dockershim
|
||||
---
|
||||
|
||||
Dockershim 是 Kubelet 和 Docker Daemon 之间的 CRI 兼容层。Kubernetes 1.20 版本宣布了[移除树内 Dockershim](https://kubernetes.io/blog/2020/12/02/dont-panic-kubernetes-and-docker/)。有关此移除的更多信息以及时间线,请参见 [Kubernetes Dockershim 弃用相关的常见问题](https://kubernetes.io/blog/2020/12/02/dockershim-faq/#when-will-dockershim-be-removed)。
|
||||
|
||||
RKE 集群现在支持外部 Dockershim,来让用户继续使用 Docker 作为 CRI 运行时。现在,我们通过使用 [Mirantis 和 Docker ](https://www.mirantis.com/blog/mirantis-to-take-over-support-of-kubernetes-dockershim-2/) 来确保 RKE 集群可以继续使用 Docker,从而实现上游开源社区的外部 Dockershim。
|
||||
|
||||
RKE2 和 K3s 集群使用嵌入的 containerd 作为容器运行时,因此不受影响。
|
||||
|
||||
要在 1.24 之前的 RKE 版本中启用外部 Dockershim,请配置以下选项:
|
||||
|
||||
```
|
||||
enable_cri_dockerd: true
|
||||
```
|
||||
|
||||
从 1.24 版本开始,以上默认为 true。
|
||||
|
||||
如果你想使用其他容器运行时,Rancher 也提供使用 Containerd 作为默认运行时的,以边缘为中心的 K3s,和以数据中心为中心的 RKE2 Kubernetes 发行版。然后,你就可以通过 Rancher 对导入的 RKE2 和 K3s Kubernetes 集群进行升级和管理。
|
||||
|
||||
## 常见问题
|
||||
|
||||
<br/>
|
||||
|
||||
Q:是否必须升级 Rancher 才能获得 Rancher 对上游外部 Dockershim 替换的支持?
|
||||
|
||||
A:对于 RKE,Dockershim `cri_dockerd` 替换的上游支持从 Kubernetes 1.21 开始。你需要使用支持 RKE 1.21 的 Rancher 版本。详情请参见我们的支持矩阵。
|
||||
|
||||
<br/>
|
||||
|
||||
Q:我目前的 RKE 使用 Kubernetes 1.23。如果上游最终在 1.24 中删除 Dockershim,会发生什么?
|
||||
|
||||
A:RKE 中带有 Kubernetes 的 Dockershim 版本将继续工作到 1.23。有关时间线的更多信息,请参见 [Kubernetes Dockershim 弃用相关的常见问题](https://kubernetes.io/blog/2020/12/02/dockershim-faq/#when-will-dockershim-be-removed)。从 1.24 开始,RKE 将默认启用 `cri_dockerd` 并在之后的版本中继续启用。
|
||||
|
||||
<br/>
|
||||
|
||||
Q: 如果我不想再依赖 Dockershim 或 cri_dockerd,我还有什么选择?
|
||||
|
||||
A: 你可以为 Kubernetes 使用不需要 Dockershim 支持的运行时,如 Containerd。RKE2 和 K3s 就是其中的两个选项。
|
||||
|
||||
<br/>
|
||||
|
||||
Q: 如果我目前使用 RKE1,但想切换到 RKE2,我可以怎样进行迁移?
|
||||
|
||||
A: 你可以构建一个新集群,然后将工作负载迁移到使用 Containerd 的新 RKE2 集群。Rancher 也在探索就地升级路径的可能性。
|
||||
|
||||
<br/>
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
---
|
||||
title: 安装 Docker
|
||||
---
|
||||
|
||||
在使用 Helm 在 RKE 集群节点上或使用 Docker 安装 Rancher Server 前,你需要在节点中先安装 Docker。RKE2 和 K3s 集群不要求使用 Docker。
|
||||
|
||||
Docker 有几个安装方法。一种方法是参见 [Docker 官方文档](https://docs.docker.com/install/)以了解如何在 Linux 上安装 Docker。不同 Linux 发行版的安装步骤可能有所不同。
|
||||
|
||||
另一种方式是使用 Rancher 的 Docker 安装脚本,该脚本可用于较新的 Docker 版本。 Rancher 为每个 Kubernetes 支持的上游 Docker 版本提供了安装脚本。
|
||||
|
||||
例如,此命令可用于在 SUSE Linux Enterprise 或 Ubuntu 等主要 Linux 发行版上安装 Docker :
|
||||
|
||||
```bash
|
||||
curl https://releases.rancher.com/install-docker/<version-number>.sh | sh
|
||||
```
|
||||
|
||||
请参阅 [Rancher 支持矩阵](https://www.suse.com/suse-rancher/support-matrix),使用匹配你的操作系统和 Rancher 版本并且经过验证的 Docker 版本。 尽管支持矩阵列出了经过验证的 Docker 版本直至补丁版本,但只有发行版的主要版本和次要版本与 Docker 安装脚本相关。
|
||||
|
||||
请注意,必须应用以下 sysctl 设置:
|
||||
|
||||
```bash
|
||||
net.bridge.bridge-nf-call-iptables=1
|
||||
```
|
||||
+4
-36
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: 安装要求
|
||||
description: 如果 Rancher 配置在 Docker 或 Kubernetes 中运行时,了解运行 Rancher Server 的每个节点的节点要求
|
||||
description: Learn the node requirements for each node running Rancher server when you’re configuring Rancher to run either in a Kubernetes setup
|
||||
---
|
||||
|
||||
本文描述了对需要安装 Rancher Server 的节点的软件、硬件和网络要求。Rancher Server 可以安装在单个节点或高可用的 Kubernetes 集群上。
|
||||
@@ -27,7 +27,7 @@ Rancher 需要安装在支持的 Kubernetes 版本上。请查阅 [Rancher 支
|
||||
|
||||
所有支持的操作系统都使用 64-bit x86 架构。Rancher 兼容当前所有的主流 Linux 发行版。
|
||||
|
||||
[Rancher 支持矩阵](https://www.suse.com/suse-rancher/support-matrix/all-supported-versions)列出了每个 Rancher 版本测试过的操作系统和 Docker 版本。
|
||||
The [Rancher support matrix](https://www.suse.com/suse-rancher/support-matrix/all-supported-versions) lists which OS versions were tested for each Rancher version.
|
||||
|
||||
运行 RKE 集群的节点需要安装 Docker。RKE2 或 K3s 集群不需要它。
|
||||
|
||||
@@ -41,7 +41,7 @@ Rancher 需要安装在支持的 Kubernetes 版本上。请查阅 [Rancher 支
|
||||
|
||||
### RKE2 要求
|
||||
|
||||
对于容器运行时,RKE2 附带了自己的 containerd。RKE2 安装不需要 Docker。
|
||||
对于容器运行时,RKE2 附带了自己的 containerd.
|
||||
|
||||
如需了解 RKE2 通过了哪些操作系统版本的测试,请参见 [Rancher 支持矩阵](https://www.suse.com/suse-rancher/support-matrix/all-supported-versions)。
|
||||
|
||||
@@ -150,41 +150,13 @@ Rancher 的代码库不断发展,用例不断变化,Rancher 积累的经验
|
||||
|
||||
(*):大规模的部署需要你[遵循最佳实践](../../../reference-guides/best-practices/rancher-server/tuning-and-best-practices-for-rancher-at-scale.md)以获得足够的性能。
|
||||
|
||||
|
||||
### RKE
|
||||
|
||||
下面的表格列出了[上游集群](../install-upgrade-on-a-kubernetes-cluster/install-upgrade-on-a-kubernetes-cluster.md)中每个节点最小的 CPU 和内存要求。
|
||||
|
||||
请注意,生产环境下的高可用安装最少需要 3 个节点。
|
||||
|
||||
| 部署规模 | 最大集群数量 | 最大节点数量 | vCPUs | 内存 |
|
||||
|-----------------------------|----------------------------|-------------------------|-------|-------|
|
||||
| 小 | 150 | 1500 | 4 | 16 GB |
|
||||
| 中 | 300 | 3000 | 8 | 32 GB |
|
||||
| 大 (*) | 500 | 5000 | 16 | 64 GB |
|
||||
|
||||
(*): 大规模的部署需要你[遵循最佳实践](../../../reference-guides/best-practices/rancher-server/tuning-and-best-practices-for-rancher-at-scale.md)以获得足够的性能。
|
||||
|
||||
有关 RKE 一般要求的更多详细信息,请参见 [RKE 文档](https://rke.docs.rancher.com/os)。
|
||||
|
||||
### Docker
|
||||
|
||||
下面的表格列出了[上游集群](../install-upgrade-on-a-kubernetes-cluster/install-upgrade-on-a-kubernetes-cluster.md)中每个节点最小的 CPU 和内存要求。
|
||||
|
||||
请注意,在 Docker 中安装 Rancher 仅适用于开发或测试目的。不建议在生产环境中使用。
|
||||
|
||||
| 部署规模 | 最大集群数量 | 最大节点数量 | vCPUs | 内存 |
|
||||
|-----------------------------|----------------------------|-------------------------|-------|------|
|
||||
| 小 | 5 | 50 | 1 | 4 GB |
|
||||
| 中 | 15 | 200 | 2 | 8 GB |
|
||||
|
||||
## Ingress
|
||||
|
||||
安装 Rancher 的 Kubernetes 集群中的每个节点都应该运行一个 Ingress。
|
||||
|
||||
Ingress 需要部署为 DaemonSet 以确保负载均衡器能成功把流量转发到各个节点。
|
||||
|
||||
如果是 RKE,RKE2 和 K3s 安装,你不需要手动安装 Ingress,因为它是默认安装的。
|
||||
如果是 RKE2 和 K3s 安装,你不需要手动安装 Ingress,因为它是默认安装的。
|
||||
|
||||
对于托管的 Kubernetes 集群(EKS、GKE、AKS),你需要设置 Ingress。
|
||||
|
||||
@@ -213,7 +185,3 @@ etcd 在集群中的性能决定了 Rancher 的性能。因此,为了获得最
|
||||
### 端口要求
|
||||
|
||||
为了确保能正常运行,Rancher 需要在 Rancher 节点和下游 Kubernetes 集群节点上开放一些端口。不同集群类型的 Rancher 和下游集群的所有必要端口,请参见[端口要求](port-requirements.md)。
|
||||
|
||||
## Dockershim 支持
|
||||
|
||||
有关 Dockershim 支持的详情,请参见[此页面](dockershim.md)。
|
||||
|
||||
+1
-49
@@ -15,7 +15,7 @@ import PortsImportedHosted from '@site/src/components/PortsImportedHosted'
|
||||
|
||||
不同的 Rancher Server 架构有不同的端口要求。
|
||||
|
||||
Rancher 可以安装在任何 Kubernetes 集群上。如果你的 Rancher 安装在 K3s、RKE 或 RKE2 Kubernetes 集群上,请参考下面的标签页。对于其他 Kubernetes 发行版,请参见该发行版的文档,了解集群节点的端口要求。
|
||||
Rancher 可以安装在任何 Kubernetes 集群上。如果你的 Rancher 安装在 K3s 或 RKE2 Kubernetes 集群上,请参考下面的标签页。对于其他 Kubernetes 发行版,请参见该发行版的文档,了解集群节点的端口要求。
|
||||
|
||||
:::note 注意事项:
|
||||
|
||||
@@ -66,54 +66,6 @@ K3s server 需要开放端口 6443 才能供节点访问。
|
||||
|
||||
</details>
|
||||
|
||||
### RKE 上 Rancher Server 节点的端口
|
||||
|
||||
<details>
|
||||
<summary>单击展开</summary>
|
||||
|
||||
通常情况下,Rancher 安装在三个 RKE 节点上,这些节点都有 etcd、controlplane 和 worker 角色。
|
||||
|
||||
|
||||
|
||||
下表描述了 Rancher 节点之间流量的端口要求:
|
||||
|
||||
<figcaption>Rancher 节点的流量规则</figcaption>
|
||||
|
||||
| 协议 | 端口 | 描述 |
|
||||
|-----|-----|----------------|
|
||||
| TCP | 443 | Rancher Agents |
|
||||
| TCP | 2379 | etcd 客户端请求 |
|
||||
| TCP | 2380 | etcd 对等通信 |
|
||||
| TCP | 6443 | Kubernetes apiserver |
|
||||
| TCP | 8443 | NGINX Ingress 的验证 Webhook |
|
||||
| UDP | 8472 | Canal/Flannel VXLAN 覆盖网络 |
|
||||
| TCP | 9099 | Canal/Flannel livenessProbe/readinessProbe |
|
||||
| TCP | 10250 | Metrics Server 与所有节点的通信 |
|
||||
| TCP | 10254 | Ingress controller livenessProbe/readinessProbe |
|
||||
|
||||
下表描述了入站和出站流量的端口要求:
|
||||
|
||||
<figcaption>Rancher 节点的入站规则</figcaption>
|
||||
|
||||
| 协议 | 端口 | 源 | 描述 |
|
||||
|-----|-----|----------------|---|
|
||||
| TCP | 22 | RKE CLI | RKE 通过 SSH 配置节点 |
|
||||
| TCP | 80 | 负载均衡器/反向代理 | 到 Rancher UI/API 的 HTTP 流量 |
|
||||
| TCP | 443 | <ul><li>负载均衡器/反向代理</li><li>所有集群节点和其他 API/UI 客户端的 IP</li></ul> | 到 Rancher UI/API 的 HTTPS 流量 |
|
||||
| TCP | 6443 | Kubernetes API 客户端 | 到 Kubernetes API 的 HTTPS 流量 |
|
||||
|
||||
<figcaption>Rancher 节点的出站规则</figcaption>
|
||||
|
||||
| 协议 | 端口 | 目标 | 描述 |
|
||||
|-----|-----|----------------|---|
|
||||
| TCP | 443 | git.rancher.io | Rancher catalog |
|
||||
| TCP | 22 | 使用 Node Driver 创建的任何节点 | Node Driver 通过 SSH 配置节点 |
|
||||
| TCP | 2376 | 使用 Node Driver 创建的任何节点 | Node Driver 使用的 Docker daemon TLS 端口 |
|
||||
| TCP | 6443 | 托管/导入的 Kubernetes API | Kubernetes API Server |
|
||||
| TCP | 提供商依赖 | 托管集群中 Kubernetes API 端点的端口 | Kubernetes API |
|
||||
|
||||
</details>
|
||||
|
||||
### RKE2 上 Rancher Server 节点的端口
|
||||
|
||||
<details>
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ title: 离线 Helm CLI 安装
|
||||
|
||||
本文介绍如何使用 Helm CLI 在离线环境中安装 Rancher Server。离线环境可以是 Rancher Server 离线安装、防火墙后面或代理后面。
|
||||
|
||||
Rancher 安装在 RKE Kubernetes 集群、K3s Kubernetes 集群,或单个 Docker 容器上对应的安装步骤会有所不同。
|
||||
Rancher 安装在 K3s Kubernetes 集群,或单个 Docker 容器上对应的安装步骤会有所不同。
|
||||
|
||||
如需了解各个安装方式的更多信息,请参见[本页](../../installation-and-upgrade.md)。
|
||||
|
||||
|
||||
+1
-94
@@ -12,7 +12,7 @@ title: '3. 安装 Kubernetes(Docker 安装请跳过)'
|
||||
|
||||
Rancher 可以安装在任何 Kubernetes 集群上,包括托管的 Kubernetes。
|
||||
|
||||
在 RKE、RKE2 或 K3s 上离线安装 Kubernetes 集群的步骤如下所示:
|
||||
在 RKE2 或 K3s 上离线安装 Kubernetes 集群的步骤如下所示:
|
||||
|
||||
<Tabs>
|
||||
<TabItem value="K3s">
|
||||
@@ -283,102 +283,9 @@ kubectl --kubeconfig ~/.kube/config/rke2.yaml get pods --all-namespaces
|
||||
2. 使用相同的环境变量再次运行脚本。
|
||||
3. 重启 RKE2 服务。
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="RKE">
|
||||
我们将使用 Rancher Kubernetes Engine (RKE) 创建一个 Kubernetes 集群。在启动 Kubernetes 集群之前,你需要安装 RKE 并创建 RKE 配置文件。
|
||||
|
||||
### 1. 安装 RKE
|
||||
|
||||
参照 [RKE 官方文档](https://rancher.com/docs/rke/latest/en/installation/)的说明安装 RKE。
|
||||
|
||||
:::note
|
||||
|
||||
你可以在 [Rancher 支持矩阵](https://www.suse.com/suse-rancher/support-matrix/all-supported-versions/)中找到基于 Rancher 版本的 RKE 认证版本。
|
||||
|
||||
:::
|
||||
|
||||
### 2. 创建 RKE 配置文件
|
||||
|
||||
在可访问你 Linux 主机节点上的 22/TCP 端口和 6443/TCP 端口的系统上,使用以下示例创建一个名为 `rancher-cluster.yml` 的新文件。
|
||||
|
||||
该文件是 RKE 配置文件,用于配置你要部署 Rancher 的集群。
|
||||
|
||||
参考下方的 _RKE 选项_ 表格,修改代码示例中的参数。使用你创建的三个节点的 IP 地址或 DNS 名称。
|
||||
|
||||
:::tip
|
||||
|
||||
如需获取可用选项的详情,请参见 RKE [配置选项](https://rancher.com/docs/rke/latest/en/config-options/)。
|
||||
|
||||
:::
|
||||
|
||||
<figcaption>RKE 选项</figcaption>
|
||||
|
||||
| 选项 | 必填 | 描述 |
|
||||
| ------------------ | -------------------- | --------------------------------------------------------------------------------------- |
|
||||
| `address` | ✓ | 离线环境中节点的 DNS 或 IP 地址 |
|
||||
| `user` | ✓ | 可运行 Docker 命令的用户 |
|
||||
| `role` | ✓ | 分配给节点的 Kubernetes 角色列表 |
|
||||
| `internal_address` | 可选<sup>1</sup> | 用于集群内部流量的 DNS 或 IP 地址 |
|
||||
| `ssh_key_path` | | 用来验证节点的 SSH 私钥文件路径(默认值为 `~/.ssh/id_rsa`) |
|
||||
|
||||
> <sup>1</sup> 如果你想使用引用安全组或防火墙,某些服务(如 AWS EC2)要求设置 `internal_address`。
|
||||
|
||||
```yaml
|
||||
nodes:
|
||||
- address: 10.10.3.187 # 离线环境节点 IP
|
||||
internal_address: 172.31.7.22 # 节点内网 IP
|
||||
user: rancher
|
||||
role: ['controlplane', 'etcd', 'worker']
|
||||
ssh_key_path: /home/user/.ssh/id_rsa
|
||||
- address: 10.10.3.254 # 离线环境节点 IP
|
||||
internal_address: 172.31.13.132 # 节点内网 IP
|
||||
user: rancher
|
||||
role: ['controlplane', 'etcd', 'worker']
|
||||
ssh_key_path: /home/user/.ssh/id_rsa
|
||||
- address: 10.10.3.89 # 离线环境节点 IP
|
||||
internal_address: 172.31.3.216 # 节点内网 IP
|
||||
user: rancher
|
||||
role: ['controlplane', 'etcd', 'worker']
|
||||
ssh_key_path: /home/user/.ssh/id_rsa
|
||||
|
||||
private_registries:
|
||||
- url: <REGISTRY.YOURDOMAIN.COM:PORT> # 私有镜像仓库 URL
|
||||
user: rancher
|
||||
password: '*********'
|
||||
is_default: true
|
||||
```
|
||||
|
||||
### 3. 运行 RKE
|
||||
|
||||
配置 `rancher-cluster.yml`后,启动你的 Kubernetes 集群:
|
||||
|
||||
```
|
||||
rke up --config ./rancher-cluster.yml
|
||||
```
|
||||
|
||||
### 4. 保存你的文件
|
||||
|
||||
:::note 重要提示:
|
||||
|
||||
维护、排除问题和升级集群需要用到以下文件,请妥善保管这些文件:
|
||||
|
||||
:::
|
||||
|
||||
将以下文件的副本保存在安全位置:
|
||||
|
||||
- `rancher-cluster.yml`:RKE 集群配置文件。
|
||||
- `kube_config_cluster.yml`:集群的 [Kubeconfig 文件](https://rancher.com/docs/rke/latest/en/kubeconfig/)。该文件包含可完全访问集群的凭证。
|
||||
- `rancher-cluster.rkestate`:[Kubernetes 集群状态文件](https://rancher.com/docs/rke/latest/en/installation/#kubernetes-cluster-state)。该文件包含集群的当前状态,包括 RKE 配置以及证书<br/>。<br/>_Kubernetes 集群状态文件仅在使用 RKE 0.2.0 或更高版本时创建。_
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
:::note
|
||||
|
||||
后两个文件名中的 `rancher-cluster` 部分取决于你命名 RKE 集群配置文件的方式。
|
||||
|
||||
:::
|
||||
|
||||
### 故障排除
|
||||
|
||||
参见[故障排除](../../install-upgrade-on-a-kubernetes-cluster/troubleshooting.md)页面。
|
||||
|
||||
+1
-147
@@ -4,7 +4,7 @@ title: '2. 安装 Kubernetes'
|
||||
|
||||
基础设施配置好后,你可以设置一个 Kubernetes 集群来安装 Rancher。
|
||||
|
||||
设置 RKE、RKE2 或 K3s 的步骤如下所示。
|
||||
设置 RKE2 或 K3s 的步骤如下所示。
|
||||
|
||||
为方便起见,将代理的 IP 地址和端口导出到一个环境变量中,并在每个节点上为你当前的 shell 设置 HTTP_PROXY 变量:
|
||||
|
||||
@@ -92,152 +92,6 @@ kubectl cluster-info
|
||||
kubectl get pods --all-namespaces
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="RKE">
|
||||
|
||||
首先,你需要在所有三个 Linux 节点上安装 Docker 并设置 HTTP 代理。因此,你可以在这三个节点上执行以下步骤。
|
||||
|
||||
接下来配置 apt 以在安装包时使用这个代理。如果你使用的不是 Ubuntu,请相应调整步骤。
|
||||
|
||||
```
|
||||
cat <<'EOF' | sudo tee /etc/apt/apt.conf.d/proxy.conf > /dev/null
|
||||
Acquire::http::Proxy "http://${proxy_host}/";
|
||||
Acquire::https::Proxy "http://${proxy_host}/";
|
||||
EOF
|
||||
```
|
||||
|
||||
安装 Docker:
|
||||
|
||||
```
|
||||
curl -sL https://releases.rancher.com/install-docker/19.03.sh | sh
|
||||
```
|
||||
|
||||
然后,确保你的当前用户能够在没有 sudo 的情况下访问 Docker Daemon:
|
||||
|
||||
```
|
||||
sudo usermod -aG docker YOUR_USERNAME
|
||||
```
|
||||
|
||||
配置 Docker Daemon 使用代理来拉取镜像:
|
||||
|
||||
```
|
||||
sudo mkdir -p /etc/systemd/system/docker.service.d
|
||||
cat <<'EOF' | sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf > /dev/null
|
||||
[Service]
|
||||
Environment="HTTP_PROXY=http://${proxy_host}"
|
||||
Environment="HTTPS_PROXY=http://${proxy_host}"
|
||||
Environment="NO_PROXY=127.0.0.0/8,10.0.0.0/8,cattle-system.svc,172.16.0.0/12,192.168.0.0/16"
|
||||
EOF
|
||||
```
|
||||
|
||||
要应用配置,请重新启动 Docker Daemon:
|
||||
|
||||
```
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl restart docker
|
||||
```
|
||||
|
||||
#### 离线代理
|
||||
|
||||
你现在可以在配置的离线集群中配置主机驱动集群,以使用代理进行出站连接。
|
||||
|
||||
除了为代理服务器设置默认规则外,你还需要额外添加如下所示的规则,以从代理的 Rancher 环境中配置主机驱动集群。
|
||||
|
||||
根据你的设置配置文件路径,例如 `/etc/apt/apt.conf.d/proxy.conf`:
|
||||
|
||||
```
|
||||
acl SSL_ports port 22
|
||||
acl SSL_ports port 2376
|
||||
|
||||
acl Safe_ports port 22 # ssh
|
||||
acl Safe_ports port 2376 # docker port
|
||||
```
|
||||
|
||||
### 创建 RKE 集群
|
||||
|
||||
在能通过 SSH 访问 Linux 节点的主机上,你需要有几个命令行工具,来创建集群并与之交互:
|
||||
|
||||
* [RKE CLI binary](https://rancher.com/docs/rke/latest/en/installation/#download-the-rke-binary)
|
||||
|
||||
```
|
||||
sudo curl -fsSL -o /usr/local/bin/rke https://github.com/rancher/rke/releases/download/v1.1.4/rke_linux-amd64
|
||||
sudo chmod +x /usr/local/bin/rke
|
||||
```
|
||||
|
||||
* [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/)
|
||||
|
||||
```
|
||||
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
|
||||
chmod +x ./kubectl
|
||||
sudo mv ./kubectl /usr/local/bin/kubectl
|
||||
```
|
||||
|
||||
接下来,创建一个描述 RKE 集群的 YAML 文件。确保节点的 IP 地址和 SSH 用户名是正确的。有关集群 YAML 的详情,请参见 [RKE 官方文档](https://rancher.com/docs/rke/latest/en/example-yamls/)。
|
||||
|
||||
```yml
|
||||
nodes:
|
||||
- address: 10.0.1.200
|
||||
user: ubuntu
|
||||
role: [controlplane,worker,etcd]
|
||||
- address: 10.0.1.201
|
||||
user: ubuntu
|
||||
role: [controlplane,worker,etcd]
|
||||
- address: 10.0.1.202
|
||||
user: ubuntu
|
||||
role: [controlplane,worker,etcd]
|
||||
|
||||
services:
|
||||
etcd:
|
||||
backup_config:
|
||||
interval_hours: 12
|
||||
retention: 6
|
||||
```
|
||||
|
||||
之后,你可以通过运行以下命令来创建 Kubernetes 集群:
|
||||
|
||||
```
|
||||
rke up --config rancher-cluster.yaml
|
||||
```
|
||||
|
||||
RKE 会创建一个名为 `rancher-cluster.rkestate` 的状态文件。如果你需要更新或修改集群配置,或使用备份恢复集群,则需要使用该文件。RKE 还会创建一个 `kube_config_cluster.yaml` 文件,你可以使用该文件在本地使用 kubectl 或 Helm 等工具连接到远端的 Kubernetes 集群。请将这些文件保存在安全的位置,例如版本控制系统中。
|
||||
|
||||
如需查看集群,请运行以下命令:
|
||||
|
||||
```
|
||||
export KUBECONFIG=kube_config_cluster.yaml
|
||||
kubectl cluster-info
|
||||
kubectl get pods --all-namespaces
|
||||
```
|
||||
|
||||
你也可以验证你的外部负载均衡器是否工作,DNS 条目是否设置正确。如果你向其中之一发送请求,你会收到来自 Ingress Controller 的 HTTP 404 响应:
|
||||
|
||||
```
|
||||
$ curl 10.0.1.100
|
||||
default backend - 404
|
||||
$ curl rancher.example.com
|
||||
default backend - 404
|
||||
```
|
||||
|
||||
### 保存你的文件
|
||||
|
||||
:::note 重要提示:
|
||||
|
||||
维护、排除问题和升级集群需要用到以下文件,请妥善保管这些文件:
|
||||
|
||||
:::
|
||||
|
||||
将以下文件的副本保存在安全位置:
|
||||
|
||||
- `rancher-cluster.yml`:RKE 集群配置文件。
|
||||
- `kube_config_cluster.yml`:集群的 [Kubeconfig 文件](https://rancher.com/docs/rke/latest/en/kubeconfig/)。该文件包含可完全访问集群的凭证。
|
||||
- `rancher-cluster.rkestate`:[Kubernetes 集群状态文件](https://rancher.com/docs/rke/latest/en/installation/#kubernetes-cluster-state)。此文件包含集群的当前状态,包括 RKE 配置和证书。
|
||||
|
||||
:::note
|
||||
|
||||
后两个文件名中的 `rancher-cluster` 部分取决于你命名 RKE 集群配置文件的方式。
|
||||
|
||||
:::
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
title: 3. 安装 Rancher
|
||||
---
|
||||
|
||||
在前文的操作后,你已经有了一个运行的 RKE 集群,现在可以在其中安装 Rancher 了。出于安全考虑,所有到 Rancher 的流量都必须使用 TLS 加密。在本教程中,你将使用 [cert-manager](https://cert-manager.io/)自动颁发自签名证书。在实际使用情况下,你可使用 Let's Encrypt 或自己的证书。
|
||||
在前文的操作后,你已经有了一个运行的 RKE2/K3s 集群,现在可以在其中安装 Rancher 了。出于安全考虑,所有到 Rancher 的流量都必须使用 TLS 加密。在本教程中,你将使用 [cert-manager](https://cert-manager.io/)自动颁发自签名证书。在实际使用情况下,你可使用 Let's Encrypt 或自己的证书。
|
||||
|
||||
## 安装 Helm CLI
|
||||
|
||||
|
||||
+3
-3
@@ -4,7 +4,7 @@ title: '1. 配置基础设施'
|
||||
|
||||
在本节中,你将为 Rancher Management Server 配置底层基础设施,并使其通过 HTTP 代理访问互联网。
|
||||
|
||||
如需在高可用 RKE 集群中安装 Rancher Management Server,我们建议配置以下基础设施:
|
||||
如需在高可用 RKE2/K3s 集群中安装 Rancher Management Server,我们建议配置以下基础设施:
|
||||
|
||||
- **3 个 Linux 节点**:可以是你的云提供商(例如 Amazon EC2,GCE 或 vSphere)中的虚拟机。
|
||||
- **1 个负载均衡器**:用于将前端流量转发到这三个节点中。
|
||||
@@ -14,7 +14,7 @@ title: '1. 配置基础设施'
|
||||
|
||||
## 为什么使用三个节点?
|
||||
|
||||
在 RKE 集群中,Rancher Server 的数据存储在 etcd 中。而这个 etcd 数据库在这三个节点上运行。
|
||||
在 RKE2/K3s 集群中,Rancher Server 的数据存储在 etcd 中。而这个 etcd 数据库在这三个节点上运行。
|
||||
|
||||
为了选举出大多数 etcd 节点认可的 etcd 集群 leader,etcd 数据库需要奇数个节点。如果 etcd 数据库无法选出 leader,etcd 可能会出现[脑裂(split brain)](https://www.quora.com/What-is-split-brain-in-distributed-systems)的问题,此时你需要使用备份恢复集群。如果三个 etcd 节点之一发生故障,其余两个节点可以选择一个 leader,因为它们是 etcd 节点总数的大多数部分。
|
||||
|
||||
@@ -30,7 +30,7 @@ title: '1. 配置基础设施'
|
||||
|
||||
你还需要设置一个负载均衡器,来将流量重定向到两个节点上的 Rancher 副本。配置后,当单个节点不可用时,继续保障与 Rancher Management Server 的通信。
|
||||
|
||||
在后续步骤中配置 Kubernetes 时,RKE 工具会部署一个 NGINX Ingress Controller。该 Controller 将侦听 worker 节点的 80 端口和 443 端口,以响应发送给特定主机名的流量。
|
||||
在后续步骤中配置 Kubernetes 时,RKE2/K3s 工具会部署一个 NGINX Ingress Controller。该 Controller 将侦听 worker 节点的 80 端口和 443 端口,以响应发送给特定主机名的流量。
|
||||
|
||||
在安装 Rancher 后(也是在后续步骤中),Rancher 系统将创建一个 Ingress 资源。该 Ingress 通知 NGINX Ingress Controller 监听发往 Rancher 主机名的流量。NGINX Ingress Controller 在收到发往 Rancher 主机名的流量时,会将其转发到集群中正在运行的 Rancher Server Pod。
|
||||
|
||||
|
||||
-195
@@ -1,195 +0,0 @@
|
||||
---
|
||||
title: 配置高可用的 RKE Kubernetes 集群
|
||||
---
|
||||
|
||||
<EOLRKE1Warning />
|
||||
|
||||
本文介绍如何安装 Kubernetes 集群。该集群应专用于运行 Rancher Server。
|
||||
|
||||
:::note
|
||||
|
||||
Rancher 可以运行在任何 Kubernetes 集群上,包括托管的 Kubernetes,例如 Amazon EKS。以下说明只是安装 Kubernetes 其中一种方式。
|
||||
|
||||
:::
|
||||
|
||||
如果系统无法直接访问互联网,请参见[离线环境:Kubernetes 安装](../../../getting-started/installation-and-upgrade/other-installation-methods/air-gapped-helm-cli-install/air-gapped-helm-cli-install.md)。
|
||||
|
||||
:::tip 单节点安装提示:
|
||||
|
||||
在单节点 Kubernetes 集群中,Rancher Server 不具备高可用性,而高可用性对在生产环境中运行 Rancher 非常重要。但是,如果你想要短期内使用单节点节省资源,同时又保留高可用性迁移路径,把 Rancher 安装到单节点集群也是合适的。
|
||||
|
||||
要设置单节点 RKE 集群,在 `cluster.yml` 中配置一个节点。该节点需具备所有三个角色,分别是`etcd`,`controlplane`和`worker`。
|
||||
|
||||
在这两种单节点设置中,Rancher 可以与 Helm 一起安装在 Kubernetes 集群上,安装方法与安装到其他集群上一样。
|
||||
|
||||
:::
|
||||
|
||||
## 安装 Kubernetes
|
||||
|
||||
### 所需的 CLI 工具
|
||||
|
||||
安装 Kubernetes 命令行工具 [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl)。
|
||||
|
||||
安装 [RKE](https://rancher.com/docs/rke/latest/en/installation/)(Rancher Kubernetes Engine,是一个 Kubernetes 发行版和命令行工具)。
|
||||
|
||||
### 1. 创建集群配置文件
|
||||
|
||||
在这部分,你将创建一个名为 `rancher-cluster.yml`的 Kubernetes 集群配置文件。在后续使用 RKE 命令设置集群的步骤中,此文件会用于在节点上安装 Kubernetes。
|
||||
|
||||
使用下面的示例作为指南,创建 `rancher-cluster.yml` 文件。将 `nodes` 列表中的 IP 地址替换为你创建的 3 个节点的 IP 地址或 DNS 名称。
|
||||
|
||||
如果你的节点有公共地址和内部地址,建议设置 `internal_address:` 以便 Kubernetes 使用它实现集群内部通信。如果你想使用引用安全组或防火墙,某些服务(如 AWS EC2)要求设置 `internal_address:`。
|
||||
|
||||
RKE 需要通过 SSH 连接到每个节点,它会在 `~/.ssh/id_rsa`的默认位置查找私钥。如果某个节点的私钥不在默认位置中,你还需要为该节点配置 `ssh_key_path` 选项。
|
||||
|
||||
在选择 Kubernetes 版本时,请务必先查阅[支持矩阵](https://rancher.com/support-matrix/),以找出已针对你的 Rancher 版本验证的最新 Kubernetes 版本。
|
||||
|
||||
```yaml
|
||||
nodes:
|
||||
- address: 165.227.114.63
|
||||
internal_address: 172.16.22.12
|
||||
user: ubuntu
|
||||
role: [controlplane, worker, etcd]
|
||||
- address: 165.227.116.167
|
||||
internal_address: 172.16.32.37
|
||||
user: ubuntu
|
||||
role: [controlplane, worker, etcd]
|
||||
- address: 165.227.127.226
|
||||
internal_address: 172.16.42.73
|
||||
user: ubuntu
|
||||
role: [controlplane, worker, etcd]
|
||||
|
||||
services:
|
||||
etcd:
|
||||
snapshot: true
|
||||
creation: 6h
|
||||
retention: 24h
|
||||
|
||||
# Required for external TLS termination with
|
||||
# ingress-nginx v0.22+
|
||||
ingress:
|
||||
provider: nginx
|
||||
options:
|
||||
use-forwarded-headers: "true"
|
||||
|
||||
kubernetes_version: v1.25.6-rancher4-1
|
||||
```
|
||||
|
||||
<figcaption>通用 RKE 节点选项</figcaption>
|
||||
|
||||
| 选项 | 必填 | 描述 |
|
||||
| ------------------ | -------- | -------------------------------------------------------------------------------------- |
|
||||
| `address` | 是 | 公共 DNS 或 IP 地址 |
|
||||
| `user` | 是 | 可以运行 docker 命令的用户 |
|
||||
| `role` | 是 | 分配给节点的 Kubernetes 角色列表 |
|
||||
| `internal_address` | 否 | 内部集群流量的私有 DNS 或 IP 地址 |
|
||||
| `ssh_key_path` | 否 | 用来验证节点的 SSH 私钥文件路径(默认值为 `~/.ssh/id_rsa`) |
|
||||
|
||||
:::note 高级配置:
|
||||
|
||||
RKE 提供大量配置选项,用于针对你的环境进行自定义安装。
|
||||
|
||||
如需了解选项和功能的完整列表,请参见 [RKE 官方文档](https://rancher.com/docs/rke/latest/en/config-options/)。
|
||||
|
||||
要为大规模 Rancher 安装优化 etcd 集群,请参见 [etcd 设置指南](../../advanced-user-guides/tune-etcd-for-large-installs.md)。
|
||||
|
||||
有关 Dockershim 支持的详情,请参见[此页面](../../../getting-started/installation-and-upgrade/installation-requirements/dockershim.md)。
|
||||
|
||||
:::
|
||||
|
||||
### 2. 运行 RKE
|
||||
|
||||
```
|
||||
rke up --config ./rancher-cluster.yml
|
||||
```
|
||||
|
||||
完成后,结束行应该是:`Finished build Kubernetes cluster succeeded`。
|
||||
|
||||
### 3. 测试集群
|
||||
|
||||
本节介绍如何设置工作区,以便你可以使用 `kubectl` 命令行工具与此集群进行交互。
|
||||
|
||||
如果你已安装 `kubectl`,你需要将 `kubeconfig` 文件放在 `kubectl` 可访问的位置。`kubeconfig` 文件包含使用 `kubectl` 访问集群所需的凭证。
|
||||
|
||||
你在运行 `rke up` 时,RKE 应该已经创建了一个名为 `kube_config_cluster.yml`的 `kubeconfig` 文件。该文件具有 `kubectl` 和 `helm`的凭证。
|
||||
|
||||
:::note
|
||||
|
||||
如果你的文件名不是 `rancher-cluster.yml`,kubeconfig 文件将命名为 `kube_config_<FILE_NAME>.yml`。
|
||||
|
||||
:::
|
||||
|
||||
将此文件移动到 `$HOME/.kube/config`。如果你使用多个 Kubernetes 集群,将 `KUBECONFIG` 环境变量设置为 `kube_config_cluster.yml` 的路径:
|
||||
|
||||
```
|
||||
export KUBECONFIG=$(pwd)/kube_config_cluster.yml
|
||||
```
|
||||
|
||||
用 `kubectl` 测试你的连接性,并查看你的所有节点是否都处于 `Ready` 状态:
|
||||
|
||||
```
|
||||
kubectl get nodes
|
||||
|
||||
NAME STATUS ROLES AGE VERSION
|
||||
165.227.114.63 Ready controlplane,etcd,worker 11m v1.13.5
|
||||
165.227.116.167 Ready controlplane,etcd,worker 11m v1.13.5
|
||||
165.227.127.226 Ready controlplane,etcd,worker 11m v1.13.5
|
||||
```
|
||||
|
||||
### 4. 检查集群 Pod 的健康状况
|
||||
|
||||
检查所有需要的 Pod 和容器是否健康。
|
||||
|
||||
- Pod 处于 `Running` 或 `Completed` 状态。
|
||||
- `READY` 表示运行 `STATUS` 为 `Running` 的 Pod 的所有容器(例如, `3/3`)。
|
||||
- `STATUS` 为 `Completed` 的 Pod 是一次运行的 Job。这些 Pod `READY` 列的值应该为 `0/1`。
|
||||
|
||||
```
|
||||
kubectl get pods --all-namespaces
|
||||
|
||||
NAMESPACE NAME READY STATUS RESTARTS AGE
|
||||
ingress-nginx nginx-ingress-controller-tnsn4 1/1 Running 0 30s
|
||||
ingress-nginx nginx-ingress-controller-tw2ht 1/1 Running 0 30s
|
||||
ingress-nginx nginx-ingress-controller-v874b 1/1 Running 0 30s
|
||||
kube-system canal-jp4hz 3/3 Running 0 30s
|
||||
kube-system canal-z2hg8 3/3 Running 0 30s
|
||||
kube-system canal-z6kpw 3/3 Running 0 30s
|
||||
kube-system kube-dns-7588d5b5f5-sf4vh 3/3 Running 0 30s
|
||||
kube-system kube-dns-autoscaler-5db9bbb766-jz2k6 1/1 Running 0 30s
|
||||
kube-system metrics-server-97bc649d5-4rl2q 1/1 Running 0 30s
|
||||
kube-system rke-ingress-controller-deploy-job-bhzgm 0/1 Completed 0 30s
|
||||
kube-system rke-kubedns-addon-deploy-job-gl7t4 0/1 Completed 0 30s
|
||||
kube-system rke-metrics-addon-deploy-job-7ljkc 0/1 Completed 0 30s
|
||||
kube-system rke-network-plugin-deploy-job-6pbgj 0/1 Completed 0 30s
|
||||
```
|
||||
|
||||
这表示你已成功安装了可运行 Rancher Server 的 Kubernetes 集群。
|
||||
|
||||
### 5. 保存你的文件
|
||||
|
||||
:::note 重要提示:
|
||||
|
||||
维护、排除问题和升级集群需要用到以下文件,请妥善保管这些文件:
|
||||
|
||||
:::
|
||||
|
||||
将以下文件的副本保存在安全位置:
|
||||
|
||||
- `rancher-cluster.yml`:RKE 集群配置文件。
|
||||
- `kube_config_cluster.yml`:集群的 [Kubeconfig 文件](https://rancher.com/docs/rke/latest/en/kubeconfig/)。该文件包含可完全访问集群的凭证。
|
||||
- `rancher-cluster.rkestate`:[Kubernetes 状态文件](https://rancher.com/docs/rke/latest/en/installation/#kubernetes-cluster-state)。此文件包括用于完全访问集群的凭证。<br/><br/>_Kubernetes 集群状态文件仅在 RKE 版本是 0.2.0 或更高版本时生成。_
|
||||
|
||||
:::note
|
||||
|
||||
后两个文件名中的 `rancher-cluster` 部分取决于你命名 RKE 集群配置文件的方式。
|
||||
|
||||
:::
|
||||
|
||||
### 故障排除
|
||||
|
||||
参见[故障排除](../../../getting-started/installation-and-upgrade/install-upgrade-on-a-kubernetes-cluster/troubleshooting.md)页面。
|
||||
|
||||
|
||||
### 后续操作
|
||||
[安装 Rancher](../../../getting-started/installation-and-upgrade/install-upgrade-on-a-kubernetes-cluster/install-upgrade-on-a-kubernetes-cluster.md)
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@ title: EC2 节点模板配置
|
||||
|
||||
请参考[使用主机驱动时的 Amazon EC2 安全组](../../../../getting-started/installation-and-upgrade/installation-requirements/port-requirements.md#rancher-aws-ec2-安全组),了解 `rancher-nodes` 安全组中创建的规则。
|
||||
|
||||
如果你自行为 EC2 实例提供安全组,Rancher 不会对其进行修改。因此,你需要让你的安全组允许 [Rancher 配置实例所需的端口](../../../../getting-started/installation-and-upgrade/installation-requirements/port-requirements.md#rke-上-rancher-server-节点的端口)。有关使用安全组控制 EC2 实例的入站和出站流量的更多信息,请参阅[这里](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#WorkingWithSecurityGroups)。
|
||||
如果你自行为 EC2 实例提供安全组,Rancher 不会对其进行修改。因此,你需要让你的安全组允许 [Rancher 配置实例所需的端口](../../../../getting-started/installation-and-upgrade/installation-requirements/port-requirements.md#rke2-上-rancher-server-节点的端口)。有关使用安全组控制 EC2 实例的入站和出站流量的更多信息,请参阅[这里](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#WorkingWithSecurityGroups)。
|
||||
|
||||
## 实例选项
|
||||
|
||||
|
||||
Reference in New Issue
Block a user