暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

rancher2.5.7详细部署文档

程序猿白糖 2021-03-26
1764

一、安装介绍

本节整体概述了 Rancher 各种安装方式,并介绍了每个选项的优点。

1.名词解释

在这个部分的主要涉及的名词如下:

  • Rancher Server: 是用于管理和配置 Kubernetes 集群。您可以通过 Rancher Server 的 UI 与下游 Kubernetes 集群进行交互。

  • RKE(Rancher Kubernetes Engine):是经过认证的 Kubernetes 发行版,它拥有对应的 CLI 工具可用于创建和管理 Kubernetes 集群。在 Rancher UI 中创建集群时,它将调用 RKE 来配置 Rancher 启动的 Kubernetes 集群。

  • K3s (轻量级 Kubernetes): 和 RKE 类似,也是经过认证的 Kubernetes 发行版。它比 RKE 更新,更易用且更轻量化,全部组件都在一个小于 100 MB 的二进制文件中。从 Rancher v2.4 开始,Rancher 可以安装在 K3s 集群上。

  • RKE2是一个完全合规的 Kubernetes 发行版,专注于美国联邦政府部门的安全和合规性。

  • RancherD是安装 Rancher 的新工具,从 Rancher v2.5.4 开始提供。它是一个实验性功能。RancherD 是一个二进制文件,它首先启动一个 RKE2 Kubernetes 集群,然后在集群上安装 Rancher 服务器 Helm 图。

2.安装选项概述

Rancher 的部署可以有三种架构:

  • 使用 Helm CLI 进行高可用 Kubernetes 安装、

  • 使用 RancherD 进行高可用 Kubernetes 安装

  • 使用 Kubernetes 进行单节点安装

2.1使用 Helm CLI 进行高可用 Kubernetes 安装

我们建议使用 Kubernetes 程序包管理器 Helm 在专用的 Kubernetes 集群上安装 Rancher。在 RKE 集群中,需要使用三个节点以实现高可用性。在 K3s 集群中,仅需要两个节点即可。

2.2使用 RancherD 进行高可用 Kubernetes 安装

从 v2.5.4 开始提供

RancherD 是一个的二进制文件,它首先启动一个 RKE2 Kubernetes 集群,然后在集群上安装 Rancher 服务器的 Helm Chart。这是一个实验性的功能。在 RancherD 安装和 Helm CLI 安装中,Rancher 都是作为 Helm 图安装在 Kubernetes 集群上。使用 RancherD 也简化了配置和升级。当您升级 RancherD 二进制时,Kubernetes 集群和 Rancher Helm Chart 都会升级。

2.3使用 Kubernetes 进行单节点安装

另一个选择是在 Kubernetes 集群上使用 Helm 安装 Rancher,仅在集群中使用单个节点。虽然在这种情况下的 Rancher Server 不具有高可用性,但是这种架构既节省了资源,又保留了可扩展性。如果您想在短期内通过使用单个节点来节省资源,同时又保留高可用性迁移路径,最合适的架构就是单节点 Kubernetes 安装。

关于在私有环境中或 HTTP 代理后面安装 Rancher,我们有单独的说明文档:

网络访问水平基于 Kubernetes 安装(推荐)基于 Docker 安装
可直接访问 Internet高可用安装文档文档
依托 HTTP 代理基于此文档,并附加相关配置基于此文档,并附加相关配置
私有网络环境文档文档

2.4高可用安装文档

先决条件

设置 Rancher 服务器的本地 Kubernetes 集群。

集群要求取决于 Rancher 版本。

  • 从 Rancher v2.5 开始,

    Rancher 可以安装在任何 Kubernetes 集群上。这个集群可以使用上游 Kubernetes,也可以使用 Rancher 的 Kubernetes 发行版之一,也可以是来自 Amazon EKS 等提供商的托管 Kubernetes 集群。

    注意:要在托管的 Kubernetes 集群(如 EKS、GKE 或 AKS)上部署 Rancher v2.5,应该先部署一个兼容的 Ingress 控制器来配置Rancher 上的 SSL 终止。。

  • 在 Rancher v2.4.x 中,Rancher 需要安装在 K3s Kubernetes 集群或 RKE Kubernetes 集群上。

  • 在 Rancher v2.4 之前,Rancher 需要安装在 RKE Kubernetes 集群上。

有关安装 RKE Kubernetes 集群的教程,请参考本页有关为高可用性 RKE 集群设置基础设施的帮助,请参考本页。

安装 K3s Kubernetes 集群的教程,请参考本页面 如需帮助设置高可用性 K3s 集群的基础架构,请参考本页

二、安装要求

2.1.操作系统和docker 版本要求

对于将运行 K3s 或 RKE Kubernetes 集群的节点,需要使用 Docker。对于 RancherD 安装来说,Docker 不是必需的。

Rancher 需要安装在支持的 Kubernetes 版本上。要了解你的 Rancher 版本支持哪些 Kubernetes 版本,请参考这里。

所有受支持的操作系统都是 64-bit x86。

我们建议安装 ntp
 (Network Time Protocol),这样可以防止在客户端和服务器之间因为时钟不同步而发生证书验证错误。

一些 Linux 发行版可能有默认的防火墙规则。这些规则可能会屏蔽掉 Helm 的通信。这个操作指南展示了如何检查 Oracle Linux 的默认防火墙规则,以及在必要时如何使用firewalld
开放端口。

如果计划在 ARM64 上运行 Rancher,请参阅在 ARM64 上运行(实验性)。

2.1.1.RKE 要求

RKE 可以兼容当前的所有 Docker 版本。

2.1.2.K3S要求

K3s 兼容当前的所有 Docker 版本或 containerd。

Rancher 需要安装在受支持的 Kubernetes 版本上。要了解您的 Rancher 版本支持哪些版本的 Kubernetes,请参考支持维护条款。要指定 K3s 版本,请在运行 K3s 安装脚本时使用 INSTALL_K3S_VERSION 环境变量。

如果您在使用 Raspbian Buster 的 K3s 集群上安装 Rancher,请按照这些步骤切换到传统的 iptables。

如果您在使用 Alpine Linux 的 K3s 集群上安装 Rancher,请按照这些步骤]进行额外的设置。

2.1.3.RancherD 要求

RancherD 安装从 v2.5.4 开始可用。这是一个实验性功能。

目前,只支持利用 systemd 的 Linux 操作系统。

RancherD 安装时不需要 Docker。

要在 SELinux Enforcing CentOS 8 或 RHEL 8 节点上安装 RancherD,需要一些额外的步骤。

2.2.安装 Docker

您可以按照Docker 官方文档中的步骤安装 Docker。Rancher 也提供了使用命令安装 Docker 的脚本。

对于 Helm CLI 安装,需要在运行 Rancher 服务器的任何节点上安装 Docker。

有两种安装 Docker 的选择。一种选择是参考官方 Docker 文档来了解如何在 Linux 上安装 Docker。这些安装步骤将根据 Linux 发行版而有所不同。

另一种选择是使用 Rancher 提供的 Docker 安装脚本,该脚本可用于安装较新的 Docker 版本。

例如,此命令可用于在 Ubuntu 上安装 Docker 19.03:

curl https://releases.rancher.com/install-docker/19.03.sh | sh

Rancher 为 Kubernetes 支持的每个上游 Docker 版本都有安装脚本。要想知道是否有安装某个 Docker 版本的脚本,可以参考这个GitHub 仓库,其中包含了 Rancher 所有的 Docker 安装脚本。

2.3. 端口要求

为了保证正常运行,Rancher 要求在 Rancher 节点和下游 Kubernetes 集群节点上开放一些端口。

Rancher 节点

下表列出了运行 Rancher Server 的节点之间需要开放的端口。

端口要求因 Rancher 是安装在 K3s Kubernetes 集群,RKE Kubernetes 集群还是单个 Docker 容器中而有所不同。

  • K3s

  • RKE

  • Docker

  • RancherD

K3s Server 需要开放 6443 端口供节点访问。

使用 Flannel VXLAN 时,这些节点需要能够通过 UDP 端口 8472 访问其他节点。节点不应侦听其他端口。K3s 使用反向隧道,建立节点与服务器的出站连接,所有 kubelet 通信都通过该隧道进行。但是,如果您不使用 Flannel,而是使用自定义的 CNI,则 K3s 不需要 8472 端口。

如果要使用指标服务器(Metrics Server),则需要在每个节点上开放端口 10250。

重要: 节点上的 VXLAN 端口不应暴露给外界,因为这会开放集群网络,任何人都可以访问它。请在禁止访问 8472 端口的防火墙/安全组后面运行节点。

Rancher Server 节点的入站规则

协议端口描述
TCP6443K3s server 节点Kubernetes API
UDP8472K3s server 和 agent 节点Flannel VXLAN 需要
TCP10250K3s server 和 agent 节点kubelet

通常情况下,可以允许全部出站流量。

注意:

  • 如果您配置了的外部身份验证系统(例如 LDAP),Rancher 节点可能还需要其他出站规则。

  • Kubernetes 建议将 TCP 30000-32767 用于节点端口服务(NodePort svc)。

  • 可能需要对防火墙进行配置,启用在集群和 Pod CIDR 中的流量。

从 到Rancher 节点etcd 节点Control Plane 节点Worker 节点外部负载均衡互联网
Rancher 节点 (1)
22 TCP
git.rancher.io (2): 35.160.43.145:32 35.167.242.46:32 52.33.59.17:32


2376 TCP




etcd 节点443 TCP (3)2379 TCP

443 TCP
2380 TCP






6443 TCP




8472 UDP





9099 TCP (4)





Control Plane 节点443 TCP (3)2379 TCP

443 TCP
2380 TCP






6443 TCP




8472 UDP





10250 TCP






9099 TCP (4)





10254 TCP (4)




Worker 节点443 TCP (3)
6443 TCP
443 TCP
8472 UDP







9099 TCP (4)





10254 TCP (4)



外部负载均衡 (5)80 TCP




443 TCP (6)





API UI 客户端80 TCP (3)


80 TCP
443 TCP (3)


443 TCP

工作负载客户端


30000-32767 TCP UDP (nodeport)



80 TCP (Ingress)





443 TCP (Ingress)



注意:1. 运行Rancher的单节点或者Rancher高可用的节点。2. 需要用来拉取Rancher应用商店库。3. 适用于不使用外部负载均衡的情况。4. 本地流量(非跨节点流量)。5. 负责Rancher UI API的负载均衡或反向代理。6. 仅适用于SSL没有在外部负载均衡终止。





三、 单节点安装rancher

选项 A - 使用 Rancher 默认的自签名证书

如果要在不涉及身份验证的开发或测试环境中安装 Rancher,请使用其生成的自签名证书安装 Rancher。此安装选项省去了自己生成证书的麻烦。

重要

在使用单节点安装时,Rancher Server 的数据默认保存在容器里。这意味着,在 Rancher Server 容器被删除时,Rancher Server 的数据将会丢失。您可以通过添加 -v
 参数以挂载目录的方式将数据保存在 Rancher Server 所在的主机上。详情请参阅 Rancher 单节点数据持久化。

Rancher 2.4.x 及之前的版本

登录到 Linux 主机,然后运行下面这个非常简洁的安装命令。

docker run -d --privileged --restart=unless-stopped \
-p 80:80 -p 443:443 \
rancher/rancher:latest

#Rancher 2.5.x 及之后的版本

登录到 Linux 主机,然后运行下面这个非常简洁的安装命令。

与 2.4.x 或之前的版本相比,使用docker run
命令安装 Rancher 2.5.x 时,需要添加--privileged
标志变量,启用特权模式安装 Rancher。

docker run -d --restart=unless-stopped \
-p 80:80 -p 443:443 \
--privileged \
rancher/rancher:v2.5.7

在相同节点运行rancher/rancher
 和 rancher/rancher-agent

在要使用单个节点运行 Rancher 并将同一个节点添加到集群的情况下,必须为rancher/ rancher
容器调整映射的主机端口。

如果将节点添加到集群中,它将部署使用端口 80 和 443 的 nginx ingress 控制器。这将与我们建议为rancher/ rancher
容器公开的默认端口冲突。

请注意,不建议将此设置用于生产环境,这种方式仅用来方便进行开发/演示。

要更改主机端口映射,请将以下部分-p 80:80 -p 443:443
替换为-p 8080:80 -p 8443:443

docker run -d --restart=unless-stopped \
-p 8080:80 -p 8443:443 \
-v opt/rancher:/var/lib/rancher \
--privileged \
rancher/rancher:v2.5.7 \

国内使用阿里云镜像部署rancher

  1. 使用阿里云镜像仓库的 rancher 镜像启动 rancher

 docker run -itd -p 8080:80 -p 8443:443 \
--restart=unless-stopped \
--privileged \
-v /opt/rancher:/var/lib/rancher \
-e CATTLE_AGENT_IMAGE="registry.cn-hangzhou.aliyuncs.com/rancher/rancher-agent:v2.5.7" \
registry.cn-hangzhou.aliyuncs.com/rancher/rancher:v2.5.7

  • CATTLE_AGENT_IMAGE:
     指定 rancher-agent 的镜像名称

  1. 设置默认镜像仓库

    从 UI 导航到Settings,然后编辑system-default-registry,Value 设置为registry.cn-hangzhou.aliyuncs.com


文章转载自程序猿白糖,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论