论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
数据库
›
SQL-Server
›
【云原生系列--Longhorn的摆设】
【云原生系列--Longhorn的摆设】
风雨同行
金牌会员
|
2024-11-17 05:23:31
|
显示全部楼层
|
阅读模式
楼主
主题
985
|
帖子
985
|
积分
2955
Longhorn摆设手册
1.摆设longhorn
longhorn架构图:
1.1摆设环境要求
kubernetes版本要大于v1.21
每个节点都必须装
open-iscsi
,Longhorn依赖于 iscsiadm主机为 Kubernetes 提供长期卷。
apt-get install -y open-iscsi
复制代码
RWX 支持要求每个节点都安装 NFSv4 客户端
主机文件体系支持file extents存储数据的功能
ext4
xfs
bash,curl,findmnt,grep,awk,blkid,lsblk 必须安装
Mount propagation 必须启用,它答应将一个容器挂载的卷与同一 pod 中的其他容器共享,甚至可以与同一节点上的其他 pod 共享
1.2 环境查抄
root@master01:~/Longhorn# wget https://github.com/longhorn/cli/releases/download/v1.7.1/longhornctl-linux-amd64
root@master01:~/Longhorn# ll
total 192552
-rwxr-xr-x 1 root root 40878232 Nov 15 10:16 longhornctl-linux-amd64
root@master01:~/Longhorn# chmod a+x longhornctl-linux-amd64
root@master01:~/Longhorn# export KUBECONFIG=/root/.kube/config
root@master01:~/Longhorn# ./longhornctl-linux-amd64 check preflight #这个是每个节点启动pod来检查环境是否合格
复制代码
1.3 使用helm摆设longhorn
留意事项:longhorn默认的数据存放路径是/var/lib/longhorn,根据实际环境修改,可以在values.yaml文件里修改,但是我修改时没有生效,故采用传参的方式修改
1、添加helm仓库
helm repo add longhorn https://charts.longhorn.io
helm repo update
2、创建命名空间longhorn-system(在chart包中写死了命名空间必须是longhorn)
kubectl create ns longhorn-system
3、安装longhorn
(1)在线安装
helm install longhorn longhorn/longhorn --namespace longhorn-system --set defaultDataPath=/data/longhorn --create-namespace --version 1.7.1
(2)离线安装
wget https://github.com/longhorn/longhorn/releases/download/v1.7.1/charts.tar.gz
helm install longhorn longhorn --namespace longhorn-system --set defaultDataPath=/data/longhorn
root@master01:~/Longhorn/longhorn# kubectl get pod -n longhorn-system
NAME READY STATUS RESTARTS AGE
csi-attacher-644c7b7568-495hh 1/1 Running 0 56m
csi-attacher-644c7b7568-cqb66 1/1 Running 0 56m
csi-attacher-644c7b7568-v9p4r 1/1 Running 1 (71m ago) 89m
csi-provisioner-58cc84b487-24gc4 1/1 Running 0 56m
csi-provisioner-58cc84b487-hqtds 1/1 Running 1 (71m ago) 89m
csi-provisioner-58cc84b487-jj8z5 1/1 Running 0 56m
csi-resizer-6d5c898684-gk5kx 1/1 Running 0 56m
csi-resizer-6d5c898684-lmln4 1/1 Running 0 89m
csi-resizer-6d5c898684-rmwrs 1/1 Running 0 56m
csi-snapshotter-68b686dc4-fgm4f 1/1 Running 0 56m
csi-snapshotter-68b686dc4-lfgx5 1/1 Running 0 56m
csi-snapshotter-68b686dc4-r552m 1/1 Running 0 89m
engine-image-ei-f4f7aa25-54kmw 1/1 Running 0 89m
engine-image-ei-f4f7aa25-bfnbt 1/1 Running 0 89m
engine-image-ei-f4f7aa25-w4pmj 1/1 Running 0 89m
instance-manager-2b871e5c27104071c7f8ae34c9384354 1/1 Running 0 54m
instance-manager-6d8ba5e2d6850b4dbd6df7e2bf4f9c16 1/1 Running 0 54m
instance-manager-95de354c4f2e1d5c13376714640f455c 1/1 Running 0 89m
longhorn-csi-plugin-2b2xc 3/3 Running 0 89m
longhorn-csi-plugin-5zb6x 3/3 Running 0 89m
longhorn-csi-plugin-9ccmx 3/3 Running 0 89m
longhorn-driver-deployer-795c448b6c-vcg46 1/1 Running 0 56m
longhorn-manager-4pg48 2/2 Running 5 (91m ago) 103m
longhorn-manager-dvjmd 2/2 Running 0 87m
longhorn-manager-jgmhw 2/2 Running 5 (91m ago) 103m
longhorn-ui-75f6f6bc8b-b5vkp 1/1 Running 4 (90m ago) 91m
longhorn-ui-75f6f6bc8b-ktkfz 1/1 Running 2 (56m ago) 56m
#注意:部署longhorn需要拉取镜像
root@master01:~/Longhorn# cat pull-image.sh
nerdctl pull longhornio/longhorn-manager:v1.7.1 --namespace=k8s.io
nerdctl pull longhornio/longhorn-share-manager:v1.7.1 --namespace=k8s.io
nerdctl pull longhornio/longhorn-ui:v1.7.1 --namespace=k8s.io
nerdctl pull longhornio/csi-attacher:v4.6.1 --namespace=k8s.io
nerdctl pull longhornio/csi-provisioner:v4.0.1 --namespace=k8s.io
nerdctl pull longhornio/csi-resizer:v1.11.1 --namespace=k8s.io
nerdctl pull longhornio/csi-snapshotter:v7.0.2 --namespace=k8s.io
nerdctl pull longhornio/longhorn-engine:v1.7.1 --namespace=k8s.io
nerdctl pull longhornio/longhorn-instance-manager:v1.7.1 --namespace=k8s.io
nerdctl pull longhornio/csi-node-driver-registrar:v2.12.0 --namespace=k8s.io
nerdctl pull longhornio/livenessprobe:v2.14.0 --namespace=k8s.io
nerdctl pull longhornio/longhorn-cli:v1.7.1 --namespace=k8s.io
nerdctl pull registry.k8s.io/pause:3.1 --namespace=k8s.io
nerdctl pull alpine:3.17 --namespace=k8s.io
复制代码
1.4 查抄longhorn
1.4.1查看storageclass存储卷
root@master01:~/Longhorn# kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
longhorn (default) driver.longhorn.io Delete Immediate true 92m
longhorn-static driver.longhorn.io Delete Immediate true 21m
nfs-client k8s-sigs.io/nfs-subdir-external-provisioner Delete Immediate false 49d
#可以看出longhorn自动给集群创建两个Storageclass动态分配卷且会自动给longhorn设置为default,longhorn-static这个Storageclass是手动创建pv、pvc卷,手动将pvc和Storageclass绑定
复制代码
1.4.2创建pod
因为我的集群只有三个节点,而longhorn是三副本存储机制,故我每个节点都存有pod的数据,如果你是四个node节点,你就会发现有个节点是没有mongodb-0 pod的数据
2.Longhorn组件的概念
2.1csi-attacher
作用
:csi-attacher 负责将 Kubernetes 的长期卷(Persistent Volume, PV)与容器(Pod)关联。它会确保在 Pod 被调度到节点时,正确地挂载相关的卷。
功能
:主要处理惩罚 CSI 卷的挂载操纵,即在 pod 创建时将卷“附加”(attach)到节点,大概在 pod 被删除时,卸载卷。
2.2
csi-provisioner
作用
:csi-provisioner 是 Longhorn 的主动存储卷创建控制器,它负责动态创建存储卷。它与 Kubernetes 的 PersistentVolumeClaim(PVC)资源配合使用,当 PVC 创建时,如果没有匹配的长期卷,csi-provisioner 会调用 CSI 驱动去创建一个新的 Longhorn 卷。
功能
:监听 PVC 事件,基于用户请求主动创建或删除卷。这个组件使得卷的动态供应成为大概。
2.3
csi-resizer
作用
:csi-resizer 负责在需要时调整卷的巨细(即扩容或缩容),当用户通过 PVC 调整卷巨细时,csi-resizer 会触发 Longhorn 进行相应的卷扩展或缩减。
功能
:监听 PVC 的 spec.resources.requests.storage 变革,并根据 PVC 的请求对卷进行扩展。它与 Longhorn 的存储引擎交互,确保实际存储卷的巨细和请求一致。
2.4
csi-snapshotter
作用
:csi-snapshotter 负责对卷进行快照操纵。它答应用户创建卷的快照,以便进行数据备份、恢复或克隆操纵。
功能
:监听 Kubernetes 中的 VolumeSnapshot 资源,并与 Longhorn 交互来创建、删除和恢复卷快照。通过这个组件,用户可以在 Kubernetes 中管理 Longhorn 卷的快照。
2.5engine-image-ei
作用
:engine-image-ei 负责管理 Longhorn 存储引擎的镜像版本。在 Longhorn 中,每个存储引擎(例如,块存储的实现)都与一个“引擎镜像”相关联,这些镜像包罗特定版本的存储引擎和驱动步伐。
功能
:通过这个组件,Longhorn 可以管理和更新其存储引擎的版本,确保引擎镜像正确地加载和摆设。
2.6
instance-manager
作用
:instance-manager 管理 Longhorn 中的数据卷和节点之间的连接。它负责为每个卷启动和管理虚拟机实例(或容器)来进行数据管理和 I/O 操纵。
功能
:在 Kubernetes 节点上创建并管理 Longhorn 数据卷的“实例”(实际运行的容器),这些实例负责数据的读取和写入操纵。instance-manager 确保数据存储和访问的高可用性和可靠性。
2.7
longhorn-csi-plugin
作用
:longhorn-csi-plugin 是 Longhorn 提供的 CSI 插件,它答应 Kubernetes 使用 Longhorn 存储。它充当 Kubernetes 与 Longhorn 存储之间的中介,负责卷的挂载、卸载、创建等操纵。
功能
:实现了 Kubernetes CSI 卷插件的接口,负责与 Longhorn 存储体系的交互,包罗卷的创建、删除、挂载等操纵。
2.8
longhorn-manager
作用
:longhorn-manager 是 Longhorn 的控制器组件,负责整个 Longhorn 体系的管理、协调和控制。它监视和管理 Longhorn 存储体系的各个组件,包罗卷、节点、快照、卷克隆等。
功能
:主要负责 Longhorn 存储体系的团体操纵,例如卷管理、快照管理、扩容和缩容操纵、节点状态管理等。它确保体系的健康状态,协调各个组件的工作。
2.9
longhorn-ui
作用
:longhorn-ui 是 Longhorn 的用户界面组件,提供了一个 Web 界面,用户可以通过它来管理和监控 Longhorn 存储体系。它答应用户方便地查看存储卷的状态、创建和删除卷、管理快照等。
功能
:提供图形化界面用于卷管理、快照管理、节点监控和集群状态查看。用户可以通过 Web UI 来操纵和配置 Longhorn 存储体系,进行卷的创建、删除、备份等操纵。
总结:
csi-attacher:卷挂载
csi-provisioner:动态卷供应
csi-resizer:卷扩展
csi-snapshotter:卷快照
engine-image-ei:存储引擎镜像管理
instance-manager:管理存储实例
longhorn-csi-plugin:与 Kubernetes 的 CSI 插件接口
longhorn-manager:集群和组件管理
longhorn-ui:图形化管理界面
参考链接:https://www.cnblogs.com/misakivv/p/18436873
官网:https://longhorn.io/
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
风雨同行
金牌会员
这个人很懒什么都没写!
楼主热帖
深入Python网络编程:从基础到实践 ...
MySQL锁(乐观锁、悲观锁、多粒度锁) ...
中职网络安全技能大赛SSH弱口令渗透测 ...
阿里云体验有奖:如何将 PolarDB-X 与 ...
HTML+CSS+JS——动漫风二次元论坛(2页) ...
四、MySQL之数据查询语言(二) ...
超融合和传统 “VMware + FC SAN& ...
转载自ChatGPT:Python关键字 asynico ...
损失函数-pytorch
ClickHouse(02)ClickHouse架构设计介绍 ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
物联网
Java
虚拟化与私有云
Oracle
网络安全
分布式数据库
DevOps与敏捷开发
.Net
快速回复
返回顶部
返回列表