内容来源于官方 Longhorn 1.1.2
英文技术手册。
系列
- Longhorn 是什么?
- Longhorn 云原生容器分布式存储 - 设计架构和概念
- Longhorn 云原生容器分布式存储 - 部署篇
- Longhorn 云原生容器分布式存储 - 券和节点
- Longhorn 云原生容器分布式存储 - K8S 资源配置示例
- Longhorn 云原生容器分布式存储 - 监控(Prometheus)
- Longhorn 云原生容器分布式存储 - 备份与恢复
- Longhorn 云原生容器分布式存储 - 高可用
- Longhorn 云原生容器分布式存储 - 支持 ReadWriteMany (RWX) 工作负载
- Longhorn 云原生容器分布式存储 - 定制部署默认设置
- Longhorn云原生容器分布式存储 - Air Gap 安装
- Longhorn 云原生容器分布式存储 - Python Client
目录
- 当
Longhorn
卷文件系统损坏时,Pod
卡在creating
状态 - 非标准
Kubelet
目录 - Longhorn 默认设置不保留
- 分离和附加卷后,Recurring job 不会创建新 job
- 使用 Traefik 2.x 作为 ingress controller
- 使用 cURL 创建 Support Bundle
- Longhorn RWX 共享挂载所有权在 consumer Pod 中显示为 nobody
- 由于节点上的多路径,
MountVolume.SetUp for volume
失败 - Longhorn-UI:WebSocket 握手期间出错:意外响应代码:200 #2265
- Longhorn 卷需要很长时间才能完成安装
volume readonly or I/O error
volume pvc-xxx not scheduled
1. 当 Longhorn
卷文件系统损坏时,Pod
卡在 creating
状态
适用版本
所有 Longhorn
版本。
症状
Pod
停留在容器 Creating
中,日志中有错误。
Warning FailedMount 30s (x7 over 63s) kubelet MountVolume.SetUp failed for volume "pvc-bb8582d5-eaa4-479a-b4bf-328d1ef1785d" : rpc error: code = Internal desc = 'fsck' found errors on device /dev/longhorn/pvc-bb8582d5-eaa4-479a-b4bf-328d1ef1785d but could not correct them: fsck from util-linux 2.31.1
ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing mtab file while determining whether /dev/longhorn/pvc-bb8582d5-eaa4-479a-b4bf-328d1ef1785d is mounted.
/dev/longhorn/pvc-bb8582d5-eaa4-479a-b4bf-328d1ef1785d contains a file system with errors, check forced.
/dev/longhorn/pvc-bb8582d5-eaa4-479a-b4bf-328d1ef1785d: Inodes that were part of a corrupted orphan linked list found.
/dev/longhorn/pvc-bb8582d5-eaa4-479a-b4bf-328d1ef1785d: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
(i.e., without -a or -p options)
原因
当 Longhorn
卷的文件系统损坏时,Longhorn
无法重新挂载该卷。 因此,workload
无法重新启动。
Longhorn
无法自动修复此问题。发生这种情况时,您需要手动解决此问题。
解决方案
- 寻找迹象:
- 从
Longhorn UI
检查卷是否处于error
状态。 - 检查
Longhorn
管理器pod
日志以了解系统损坏错误消息。
如果卷未处于
error
状态,则Longhorn
卷内的文件系统可能因外部原因而损坏。 - 从
- 缩减
workload
。 - 从
UI
将卷附加到任何一个node
。 SSH
进入node
。- 在
/dev/longhorn/
下找到Longhorn
卷对应的块设备。 - 运行
fsck
来修复文件系统。 - 从
UI
分离卷。 - 扩大
workload
。
2. 非标准 Kubelet
目录
适用版本
所有 Longhorn
版本。
症状
当 Kubernetes
集群使用非标准的 Kubelet
目录时,longhorn-csi-plugin
无法启动。
ip-172-30-0-73:/home/ec2-user # kubectl -n longhorn-system get pod
NAME READY STATUS RESTARTS AGE
longhorn-ui-5b864949c4-4sgws 1/1 Running 0 7m35s
longhorn-manager-tx469 1/1 Running 0 7m35s
longhorn-driver-deployer-5444f75b8f-kgq5v 1/1 Running 0 7m35s
longhorn-csi-plugin-s4fg7 0/2 ContainerCreating 0 6m59s
instance-manager-r-d185a1e9 1/1 Running 0 7m10s
instance-manager-e-b5e69e2d 1/1 Running 0 7m10s
csi-attacher-7d975797bc-qpfrv 1/1 Running 0 7m
csi-snapshotter-7dbfc7ddc6-nqqtg 1/1 Running 0 6m59s
csi-attacher-7d975797bc-td6tw 1/1 Running 0 7m
csi-resizer-868d779475-v6jvv 1/1 Running 0 7m
csi-resizer-868d779475-2bbs2 1/1 Running 0 7m
csi-provisioner-5c6845945f-46qnb 1/1 Running 0 7m
csi-resizer-868d779475-n5vjn 1/1 Running 0 7m
csi-provisioner-5c6845945f-fjnrq 1/1 Running 0 7m
csi-snapshotter-7dbfc7ddc6-mhfpl 1/1 Running 0 6m59s
csi-provisioner-5c6845945f-4lx5c 1/1 Running 0 7m
csi-attacher-7d975797bc-flldq 1/1 Running 0 7m
csi-snapshotter-7dbfc7ddc6-cms2v 1/1 Running 0 6m59s
engine-image-ei-611d1496-dlqcs 1/1 Running 0 7m10s
原因
由于 Longhorn
无法检测到 Kubelet
的根目录设置在哪里。
解决方案
Longhorn
通过 longhorn.yaml
安装:
取消注释并编辑:
#- name: KUBELET_ROOT_DIR
# value: /var/lib/rancher/k3s/agent/kubelet
Longhorn 通过 Rancher - App
安装:
点击 Customize Default Settings
设置 Kubelet
根目录
相关信息
- Longhorn issue:
- 更多信息可以在
OS/Distro 特定配置
下的故障排除部分找到。
3. Longhorn 默认设置不保留
适用版本
所有 Longhorn
版本。
症状
- 通过
helm
或Rancher App
升级Longhorn
系统时,修改后的Longhorn
默认设置不会保留。 - 通过
kubectl -n longhorn-system edit configmap longhorn-default-setting
修改默认设置时,修改不会应用于Longhorn
系统。
背景
此默认设置仅适用于尚未部署的 Longhorn
系统。 它对现有的 Longhorn
系统没有影响。
解决方案
我们建议使用 Longhorn UI
更改现有集群上的 Longhorn
设置。
您也可以使用 kubectl
,但请注意这将绕过 Longhorn
后端验证。
kubectl edit settings <SETTING-NAME> -n longhorn-system
4. 分离和附加卷后,Recurring job 不会创建新 job
适用版本
所有 Longhorn
版本。
症状
当卷被分离很长时间后被附加时,循环作业不会创建新 job。
根据 Kubernetes CronJob
限制: