摘要:

雲原生已成為驅動數字基礎設施演進的核心動力。作為承載這一切的基石,操作系統正面臨着向全場景、高效率、強安全轉變的深刻挑戰。openEuler,作為面向數字基礎設施的開源操作系統,其最新發布的 openEuler 24.03 LTS SP2 版本,搭載了革命性的 Linux 6.6 內核,為雲原生應用提供了前所未有的性能與穩定性。

從數據中心到邊緣:基於 openEuler 24.03 LTS SP2 的 K3s 輕量化雲原生實戰評測_Nginx

一、 時代浪潮:雲原生的“全場景”挑戰

雲原生(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 非常輕量,但仍需基本資源)

推薦按此配置:

從數據中心到邊緣:基於 openEuler 24.03 LTS SP2 的 K3s 輕量化雲原生實戰評測_雲原生_02

從數據中心到邊緣:基於 openEuler 24.03 LTS SP2 的 K3s 輕量化雲原生實戰評測_開發者_03

步驟一:系統初始化(單節點執行)

為確保 K3s 順利運行,我們進行標準化的系統環境準備。

  1. 關閉防火牆和 SELinux(為簡化教程,生產環境應配置精細規則):
systemctl stop firewalld
systemctl disable firewalld

# 臨時關閉SELinux
setenforce 0
# 永久關閉,重啓生效
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

從數據中心到邊緣:基於 openEuler 24.03 LTS SP2 的 K3s 輕量化雲原生實戰評測_雲原生_04

  1. 關閉 Swap 分區(K8s/K3s 的標準要求):
swapoff -a
# 永久關閉,註釋掉 /etc/fstab 中的 swap 行
sed -i '/ swap / s/^/#/' /etc/fstab

從數據中心到邊緣:基於 openEuler 24.03 LTS SP2 的 K3s 輕量化雲原生實戰評測_雲原生_05

  1. 確保內核模塊加載openEuler 24.03 默認已支持): K3s 依賴 br_netfilteroverlay 等模塊。openEuler 24.03 默認支持良好,我們可以手動檢查加載
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 後,應看到配置生效的輸出

從數據中心到邊緣:基於 openEuler 24.03 LTS SP2 的 K3s 輕量化雲原生實戰評測_雲原生_06

步驟二:安裝 K3s(單節點執行)

K3s 以其“一鍵安裝”而聞名。我們將使用國內鏡像源來加速安裝過程

  1. 執行 K3s 官方安裝腳本(使用國內鏡像): openEuler 24.03 已內置 curl,可直接使用。
# 使用 mirror.rancher.cn 作為國內加速鏡像
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -

這條命令會自動下載 K3s 二進制文件,並將其註冊為 systemd 服務自動運行。安裝過程非常迅速,充分體現了其輕量化的優勢。

從數據中心到邊緣:基於 openEuler 24.03 LTS SP2 的 K3s 輕量化雲原生實戰評測_雲原生_07

  1. 檢查 K3s 服務狀態:
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 客户端。
dnf install -y kubectl
  1. 配置 Kubeconfig:
# 創建 .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

從數據中心到邊緣:基於 openEuler 24.03 LTS SP2 的 K3s 輕量化雲原生實戰評測_雲原生_08

步驟四:驗證 K3s 單節點集羣(單節點執行)

現在,我們的單節點 K8s 集羣已經準備就緒!

  1. 檢查節點狀態:
kubectl get nodes

您會看到您的虛擬機主機名顯示為 Ready 狀態,並且 ROLES 包含 control-plane,master。這證明 openEuler 24.03 作為一個節點已成功註冊到 K3s 集羣中

從數據中心到邊緣:基於 openEuler 24.03 LTS SP2 的 K3s 輕量化雲原生實戰評測_雲原生_09

  1. 檢查 K3s 內置組件:K3s 的一大優勢是“開箱即用”,它內置了 Traefik(Ingress)Metrics ServerCoreDNS 等核心組件。
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:
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
  1. 查看服務端口:
kubectl get svc nginx

記下 Nginx 服務映射到宿主機的端口(例如 80:3xxxx/TCP 中的 3xxxx)。

  1. 訪問 Nginx: 您可以使用 curl 配合您虛擬機的 IP(或 127.0.0.1)和剛查到的 NodePort 端口號進行訪問。
# 假設查到的端口是 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 輕量化雲原生實戰評測_開發者_10

四、 評測總結:穩固、高效、輕量的全場景底座

通過在 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

從數據中心到邊緣:基於 openEuler 24.03 LTS SP2 的 K3s 輕量化雲原生實戰評測_雲原生_11

隨着大模型和 AI 應用的爆發,算力調度、GPU/NPU 資源池化、AI 框架與 K8s 的深度融合已成趨勢。openEuler 社區早已在此佈局,其在異構算力支持(如對昇騰、英偉達等 AI 芯片的適配)、AI 容器(如 MindSpore 容器)優化、CgroupAI 算力資源的精細化管理等方面持續發力。

從本次 K3s 實戰的“輕盈”出發,到承載數據中心 K8s 集羣的“穩重”,再到擁抱未來雲原生 AI 的“智能”,openEuler 24.03 LTS SP2 憑藉其強大的 6.6 內核和完善的開源生態,真正踐行了其作為“面向數字基礎設施”的“全場景”開源操作系統的承諾

分享一下 openEuler 相關產品官方信息:
1.產品地址:https://www.openeuler.org/

2.評測地址:https://www.openeuler.org/

3.產品使用説明:https://docs.openeuler.openatom.cn/zh/


如果您正在尋找面向未來的開源操作系統,不妨看看DistroWatch 榜單中快速上升的 openEuler:<https://distrowatch.com/table-mobile.php?distribution=openeuler>,一個由開放原子開源基金會孵化、支持“超節點”場景的Linux 發行版。 openEuler官網:<https://www.openeuler.openatom.cn/zh/>