4. Longhorn UI 与 CLI:Dashboard 功能概览、kubectl 插件安装、longhornctl 命令行工具使用
在生产环境中,SRE 工程师需要同时掌握图形化界面与命令行工具,才能高效地管理 Longhorn 存储集群。本章将系统讲解 Longhorn Dashboard 的核心功能模块、kubectl 插件的安装与验证,以及 longhornctl 命令行工具的常用操作,帮助你在版本漂移校准和备份恢复场景中快速定位问题并执行操作。
4.1 Longhorn Dashboard 功能概览
Longhorn Dashboard 是部署在 Kubernetes 集群内的 Web 管理界面,默认通过 longhorn-ui Service 暴露。它提供了集群存储资源的全局视图,是日常巡检和故障排查的第一入口。
访问方式: 默认 Service 类型为 ClusterIP,可通过
kubectl port-forward -n longhorn-system svc/longhorn-ui 8080:80 映射到本地,浏览器访问 http://localhost:8080。
Dashboard 主要分为以下功能区域:
| 功能模块 | 核心内容 | 版本漂移场景用途 |
|---|---|---|
| Dashboard 总览 | 集群健康状态、节点数量、卷总数、已用/总容量 | 快速判断集群整体版本一致性(如节点版本差异告警) |
| Volume 列表 | 每个卷的状态、大小、健康度、副本数、挂载节点 | 识别因版本漂移导致的卷挂载失败或副本重建异常 |
| Node 列表 | 节点磁盘使用率、引擎/副本实例运行状态、Longhorn 版本 | 对比各节点 Longhorn 版本,发现版本不一致节点 |
| Backup 管理 | 备份目标配置、备份列表、恢复操作入口 | 执行跨版本备份恢复,验证备份数据完整性 |
| Setting 配置 | 全局参数(副本数、备份策略、存储网络等) | 校准因版本升级导致的默认参数变更 |
| Event 日志 | 集群事件流,包含错误、警告、操作记录 | 追溯版本漂移期间产生的异常事件 |
关键操作路径: 在版本漂移校准场景中,建议首先进入 Node 列表 检查各节点 Longhorn 版本号,然后进入 Volume 列表 筛选出状态异常的卷,最后通过 Backup 管理 执行备份恢复或回滚操作。
4.2 kubectl 插件安装与使用
Longhorn 官方提供了 kubectl-longhorn 插件,用于通过命令行直接管理 Longhorn 资源,无需频繁切换 Web 界面。该插件在版本漂移校准和批量操作场景中尤为高效。
4.2.1 插件安装
推荐使用 krew 插件管理器进行安装,确保版本与集群匹配:
# 安装 krew(如未安装)
(
set -x; cd "$(mktemp -d)" &&
OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/arm64/arm64/')" &&
curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/krew-${OS}_${ARCH}.tar.gz" &&
tar zxvf "krew-${OS}_${ARCH}.tar.gz" &&
./krew-"${OS}_${ARCH}" install krew
)
# 添加 krew 到 PATH
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
# 安装 longhorn 插件
kubectl krew install longhorn
# 验证安装
kubectl longhorn --version
版本兼容性注意: 确保
kubectl-longhorn 插件版本与 Longhorn 控制面版本一致。版本漂移场景中,如果插件版本高于集群版本,可能导致 API 字段解析失败。建议使用 kubectl longhorn version 对比集群版本。
4.2.2 常用命令速查
| 命令 | 功能 | 版本漂移场景示例 |
|---|---|---|
kubectl longhorn volume list |
列出所有卷及其状态 | 筛选出 Degraded 或 Faulted 状态的卷 |
kubectl longhorn node list |
列出节点及 Longhorn 版本 | 检查各节点 Engine Image 版本是否一致 |
kubectl longhorn backup list |
列出所有备份 | 确认备份创建时间是否在版本升级前 |
kubectl longhorn backup restore |
从备份恢复卷 | 跨版本恢复时指定 --backup-volume 参数 |
kubectl longhorn engine upgrade |
升级卷引擎镜像 | 校准版本漂移后卷的引擎版本 |
4.2.3 插件输出示例
执行 kubectl longhorn node list 可快速发现版本不一致节点:
NAME STATUS READY ALLOW_SCHEDULING ENGINE_IMAGE_VERSION NODE_ID
node-01 Healthy True True v1.6.2 k8s-node-01
node-02 Healthy True True v1.6.2 k8s-node-02
node-03 Healthy True True v1.5.3 k8s-node-03 ← 版本漂移
node-04 Healthy True True v1.6.2 k8s-node-04
校准动作: 发现
node-03 引擎版本为 v1.5.3,与集群其他节点 v1.6.2 不一致。此时应执行 kubectl longhorn engine upgrade --node node-03 --image longhornio/longhorn-engine:v1.6.2 进行版本对齐。
4.3 longhornctl 命令行工具使用
longhornctl 是 Longhorn 提供的独立 CLI 工具,用于在节点本地执行诊断、安装前检查、版本迁移等操作。与 kubectl 插件不同,longhornctl 直接与 Longhorn 后端服务交互,适合在 SSH 到节点后执行底层操作。
4.3.1 安装 longhornctl
支持二进制下载和容器化运行两种方式:
# 方式一:二进制安装(Linux amd64)
curl -sSfL https://github.com/longhorn/cli/releases/latest/download/longhornctl-linux-amd64 -o longhornctl
chmod +x longhornctl
sudo mv longhornctl /usr/local/bin/
# 方式二:容器运行(无需安装)
docker run --rm -v /var/lib/longhorn:/var/lib/longhorn longhornio/longhornctl:latest version
# 验证安装
longhornctl version
4.3.2 核心命令分类
| 命令类别 | 命令 | 说明 |
|---|---|---|
| 诊断 | longhornctl check |
执行集群健康检查,包括磁盘、网络、版本一致性 |
| 安装前检查 | longhornctl install preflight |
检查节点是否满足 Longhorn 安装前提条件 |
| 版本迁移 | longhornctl migrate |
在版本升级或降级时迁移数据格式 |
| 备份恢复 | longhornctl backup restore |
从备份存储中恢复卷数据到本地 |
| 信息查看 | longhornctl info |
查看节点 Longhorn 组件版本和配置 |
4.3.3 版本漂移场景实战:使用 longhornctl 进行版本检查
当集群出现版本漂移时,longhornctl check 可以快速定位不一致的组件:
# 在疑似版本漂移的节点上执行
longhornctl check --kubeconfig /etc/kubernetes/admin.conf
# 输出示例
[PASS] Kernel module: iscsi_tcp
[PASS] Kernel module: nbd
[PASS] Multipath: disabled
[FAIL] Engine image version mismatch: expected v1.6.2, found v1.5.3
[FAIL] Longhorn manager version mismatch: expected v1.6.2, found v1.5.3
[PASS] Disk space: /var/lib/longhorn (85% used, threshold 90%)
最佳实践: 在版本升级前,使用
longhornctl install preflight 检查所有节点;升级后使用 longhornctl check 验证版本一致性。若发现漂移,使用 longhornctl migrate 进行数据格式对齐。
4.4 工具选择建议
根据不同的运维场景,选择合适的工具可以提升效率:
- 日常巡检与批量操作: 优先使用
kubectl-longhorn插件,通过 Kubernetes API 获取结构化数据,便于脚本化处理。 - 节点级诊断与版本迁移: 使用
longhornctl直接在节点上执行,避免网络延迟和 API 版本兼容问题。 - 可视化分析与新手入门: 使用 Longhorn Dashboard,通过图形界面快速理解集群状态。
- 版本漂移校准: 组合使用:Dashboard 发现异常 →
kubectl-longhorn确认版本差异 →longhornctl执行本地迁移和修复。
安全提示:
longhornctl 直接操作节点文件系统,执行 migrate 或 backup restore 前务必确认当前节点角色和数据路径,避免误操作导致数据丢失。建议在操作前使用 longhornctl check 进行预检。