| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 11 个月前 | ||
| 11 个月前 |
sig-rfo
Rancher 最初是创业公司 RancherLabs 发起的开源项目,旨在给用户提供开箱即用的容器管理平台。随着容器技术的不断发展,到 Rancher2.0 时代已经完全 Kubernetes 化,成为了一个较为成熟的 Kubernetes 多集群管理软件。
随着 2020 年底 SUSE 收购 RancherLabs,Rancher 已经逐渐成长为一个由多个软件组成的企业级容器管理平台,包括多集群管理平面,Kubernetes 发行版,以及容器安全管理等,并兼容主流的公有云生态。
RFO 的含义为 Rancher For openEuler,旨在打造面向 openEuler 的 Rancher 基础平台系统。
工作目标和范围
面向 openEuler 打造一款 Kubernetes 发行版,期望成为 openEuler 系统之上最好用的发行版,持续的工程化,且达到安全合规标准。
它具备以下特性:
- 完整可溯源的工程化
- 从源码构建
- CI Build 历史记录
- e2e 测试结果
- 产品化,开箱即用
- 版本生命周期与支持矩阵
- 较少依赖的安装体验
- 除 Kubernetes 基础组件外,同样打包主流的生态组件(nginx-ingress、flannel、calico 等)
- 充分利用 openEuler 内部生态
- 基于 openEuler base image 的 package
- 从 openEuler OS 环境构建
- 与 openEuler 一致的 CPU 架构支持体系
- 供应链安全
- 构建物 CVE 扫描
- 二进制与镜像签名防中间人篡改
- 社区可信任的镜像仓库
借助此发行版连接 openEuler 和 Rancher 平台的生态,并逐渐展开后续项目孵化。
RFO quick start
前置条件
RFO 仅在 openEuler 上进行功能性验证,并不保证其他系统上运行的可行性,经过验证的系统版本包括:
- openEuler 22.03-LTS
- openEuler 22.03-LTS-SP1
RFO 最低需要以下硬件支持:
- RAM:最低 4 GB(建议至少 8 GB)
- CPU:最少 2(建议至少 4 CPU)
RFO 的性能取决于数据库的性能。由于 RFO 嵌入式运行 etcd 并将数据目录存储在磁盘上,我们建议尽可能使用 SSD 以确保最佳性能。
安装准备
查看 OS 版本:
[root@localhost ~]# cat /etc/os-release
NAME="openEuler"
VERSION="22.03 (LTS-SP1)"
ID="openEuler"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 (LTS-SP1)"
ANSI_COLOR="0;31"
配置 NetworkManager 进行忽略 Canal CNI 的 veth 接口
touch /etc/NetworkManager/conf.d/rfo-canal.conf
cat >> /etc/NetworkManager/conf.d/rfo-canal.conf << EOF
[keyfile]
unmanaged-devices=interface-name:cali*;interface-name:flannel*
EOF
systemctl disable nm-cloud-setup.service nm-cloud-setup.timer
systemctl reload NetworkManager
停止 openEuler 防火墙服务,RFO 中默认的 Canal CNI 与 Firewalld 网络栈有冲突:
systemctl stop firewalld
systemctl disable firewalld
安装依赖组件:
dnf install -y tar vim
安装前,需要确保所有节点中,hostname 设置互不相同,具有唯一性
Server 节点安装
- 使用 install 脚本安装 RFO
curl -sfL https://gitee.com/rfolabs/rfo/raw/rfo-master/install-rfo.sh | INSTALL_RFO_VERSION="v1.27.5+rfor1" sh - - 启用 rfo-server 服务
systemctl enable rfo-server.service - 启动 rfo-server 服务
systemctl start rfo-server.service - (可选)查看 rfo-server 服务日志
journalctl -u rfo-server -f
运行此安装程序后:
- rfo-server 服务将被安装。rfo-server 服务将被配置为在节点重启后或进程崩溃或被杀时自动重启。
- 其他的实用程序将被安装在/var/lib/rancher/rfo/bin/。它们包括 kubectl, crictl, 和 ctr. 注意,这些东西默认不在你的路径上。
- 还有两个清理脚本会安装到 /usr/local/bin/rfo 的路径上。它们是 rfo-killall.sh 和 rfo-uninstall.sh。
- 一个 kubeconfig 文件将被写入/etc/rancher/rfo/rfo.yaml。
- 一个可用于注册其他 server 或 agent 节点的令牌将在 /var/lib/rancher/rfo/server/node-token 文件中创建。
warning 注意: 如果你要添加额外的 server 节点,则总数必须为奇数。需要奇数来维持选举数。
Agent 节点安装
-
运行安装程序
curl -sfL https://gitee.com/rfolabs/rfo/raw/rfo-master/install-rfo.sh | INSTALL_RFO_VERSION="v1.27.5+rfor1" INSTALL_RFO_TYPE="agent" sh - -
启用 rfo-agent 服务
systemctl enable rfo-agent.service -
配置 rfo-agent 服务
mkdir -p /etc/rancher/rfo/ vim /etc/rancher/rfo/config.yamlconfig.yaml 的内容。
server: https://<server>:9345 token: <token from server node>其中 token 可以在 server 节点中运行 cat /var/lib/rancher/rfo/server/node-token 命令获取。
rfo server 进程通过端口 9345 监听新节点的注册。正常情况下,Kubernetes API 仍可在端口 6443 上使用。 -
启动服务
systemctl start rfo-agent.service -
(可选)查看 rfo-agent 服务日志
journalctl -u rfo-agent -f
访问集群
在安装完成 rfo-server 节点后,即可以在 server 节点中使用内置的 kubectl 以及 kubeconfig 配置访问集群:
export KUBECONFIG=/etc/rancher/rfo/rfo.yml
export PATH=/var/lib/rancher/rfo/bin:$PATH
kubectl get pods --all-namespaces
helm ls --all-namespaces
或在指令中指定 kubeconfig 文件位置:
kubectl --kubeconfig /etc/rancher/rfo/rfo.yml get pods --all-namespaces
helm --kubeconfig /etc/rancher/rfo/rfo.yml ls --all-namespaces
若希望在集群外部访问集群,则可以复制 /etc/rancher/rfo/rfo.yml 配置文件到你位于集群外部的机器上,作为 ~/.kube/config。然后将文件中 127.0.0.1 替换为你的 RFO 服务器的 IP 或主机名。kubectl 现在可以管理你的 RFO 集群了。
版本清单与支持矩阵
RFO 版本发布遵循 Kubernetes Release Plan 以及 RKE2 的发布计划,按月发布对应的版本,计划将在上游 RKE2 发布 2 周内完成对应版本发布。
RFO 于 2022 年 11 月底发布 GA 版本,其中 v1.23/v1.24/v1.25 主版本都在此时发布首个 RFO 分发版,目前 RFO 已发布的版本如下:
| 主版本 | K8s 发布时间 | RFO 分发时间 | Active Support | Maintenance Support | Latest |
|---|---|---|---|---|---|
| v1.28 | 15 Aug 2023 | 18 Set 2023 | 28 Set 2024 | 28 Nov 2024 | v1.28.1+rfor1 |
| v1.27 | 11 Apr 2023 | 26 Apr 2023 | 28 May 2024 | 28 Jul 2024 | v1.27.5+rfor1 |
| v1.26 | 08 Dec 2022 | 29 Jan 2023 | 28 Jan 2024 | 28 Mar 2024 | v1.26.8+rfor1 |
| v1.25 | 23 Aug 2022 | 29 Nov 2022 | 27 Set 2023 | 27 Nov 2023 | v1.25.13+rfor1 |
| v1.24(EoM) | 03 May 2022 | 29 Nov 2022 | 28 Jun 2023 | 28 Aug 2023 | v1.24.17+rfor1 |
gantt
title RFO Support Lifecycle
dateFormat YYYY-MM-DD
axisFormat %Y-%m
section v1.28
Support: active, a5,2023-09-18, 2024-09-28
Maintain: after a5, 2024-11-28
section v1.27
Support: active, a1,2023-04-26, 2024-05-28
Maintain: after a1, 2024-07-28
section v1.26
Support: active, a2,2023-01-29, 2024-01-28
Maintain: after a2, 2024-03-28
section v1.25
Support: active, a3,2022-11-29, 2023-09-27
Maintain: after a3, 2023-11-27
section v1.24
Support: done, a4,2022-11-29, 2023-06-28
Maintain: done, after a4, 2023-08-28
组织会议
每双周周四下午 4:00-5:30