从数据中心到边缘:基于 openEuler 24.03 LTS SP2 的 K3s 轻量化云原生实战评测

@[toc]

摘要:

云原生已成为驱动数字基础设施演进的核心动力。作为承载这一切的基石,操作系统正面临着向全场景、高效率、强安全转变的深刻挑战。openEuler,作为面向数字基础设施的开源操作系统,其最新发布的 openEuler 24.03 LTS SP2 版本,搭载了革命性的 Linux 6.6 内核,为云原生应用提供了前所未有的性能与稳定性。

一、 时代浪潮:云原生的"全场景"挑战

云原生(Cloud Native)代表着一套构建和运行应用程序的架构理念和技术合集,其核心支柱------容器化、微服务、CI/CDDevOps------旨在构建松耦合、可弹性伸缩、高容错的系统。

这种范式对底层的操作系统提出了极为苛刻的要求:

  1. 极致的资源效率: 无论是数据中心的高密度容器部署,还是边缘设备的资源受限,操作系统自身的开销都必须被压缩到极致
  2. 敏捷的调度与隔离: 内核必须具备更低延迟的进程调度能力(如 EEVDF)和更精细的 Cgroups 机制,以实现海量容器的快速启停和严格隔离
  3. 强大的网络与I/O: 微服务间的频繁通信和有状态应用的数据持久化,高度依赖高性能、低延迟的网络堆栈和异步 I/O 处理能力(如 io\_uring
  4. 内建的安全与可观测性: 安全必须"左移"到 OS 层,而 eBPF 等技术带来的深度可观测性也已成为标配

传统的通用操作系统在这些方面往往力不从心。而 openEuler 24.03 LTS SP2 不仅着眼于数据中心的"重量级"K8s 场景,其高效的内核与轻量化的设计,使其同样擅长应对云原生在边缘和开发环境中的"轻量级"挑战

二、 技术深潜:openEuler 24.03 LTS SP2 的云原生"核动力"

openEuler 24.03 LTS SP2 的最大亮点是其搭载了Linux 6.6 内核。这个内核版本带来了多项对云原生场景至关重要的底层革新:

  • EEVDF 调度器 (Earliest Eligible Virtual Deadline First): 6.6 内核正式启用了 EEVDF 调度器以取代传统的 CFS。对于云原生微服务而言,这意味着更公平、更低延迟的 CPU 资源分配,能有效缓解高并发下的"长尾延迟"问题,这对于时延敏感的边缘 AI 应用尤为关键。
  • io_uring 的持续进化: 作为 Linux 异步 I/O 的未来,io\_uring6.6 内核中得到了极大增强,提升了 I/O 密集型应用(如数据库、消息队列)的性能。
  • 内存管理与 Cgroups 优化: 对内存管理和 Cgroup v2 的精细打磨,使得容器的资源视图更精确,内存回收效率更高,从而支持在资源受限的设备上运行更多服务

除了强大的内核,openEuler 自身的生态工具链,如轻量化容器引擎 iSula(可与 K3s 底层的 Containerd 协同工作)和智能运维 A-Ops,共同构筑了其"全场景"云原生的技术护城河

三、 实战演练:K3s on openEuler 24.03 - 打造极致轻量化云原生底座

对于开发者和边缘计算场景而言,部署一个完整的 K8s 集群过于沉重。因此,我们选择评测 openEuler 24.03 LTS SP2 运行 K3s 的表现。K3s 是一个经 CNCF 认证的、轻量级的 K8s 发行版,它将 K8s 组件打包为单个二进制文件,极大简化了部署和运维,是边缘计算和开发者环境的理想选择

环境准备:

  • 一台虚拟机,安装 openEuler 24.03 LTS SP2
  • 配置:至少 2C2G 内存(K3s 非常轻量,但仍需基本资源)

推荐按此配置:

步骤一:系统初始化(单节点执行)

为确保 K3s 顺利运行,我们进行标准化的系统环境准备。

  1. 关闭防火墙和 SELinux(为简化教程,生产环境应配置精细规则):

    bash 复制代码
    systemctl stop firewalld
    systemctl disable firewalld
    
    # 临时关闭SELinux
    setenforce 0
    # 永久关闭,重启生效
    sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
  1. 关闭 Swap 分区(K8s/K3s 的标准要求):

    bash 复制代码
    swapoff -a
    # 永久关闭,注释掉 /etc/fstab 中的 swap 行
    sed -i '/ swap / s/^/#/' /etc/fstab
  1. 确保内核模块加载openEuler 24.03 默认已支持): K3s 依赖 br_netfilteroverlay 等模块。openEuler 24.03 默认支持良好,我们可以手动检查加载

    bash 复制代码
    modprobe br_netfilter
    modprobe overlay
    
    # 验证内核参数
    cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    net.ipv4.ip_forward                 = 1
    EOF
    sysctl --system

执行 sysctl --system 后,应看到配置生效的输出

步骤二:安装 K3s(单节点执行)

K3s 以其"一键安装"而闻名。我们将使用国内镜像源来加速安装过程

  1. 执行 K3s 官方安装脚本(使用国内镜像): openEuler 24.03 已内置 curl,可直接使用。

    bash 复制代码
    # 使用 mirror.rancher.cn 作为国内加速镜像
    curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -

    这条命令会自动下载 K3s 二进制文件,并将其注册为 systemd 服务自动运行。安装过程非常迅速,充分体现了其轻量化的优势。

  1. 检查 K3s 服务状态:

    bash 复制代码
    systemctl status k3s

    您应该能看到 k3s.service 处于 active (running) 状态,证明 K3s 已在 openEuler 24.03 上成功启动

步骤三:配置 kubectl 访问 K3s 集群(单节点执行)

K3s 会自动生成一个 kubeconfig 文件,我们只需将其配置到 kubectl 默认读取的位置。

  1. 安装 kubectl(推荐): 虽然 K3s 自带了 kubectl (位于 /usr/local/bin/k3s kubectl),但为方便使用,我们安装 openEuler 源中提供的标准 kubectl 客户端。

    bash 复制代码
    dnf install -y kubectl
  2. 配置 Kubeconfig:

    bash 复制代码
    # 创建 .kube 目录
    mkdir -p $HOME/.kube
    
    # 复制 K3s 的配置文件,并设置正确权限(K3s的配置文件默认对 root 只读)
    cp /etc/rancher/k3s/k3s.yaml $HOME/.kube/config
    chown $(id -u):$(id -g) $HOME/.kube/config
    chmod 600 $HOME/.kube/config

步骤四:验证 K3s 单节点集群(单节点执行)

现在,我们的单节点 K8s 集群已经准备就绪!

  1. 检查节点状态:

    bash 复制代码
    kubectl get nodes

    您会看到您的虚拟机主机名显示为 Ready 状态,并且 ROLES 包含 control-plane,master。这证明 openEuler 24.03 作为一个节点已成功注册到 K3s 集群中

  1. 检查 K3s 内置组件: K3s 的一大优势是"开箱即用",它内置了 Traefik(Ingress)Metrics ServerCoreDNS 等核心组件。

    bash 复制代码
    kubectl get pods -n kube-system

    您会看到 coredns-xxx, traefik-xxx, metrics-server-xxx 等 Pod 都处于 Running 状态。这证明 openEuler 24.03 完美兼容 K3s 的所有内置服务,无需任何额外配置

步骤五:部署并访问测试应用(单节点执行)

最后,我们部署一个 Nginx 应用,并通过 NodePort 访问它,以验证 K3s 集群网络功能完整。

  1. 创建 Nginx Deployment 和 Service:

    bash 复制代码
    kubectl create deployment nginx --image=nginx
    kubectl expose deployment nginx --port=80 --type=NodePort
  2. 查看服务端口:

    bash 复制代码
    kubectl get svc nginx

    记下 Nginx 服务映射到宿主机的端口(例如 80:3xxxx/TCP 中的 3xxxx)。

  3. 访问 Nginx: 您可以使用 curl 配合您虚拟机的 IP(或 127.0.0.1)和刚查到的 NodePort 端口号进行访问。

    bash 复制代码
    # 假设查到的端口是 31080,使用 localhost 访问
    curl http://127.0.0.1:31080
    
    # 或者使用虚拟机的 IP (假设为 192.168.1.10)
    # curl http://192.168.1.10:31080

    成功返回 Nginx 的欢迎页面,标志着这个基于 openEuler 24.03K3s 单节点集群功能完整,网络通畅!

四、 评测总结:稳固、高效、轻量的全场景底座

通过在 openEuler 24.03 LTS SP2 单机环境中部署 K3s 的实战评测,我们可以得出以下深刻结论:

  1. 完美兼容,极致轻量: 整个安装过程"一键成功",K3s 及其依赖的 containerdcni 等组件在 openEuler 24.03 上运行完美,无需任何额外补丁或繁琐配置。这得益于 openEuler 24.03 搭载的 6.6 内核对 cgroup v2 和内核网络特性的原生支持。系统启动后,K3s 自身资源占用极低,与 openEuler 高效的内核调度结合,为资源受限场景提供了最大化的业务运行空间
  2. 生态成熟,开箱即用: K3s 自带的 TraefikCoreDNSMetrics-Server 等核心服务均能稳定运行,证明了 openEuler 24.03 作为云原生底座的生态成熟度和高兼容性。其 dnf 源中提供的 kubectl 等工具链版本匹配、易于获取,极大提升了易用性
  3. 开发者与边缘的"黄金搭档": "openEuler 24.03 + K3s"的组合,是开发者在单机(如笔记本电脑、开发虚拟机)上模拟完整 K8s API 环境的最佳实践。它开机资源占用极低、启动迅速,让开发者能快速搭建、销毁和测试环境。更重要的是,这套组合为蓬勃发展的边缘计算市场(如物联网网关、智能摄像头、边缘 AI 盒子)提供了一个经过验证的、高可靠、高性能的理想底座

五、 未来展望:AI 浪潮下的"全能" openEuler

随着大模型和 AI 应用的爆发,算力调度、GPU/NPU 资源池化、AI 框架与 K8s 的深度融合已成趋势。openEuler 社区早已在此布局,其在异构算力支持(如对昇腾、英伟达等 AI 芯片的适配)、AI 容器(如 MindSpore 容器)优化、CgroupAI 算力资源的精细化管理等方面持续发力。

从本次 K3s 实战的"轻盈"出发,到承载数据中心 K8s 集群的"稳重",再到拥抱未来云原生 AI 的"智能",openEuler 24.03 LTS SP2 凭借其强大的 6.6 内核和完善的开源生态,真正践行了其作为"面向数字基础设施"的"全场景"开源操作系统的承诺

分享一下 openEuler 相关产品官方信息:​

1.产品地址:www.openeuler.org/​

2.评测地址:www.openeuler.org/​

3.产品使用说明:docs.openeuler.openatom.cn/zh/

相关推荐
绝无仅有1 小时前
面试之高级实战:在大型项目中如何利用AOP、Redis及缓存设计
后端·面试·架构
爱找乐子的李寻欢1 小时前
谁懂啊!测试环境 RocketMQ 延迟消息崩了,罪魁祸首是个…
后端
milixiang1 小时前
项目部署时接口短暂访问异常问题修复:Nacos+Gateway活跃节点监听
后端·spring cloud
Stream1 小时前
加密与签名技术之密钥派生与密码学随机数
后端·算法
绝无仅有1 小时前
redis缓存功能结合实际项目面试之问题与解析
后端·面试·架构
Stream1 小时前
加密与签名技术之哈希算法
后端·算法
z***D6481 小时前
SpringBoot 新特性
java·spring boot·后端
IT_陈寒2 小时前
JavaScript 性能优化:7个 V8 引擎隐藏技巧让你的代码提速200%
前端·人工智能·后端
qq_12498707532 小时前
基于springboot的糖业信息咨讯网站(源码+论文+部署+安装)
java·spring boot·后端·毕业设计·毕设