作者:運維有術星主
在 Kubernetes 生態系統中,持久化儲存扮演著至關重要的角色,它是支撐業務應用穩定執行的基石。對於那些選擇自建 Kubernetes 叢集的運維架構師而言,選擇合適的後端持久化儲存解決方案是一項至關重要的選型決策。目前 Ceph、GlusterFS、NFS、openEBS 等解決方案已被廣泛採用。
往期文章,我分享過最簡單、實用的 探索 Kubernetes 持久化儲存之 NFS 終極實戰指南。
為了豐富我們的技術棧,併為未來的容器雲平臺設計持久化儲存提供更多靈活性和選擇性。今天,我將跟大家一起探索,如何將 Longhorn 整合至 KubeSphere 管理的 Kubernetes 叢集。
本文核心內容概覽:
- Longhorn 持久化儲存選型說明: 聊一聊 Longhorn 初體驗的感想
- Longhorn 儲存服務如何部署: 如果利用 Helm 安裝 Longhorn
- 實戰演示:建立測試資源,體驗 Longhorn 的效果。
實戰伺服器配置(架構 1:1 復刻小規模生產環境,配置略有不同)
主機名 | IP | CPU | 記憶體 | 系統盤 | 資料盤 | 用途 |
---|---|---|---|---|---|---|
ksp-registry | 192.168.9.90 | 4 | 8 | 40 | 200 | Harbor 映象倉庫 |
ksp-control-1 | 192.168.9.91 | 4 | 8 | 40 | 100 | KubeSphere/k8s-control-plane |
ksp-control-2 | 192.168.9.92 | 4 | 8 | 40 | 100 | KubeSphere/k8s-control-plane |
ksp-control-3 | 192.168.9.93 | 4 | 8 | 40 | 100 | KubeSphere/k8s-control-plane |
ksp-worker-1 | 192.168.9.94 | 4 | 16 | 40 | 100 | k8s-worker/CI |
ksp-worker-2 | 192.168.9.95 | 4 | 16 | 40 | 100 | k8s-worker |
ksp-worker-3 | 192.168.9.96 | 4 | 16 | 40 | 100 | k8s-worker |
ksp-storage-1 | 192.168.9.97 | 4 | 8 | 40 | 400+ | Containerd、OpenEBS、ElasticSearch/Longhorn/Ceph/NFS |
ksp-storage-2 | 192.168.9.98 | 4 | 8 | 40 | 300+ | Containerd、OpenEBS、ElasticSearch/Longhorn/Ceph |
ksp-storage-3 | 192.168.9.99 | 4 | 8 | 40 | 300+ | Containerd、OpenEBS、ElasticSearch/Longhorn/Ceph |
ksp-gpu-worker-1 | 192.168.9.101 | 4 | 16 | 40 | 100 | k8s-worker(GPU NVIDIA Tesla M40 24G) |
ksp-gpu-worker-2 | 192.168.9.102 | 4 | 16 | 40 | 100 | k8s-worker(GPU NVIDIA Tesla P100 16G) |
ksp-gateway-1 | 192.168.9.103 | 2 | 4 | 40 | 自建應用服務代理閘道器/VIP:192.168.9.100 | |
ksp-gateway-2 | 192.168.9.104 | 2 | 4 | 40 | 自建應用服務代理閘道器/VIP:192.168.9.100 | |
ksp-mid | 192.168.9.105 | 4 | 8 | 40 | 100 | 部署在 k8s 叢集之外的服務節點(Gitlab 等) |
合計 | 15 | 56 | 152 | 600 | 2100+ |
實戰環境涉及軟體版本資訊
- 作業系統:openEuler 22.03 LTS SP3 x86_64
- KubeSphere:v3.4.1
- Kubernetes:v1.28.8
- KubeKey: v3.1.1
- Containerd:1.7.13
- NVIDIA GPU Operator:v24.3.0
- NVIDIA 顯示卡驅動:550.54.15
- Longhorn:v1.6.2
1. Longhorn 初體驗
為了貼近生產需求,我在規劃部署時增加了一些想法:
想法 1: 儲存節點規劃:
- 向 Kubernetes 叢集增加三個節點,專門用於 Longhorn 儲存服務
- Longhorn 儲存服務所有元件和資料盤都部署在專屬節點
- 每個儲存節點打上專屬標籤
kubernetes.io/storage=longhorn
,部署 Longhorn 服務時使用 nodeSelector 指定節點標籤 (不指定會預設使用所有 Worker 節點) - 業務負載部署在叢集中其他 Worker 節點,使用 Longhorn 提供的持久化儲存
想法 2: 儲存空間使用規劃:
- 每個儲存節點新增一塊 Longhorn 專用的 100G 資料盤
/dev/sdc
,使用 LVM 型別將其格式化,掛載到/longhorn
目錄 - 更改 Longhorn 預設儲存路徑
/var/lib/longhorn
為/longhorn
很遺憾,在實際部署 Longhorn 時,想法 1 沒有完全實現,Longhorn 儲存服務所有元件可以部署在指定節點,後期建立 Pod 測試時發現,當 Pod 分配的 Worker 節點不安裝 Longhorn CSI 外掛,Pod 建立異常。但是,Longhorn CSI 外掛又無法獨立安裝(也可能我技術太菜,沒找到)。
最終,為了按規劃完成部署,我執行了以下操作:
- 部署測試時分別體驗了 Kubectl 和 Helm 兩種方式,最終成文時選擇了 Helm
- Helm 部署時使用 set 引數指定自定義預設儲存路徑、指定 nodeSelector 部署所有 Longhorn 元件
- 建立測試 Pod 時,也帶上 nodeSelector 標籤(執行在其他 Worker 節點的 Pod,無法使用 Longhorn 儲存)
整個部署過程比較艱辛,使用 Helm 部署失敗或是部署過程異常終止後,想要解除安裝很難、很麻煩。
簡單的說幾句 Longhorn 初體驗後的想法(僅代表個人觀點):
-
因為加了自定義規劃的想法,所以,初次體驗感較差。
-
對於新手而言,按照官方文件使用預設配置部署,能獲得較好的 Longhorn 初體驗(實測)
-
Longhorn 有自身的特性優點,發展至今已經存在一定的生產使用者。但是,沒有一定的技術實力,不建議碰 Longhorn
-
可以部署體驗,瞭解 Longhorn 是什麼樣子,能提供什麼,有什麼優秀特性
-
官方文件資料看著很多,但是實際使用中出現問題的話,能搜到的可參考文件太少,沒一定的技術底蘊,還是不要碰了
-
目前來看,替代 GlusterFS、NFS 的持久化儲存方案,我寧可選擇去征服 Ceph 也不會選擇 Longhorn(Ceph 更成熟,文件資料更多,獲得技術支援的途徑多)
重要說明:
- 由於部署過程中,定製化配置的結果不盡人意。所以,本文最終變成了淺嘗輒止、拋磚引玉之作。歡迎各位 Longhorn 專家,留言、賜教。
- 本文的內容對於安裝部署 Longhorn 有一定的借鑑意義,但是 切勿將本文的實戰過程用於任何型別的正式環境。
2. 前置條件
2.1 擴容儲存專用 Worker 節點
將新增的三臺儲存專用節點加入已有的 Kubernetes 叢集,詳細的擴容操作請參考 KubeKey 擴容 Kubernetes Worker 節點實戰指南。
2.2 初始化資料盤
按規劃將 /dev/sdc
初始化,編輯檔案 /etc/fstab
,將 /longhorn
目錄對應的磁碟配置為開機自動掛載。
LVM 配置比較簡單,操作細節不做解釋,直接上命令。
pvcreate /dev/sdc
vgcreate longhorn /dev/sdc
lvcreate -l 100%VG longhorn -n data
mkfs.xfs /dev/mapper/longhorn-data
mkdir /longhorn
mount /dev/mapper/longhorn-data /longhorn
tail -1 /etc/mtab >> /etc/fstab
2.3 安裝 NFSv4 客戶端
在 Longhorn 系統中, 備份功能需要 NFSv4, v4.1 或是 v4.2, 同時, ReadWriteMany (RWX) 卷功能需要 NFSv4.1。因此,需要提前安裝 NFSv4 客戶端。
yum install nfs-utils
2.4 安裝 open-iscsi
必要元件,Longhorn 依賴主機上的 iscsiadm 向 Kubernetes 提供持久卷。
yum --setopt=tsflags=noscripts install iscsi-initiator-utils
echo "InitiatorName=$(/sbin/iscsi-iname)" > /etc/iscsi/initiatorname.iscsi
systemctl enable iscsid
systemctl start iscsid
2.5 檢查 Kubernetes 版本
執行以下命令檢查 Kubernetes 版本,確保輸出結果中 Server Version
大於等於 v1.21。
$ kubectl version
Client Version: v1.28.8
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.28.8
2.6 使用環境檢查指令碼
Longhorn 官方編寫了一個 shell 指令碼,幫助我們蒐集評估叢集環境是否滿足部署要求。
- 在 Control-1 節點下載指令碼
curl -sSfL https://raw.githubusercontent.com/longhorn/longhorn/v1.6.2/scripts/environment_check.sh -o environment_check.sh
- 執行指令碼
sh environment_check.sh
正確執行後,輸出結果如下 :
$ sh environment_check.sh
[INFO] Required dependencies 'kubectl jq mktemp sort printf' are installed.
[INFO] All nodes have unique hostnames.
[INFO] Waiting for longhorn-environment-check pods to become ready (0/0)...
[INFO] All longhorn-environment-check pods are ready (8/8).
[INFO] MountPropagation is enabled
[INFO] Checking kernel release...
[INFO] Checking iscsid...
[INFO] Checking multipathd...
[INFO] Checking packages...
[INFO] Checking nfs client...
[INFO] Cleaning up longhorn-environment-check pods...
[INFO] Cleanup completed.
環境檢查過程及結果簡要說明:
- 該指令碼執行過程中會從 DockerHub 下載
alpine:3.12
映象,用於測試。如果下載失敗,請自行修改為能正常下載的映象地址。 - 該指令碼會在所有 Worker 節點下載
longhorn-environment-check pods
,並執行相應的檢查命令 - 建議所有 Worker 節點系統核心大於等於 5.8,提前安裝 NFSv4 客戶端、安裝 open-iscsi
確保所有配置滿足前置條件要求,環境檢查指令碼檢測成功後。接下來,我們正式開始安裝 Longhorn 元件。
3. 安裝配置 Longhorn
Longhorn 官方文件中提供多種安裝方式的幫助文件:
- Install as a Rancher Apps & Marketplace
- Install with Kubectl
- Install with Helm
- Install with Fleet
- Install with Flux
- Install with ArgoCD
- Air Gap Installation
我最初的計劃是,實戰演示使用原生的 Kubectl 客戶端安裝 Longhorn。無奈在部署過程中遇到了自定義配置困難的問題,雖然能搞,但是有點麻煩,最終沒有找到靈活、簡單的方案。所以,最終成文時改成了 Helm 方式。
3.1 設定儲存標籤
- 按規劃給三個儲存節點打上專屬標籤
kubectl label nodes ksp-storage-1 kubernetes.io/storage=longhorn
kubectl label nodes ksp-storage-2 kubernetes.io/storage=longhorn
kubectl label nodes ksp-storage-3 kubernetes.io/storage=longhorn
3.2 使用 Helm 安裝部署 Longhorn
- 新增 Longhorn Helm repository
helm repo add longhorn https://charts.longhorn.io
- 從 Repository 拉取最新的 Charts
helm repo update
- 官方預設的部署命令(本文未用,建議新手使用)
helm install longhorn longhorn/longhorn --namespace longhorn-system --create-namespace --version 1.6.2
- 根據部署規劃,執行自定義部署命令
helm install longhorn2 longhorn/longhorn \
--namespace longhorn-system \
--create-namespace \
--version 1.6.2 \
--set defaultSettings.defaultDataPath="/longhorn" \
--set defaultSettings.systemManagedComponentsNodeSelector="kubernetes.io/storage:longhorn" \
--set longhornManager.nodeSelector."kubernetes\.io/storage"=longhorn \
--set longhornUI.nodeSelector."kubernetes\.io/storage"=longhorn \
--set longhornDriver.nodeSelector."kubernetes\.io/storage"=longhorn
- 檢查 Longhorn 部署結果
$ kubectl -n longhorn-system get pod
正確部署,輸出結果如下 :
$ kubectl -n longhorn-system get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
csi-attacher-fffb968d8-gnj58 1/1 Running 0 4m58s 10.233.77.66 ksp-storage-3 <none> <none>
csi-attacher-fffb968d8-pk2vq 1/1 Running 0 4m58s 10.233.73.59 ksp-storage-2 <none> <none>
csi-attacher-fffb968d8-w6rfh 1/1 Running 0 4m58s 10.233.64.62 ksp-storage-1 <none> <none>
csi-provisioner-745d97cc98-2r96q 1/1 Running 0 4m58s 10.233.64.63 ksp-storage-1 <none> <none>
csi-provisioner-745d97cc98-n9drv 1/1 Running 0 4m57s 10.233.77.67 ksp-storage-3 <none> <none>
csi-provisioner-745d97cc98-zvn7b 1/1 Running 0 4m57s 10.233.73.60 ksp-storage-2 <none> <none>
csi-resizer-58c5999fd6-5982f 1/1 Running 0 4m57s 10.233.73.61 ksp-storage-2 <none> <none>
csi-resizer-58c5999fd6-7z4m9 1/1 Running 0 4m57s 10.233.64.64 ksp-storage-1 <none> <none>
csi-resizer-58c5999fd6-zxszp 1/1 Running 0 4m57s 10.233.77.68 ksp-storage-3 <none> <none>
csi-snapshotter-5d995448d9-7tcrn 1/1 Running 0 4m57s 10.233.77.69 ksp-storage-3 <none> <none>
csi-snapshotter-5d995448d9-l84vr 1/1 Running 0 4m57s 10.233.64.65 ksp-storage-1 <none> <none>
csi-snapshotter-5d995448d9-v9c54 1/1 Running 0 4m57s 10.233.73.62 ksp-storage-2 <none> <none>
engine-image-ei-ffd6ed9b-8f6k7 1/1 Running 0 5m7s 10.233.77.63 ksp-storage-3 <none> <none>
engine-image-ei-ffd6ed9b-x2ld9 1/1 Running 0 5m7s 10.233.73.57 ksp-storage-2 <none> <none>
engine-image-ei-ffd6ed9b-zdpsb 1/1 Running 0 5m7s 10.233.64.60 ksp-storage-1 <none> <none>
instance-manager-561847cbad61a658e57dbb9aa2ea827d 1/1 Running 0 5m7s 10.233.77.64 ksp-storage-3 <none> <none>
instance-manager-74249bf3bf13f051b14d39af24d9e46c 1/1 Running 0 5m7s 10.233.64.61 ksp-storage-1 <none> <none>
instance-manager-f7b59324b33e30e62b1aacf332a7c3c1 1/1 Running 0 5m7s 10.233.73.58 ksp-storage-2 <none> <none>
longhorn-csi-plugin-jknqd 3/3 Running 0 4m57s 10.233.73.63 ksp-storage-2 <none> <none>
longhorn-csi-plugin-l7px4 3/3 Running 0 4m57s 10.233.77.70 ksp-storage-3 <none> <none>
longhorn-csi-plugin-m5bcp 3/3 Running 0 4m57s 10.233.64.66 ksp-storage-1 <none> <none>
longhorn-driver-deployer-55c5f59d77-xz5vd 1/1 Running 0 5m14s 10.233.77.61 ksp-storage-3 <none> <none>
longhorn-manager-nxks5 1/1 Running 0 5m14s 10.233.77.62 ksp-storage-3 <none> <none>
longhorn-manager-r7qf6 1/1 Running 0 5m14s 10.233.64.58 ksp-storage-1 <none> <none>
longhorn-manager-xbgtd 1/1 Running 0 5m14s 10.233.73.55 ksp-storage-2 <none> <none>
longhorn-ui-6fd7f57659-ff7wl 1/1 Running 0 5m14s 10.233.64.59 ksp-storage-1 <none> <none>
longhorn-ui-6fd7f57659-v6kpb 1/1 Running 0 5m14s 10.233.73.56 ksp-storage-2 <none> <none>
注意:上述配置雖然實現了所有元件都部署在專屬儲存節點上。但是,實際無法正常使用,排程在叢集其他節點的 Pod 根本無法使用 Longhorn 提供的儲存。
3.3 開啟 UI
官方預設的 Longhorn UI,沒有開啟認證功能,開啟即暴露所有能力。官方目前給出的加密認證方案,需要配合 Ingress controller 使用。
本文只是屬於體驗測試環境,也沒打算在測試、生產環境使用。因此直接使用 nodePort 放開 Longhorn UI 服務。
更多資訊請參考官方文件, 建立一個具有基本認證功能的 NGINX Ingress 控制器。
- 編輯使用 NodePort 型別的 svc 資源清單,
vi longhorn-ui-svc.yaml
kind: Service
apiVersion: v1
metadata:
name: longhorn-ui-nodeport
namespace: longhorn-system
labels:
app: longhorn-ui
spec:
ports:
- name: http
protocol: TCP
port: 80
targetPort: http
nodePort: 32222
selector:
app: longhorn-ui
clusterIP:
type: NodePort
- 建立 svc
kubectl apply -f longhorn-ui-svc.yaml
- 訪問 Longhorn UI
開啟瀏覽器訪問,http://叢集任意節點IP:32222
4. 驗證測試
4.1 建立測試 PVC
- 編寫測試 PVC 資源清單,
vi test-pvc-longhorn.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: test-pvc-longhorn
spec:
storageClassName: longhorn
accessModes:
- ReadWriteMany
resources:
requests:
storage: 2Gi
- 建立 PVC
kubectl apply -f test-pvc-longhorn.yaml
- 檢視 PVC
$ kubectl get pvc -o wide
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE VOLUMEMODE
test-pvc-longhorn Bound pvc-d5a7fc28-2e4c-4f9d-b4d7-7cb7ca5a7ea7 2Gi RWX longhorn 7s Filesystem
4.2 建立測試 Pod
為了正常完成測試,建立 Pod 時指定 nodeSelector
標籤,將 Pod 建立在 Longhorn 專用節點。
- 編寫測試 Pod 資源清單,
vi test-pod-longhorn.yaml
kind: Pod
apiVersion: v1
metadata:
name: test-pod-longhorn
spec:
containers:
- name: test-pod-longhorn
image: busybox:stable
command:
- "/bin/sh"
args:
- "-c"
- "touch /mnt/SUCCESS && sleep 3600"
volumeMounts:
- name: longhorn-pvc
mountPath: "/mnt"
restartPolicy: "Never"
nodeSelector:
kubernetes.io/storage: longhorn
volumes:
- name: longhorn-pvc
persistentVolumeClaim:
claimName: test-pvc-longhorn
- 建立 Pod
kubectl apply -f test-pod-longhorn.yaml
- 檢視 Pod
$ kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
test-pod-longhorn 1/1 Running 0 51s 10.233.73.80 ksp-storage-2 <none> <none>
- 檢視 Pod 掛載的儲存
$ kubectl exec test-pod-longhorn -- df -h
Filesystem Size Used Available Use% Mounted on
overlay 99.9G 4.7G 95.2G 5% /
tmpfs 64.0M 0 64.0M 0% /dev
tmpfs 3.6G 0 3.6G 0% /sys/fs/cgroup
10.233.57.220:/pvc-d5a7fc28-2e4c-4f9d-b4d7-7cb7ca5a7ea7
1.9G 0 1.9G 0% /mnt
/dev/mapper/openeuler-root
34.2G 2.3G 30.2G 7% /etc/hosts
/dev/mapper/openeuler-root
34.2G 2.3G 30.2G 7% /dev/termination-log
/dev/mapper/data-lvdata
99.9G 4.7G 95.2G 5% /etc/hostname
/dev/mapper/data-lvdata
99.9G 4.7G 95.2G 5% /etc/resolv.conf
shm 64.0M 0 64.0M 0% /dev/shm
tmpfs 6.4G 12.0K 6.4G 0% /var/run/secrets/kubernetes.io/serviceaccount
tmpfs 3.6G 0 3.6G 0% /proc/acpi
tmpfs 64.0M 0 64.0M 0% /proc/kcore
tmpfs 64.0M 0 64.0M 0% /proc/keys
tmpfs 64.0M 0 64.0M 0% /proc/timer_list
tmpfs 64.0M 0 64.0M 0% /proc/sched_debug
tmpfs 3.6G 0 3.6G 0% /proc/scsi
tmpfs 3.6G 0 3.6G 0% /sys/firmware
- 測試儲存空間讀寫
# 寫入 1GB 的資料
$ kubectl exec test-pod-longhorn -- dd if=/dev/zero of=/mnt/test-disk.img bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1000.0MB) copied, 5.670424 seconds, 176.4MB/s
# 檢視結果
$ kubectl exec test-pod-longhorn -- ls -lh /mnt/
[root@ksp-control-1 srv]# kubectl exec test-pod-longhorn -- ls -lh /mnt/
total 1000M
-rw-r--r-- 1 root root 0 Jul 17 01:03 SUCCESS
drwx------ 2 root root 16.0K Jul 17 01:03 lost+found
-rw-r--r-- 1 root root 1000.0M Jul 17 01:04 test-disk.img
# 測試超限(再寫入 1GB 資料)
$ kubectl exec test-pod-longhorn -- dd if=/dev/zero of=/mnt/test-disk2.img bs=1M count=1000
dd: /mnt/test-disk2.img: No space left on device
command terminated with exit code 1
注意:測試時,我們寫入了 2G 的資料量,當達過我們建立的 PVC 2G 容量上限時會報錯(實際使用寫不滿 2G)。說明,Longhorn 儲存可以做到容量配額限制。
4.3 檢視底層儲存資訊
測試並不充分,只是簡單看看。在儲存伺服器( ksp-storage-1 節點),執行以下命令。
$ ls -lR /longhorn/
/longhorn/:
total 4
-rw-r--r-- 1 root root 51 Jul 16 11:18 longhorn-disk.cfg
drwxr-xr-x 3 root root 63 Jul 17 01:02 replicas
/longhorn/replicas:
total 0
drwx------ 2 root root 108 Jul 17 01:03 pvc-d5a7fc28-2e4c-4f9d-b4d7-7cb7ca5a7ea7-3a7acff9
/longhorn/replicas/pvc-d5a7fc28-2e4c-4f9d-b4d7-7cb7ca5a7ea7-3a7acff9:
total 2075652
-rw------- 1 root root 4096 Jul 17 01:06 revision.counter
-rw-r--r-- 1 root root 2147483648 Jul 17 01:06 volume-head-000.img
-rw-r--r-- 1 root root 126 Jul 17 01:02 volume-head-000.img.meta
-rw-r--r-- 1 root root 142 Jul 17 01:03 volume.meta
注意:Longhorn 的儲存目錄,跟 NFS 儲存不一樣,無法直接檢視原始檔案,使用上更安全,但是如果 Longhorn 異常,想要找回資料也更麻煩。
4.4 清理測試資源
- 清理測試 Pod、PVC
kubectl delete -f test-pod-longhorn.yaml -f test-pvc-longhorn.yaml
- 在儲存伺服器( ksp-storage-1 節點)檢視資料目錄
$ ls -lR /longhorn/replicas/
/longhorn/replicas/:
total 0
從結果中可以看到,Kubernetes 刪除 PVC 後,Longhorn 儲存層立即刪除 PVC 對應的資料目錄及資料(是否能配置預設保留,暫未研究,理論上應該會有)。
4.5 測試異常說明
建立 Pod,不指定 nodeSelector
標籤,Pod 會隨機分配,當分配在沒有安裝 Longhorn CSI 外掛的節點時,建立失敗,異常如下。
為避免出現上述問題,建議在部署 Longhorn 時遵循預設配置,以實現在所有 Worker 節點上自動部署所需的服務元件。
5. KubeSphere 控制檯管理儲存資源
5.1 管理儲存類
在控制檯左側功能選單,依次選擇「叢集」->「儲存」->「儲存類」。
5.2 檢視持久卷宣告
Step 1: 在控制檯左側功能選單,依次選擇「叢集」->「儲存」->「持久卷宣告」。
Step 2: 檢視建立的 PVC、PV 及詳情。
結果中可以顯示 PVC 的儲存總容量、剩餘容量、已使用百分比、Inode 用量百分比。
6. Longhorn UI 概覽
Longhorn UI 雖然介面簡單,但是能滿足日常管理的需要,能在介面實現分配儲存資源、管理,實現 Longhorn 服務的基本配置管理,下面展示幾張截圖,作為本文的結尾。
- Dashboard
- Node 資訊
- Volume 資訊
- Setting 配置頁
免責宣告:
- 筆者水平有限,儘管經過多次驗證和檢查,盡力確保內容的準確性,但仍可能存在疏漏之處。敬請業界專家大佬不吝指教。
- 本文所述內容僅透過實戰環境驗證測試,讀者可學習、借鑑,但嚴禁直接用於生產環境。由此引發的任何問題,作者概不負責!
本文由部落格一文多發平臺 OpenWrite 釋出!