统信UOS怎么安装Longhorn存储_统信UOS K8s Longhorn持久化存储【高级】

老辰大大_3444

老辰大大_3444

2026-04-02

813人浏览

原创

longhorn是统信uos上部署kubernetes集群后适配性高、开箱即用的云原生分布式块存储方案;需验证ext4文件系统、启用loop模块与open-iscsi、通过helm或离线yaml部署,并配置专属storageclass及默认pvc绑定。

统信uos怎么安装longhorn存储_统信uos k8s longhorn持久化存储【高级】

如果您在统信UOS操作系统上部署Kubernetes集群后,需为其添加云原生分布式块存储能力,则Longhorn是适配性高、开箱即用的首选方案。统信UOS基于Linux内核,兼容x86_64与ARM64架构,但需特别注意其默认文件系统(ext4)、SELinux策略及内核模块加载限制。以下是针对统信UOS环境部署Longhorn的实操路径:

一、验证统信UOS系统兼容性与前置准备

Longhorn要求节点支持XFS或ext4文件系统,并启用open-iscsi、nfs-common等基础存储依赖;统信UOS桌面版默认未启用iscsi服务,且部分版本内核未预编译loop设备模块,需手动确认并补全。该步骤旨在确保底层I/O栈满足Longhorn Engine运行条件。

1、检查当前文件系统类型:df -T / | awk 'NR==2 {print $2}'

2、确认loop设备可用:lsmod | grep loop || sudo modprobe loop

3、安装必要工具包:sudo apt update && sudo apt install -y open-iscsi nfs-common xfsprogs

4、启用并启动iscsid服务:sudo systemctl enable iscsid && sudo systemctl start iscsid

5、验证内核参数是否允许挂载:执行sudo sysctl -w vm.swappiness=1并写入/etc/sysctl.conf以持久化。

二、通过Helm在统信UOS K8s集群中部署Longhorn

Helm方式具备配置灵活性与版本可控性,适用于统信UOS服务器版(专业版/企业版)已部署kubectl与helm v3.8+的场景。该方法绕过YAML手工编辑,自动处理CRD注册与RBAC策略绑定,降低权限配置出错风险。

1、添加Longhorn官方chart仓库:helm repo add longhorn https://charts.longhorn.io

2、更新本地仓库索引:helm repo update

3、创建专用命名空间:kubectl create namespace longhorn-system

4、生成适配统信UOS的values定制文件:helm show values longhorn/longhorn > longhorn-values-uno.yaml

5、编辑longhorn-values-uno.yaml,将defaultClassReplicaCount设为2(因统信UOS测试集群常为双节点),并设置nodeSelector匹配UOS节点标签:kubernetes.io/os: linux与kubernetes.io/arch: amd64或arm64

6、执行安装:helm install longhorn longhorn/longhorn --namespace longhorn-system -f longhorn-values-uno.yaml

三、使用kubectl直接部署适配UOS的Longhorn离线包

当统信UOS生产环境处于离线或受限网络时,需预先下载与K8s版本匹配的Longhorn release YAML,并替换镜像为国内镜像源。该方法不依赖Helm,适合严格遵循统信UOS安全加固规范的政企场景。

1、从GitHub Release页面下载对应K8s版本的longhorn.yaml(如v1.5.5适配K8s 1.26+):wget https://github.com/longhorn/longhorn/releases/download/v1.5.5/longhorn.yaml

2、替换全部镜像地址为阿里云镜像:sed -i 's#longhornio/#registry.cn-hangzhou.aliyuncs.com/longhorn-io/#g' longhorn.yaml

3、为UOS节点打标以便调度:kubectl label node $(hostname) node.longhorn.io/create-default-disk=true

4、在longhorn.yaml中定位longhorn-manager DaemonSet,为其securityContext增加privileged: true字段(UOS内核模块加载需特权)

5、应用配置:kubectl apply -f longhorn.yaml

6、等待Pod就绪:kubectl get pods -n longhorn-system --watch,直至所有Pod状态为Running且READY为1/1

四、配置统信UOS专属StorageClass并启用默认PVC绑定

统信UOS环境下需显式定义StorageClass以规避K8s默认storageclass缺失导致PVC Pending问题;同时应禁用Longhorn UI的Ingress暴露(UOS安全策略通常禁止NodePort/Ingress外露),改用端口转发访问。

1、创建longhorn-sc-uno.yaml,指定reclaimPolicy为Delete,volumeBindingMode为Immediate:

2、在spec中设置parameters:numberOfReplicas: "2"、staleReplicaTimeout: "28800"(适配UOS长时间休眠节点)

3、应用StorageClass:kubectl apply -f longhorn-sc-uno.yaml

4、标记为默认StorageClass:kubectl patch storageclass longhorn -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

5、验证默认行为:kubectl get storageclass,确认longhorn条目标注为(default)

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
什么是分布式
什么是分布式

分布式是一种计算和数据处理的方式,将计算任务或数据分散到多个计算机或节点中进行处理。本专题为大家提供分布式相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2013

5

分布式和微服务的区别
分布式和微服务的区别

分布式和微服务的区别在定义和概念、设计思想、粒度和复杂性、服务边界和自治性、技术栈和部署方式等。本专题为大家提供分布式和微服务相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.07

3014

5

python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end='\n', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.27

2780

5

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

2026.02.03

249

24

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.18

5587

5

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2023.08.10

2428

6

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

2024.01.03

3776

7

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

2025.12.06

306

9

数据库Delete用法
数据库Delete用法

数据库Delete用法:1、删除单条记录;2、删除多条记录;3、删除所有记录;4、删除特定条件的记录。更多关于数据库Delete的内容,大家可以访问下面的文章。

2023.11.13

2891

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.7万人学习