第19關 5.2k star 開源分布式存儲服務Rancher-Longhorn在k8s上部署

------> 課程視頻同步分享在今日頭條和B站

大家好,我是博哥愛運維。

什么是Longhorn

Longhorn是一個輕量級、可靠且易于使用的Kubernetes分布式塊存儲系統。

Longhorn 是免費的開源軟件。它最初由 Rancher Labs 開發,現在作為云原生計算基金會的孵化項目進行開發。

官方文檔: https://longhorn.io/docs/1.5.3/

使用 Longhorn,您可以:

  • 使用 Longhorn 卷作為 Kubernetes 集群中分布式有狀態應用程序的持久存儲
  • 將塊存儲分區為 Longhorn 卷,以便您可以在有或沒有云提供商的情況下使用 Kubernetes 卷
  • 跨多個節點和數據中心復制塊存儲以提高可用性
  • 將備份數據存儲在外部存儲中,例如 NFS 或 AWS S3
  • 創建跨集群災難恢復卷,以便主 Kubernetes 集群中的數據可以從第二個 Kubernetes 集群中的備份快速恢復
  • 計劃卷的定期快照,并計劃定期備份到 NFS 或 S3 兼容的輔助存儲
  • 從備份恢復卷
  • 在不中斷持久卷的情況下升級 Longhorn

Longhorn 帶有獨立的 UI,可以使用 Helm、kubectl 或 Rancher 應用程序目錄進行安裝。

Longhorn的底層存儲協議

iSCSI(Internet Small Computer Systems Interface)是一種網絡協議,用于在 TCP/IP 網絡上傳輸 SCSI 命令,允許兩臺計算機進行遠程存儲和檢索操作。iSCSI 是一種流行的存儲區域網絡(SAN)技術,廣泛用于連接存儲設備,如磁盤陣列和磁帶庫,與服務器和數據中心。

在K8S上部署Longhorn
# 在集群所有節點上添加兩塊硬盤并掛載目錄
mkfs.ext4 /dev/sdb
mkfs.ext4 /dev/sdc
# cat /etc/fstab
/dev/sdb /mnt/longhorn-sdb ext4 defaults 0 1
/dev/sdc /mnt/longhorn-sdc ext4 defaults 0 1
#
mount -a
df -Th|grep -E 'longhorn-sdb|longhorn-sdc'# 配置節點信息
metadata:
labels:node.longhorn.io/create-default-disk: "config"
annotations:node.longhorn.io/default-disks-config: '[{"path":"/mnt/longhorn-sdb","allowScheduling":true},{    "path":"/mnt/longhorn-sdc","allowScheduling":true}
]'# 利用helm安裝longhorn服務
wget https://github.com/longhorn/longhorn/archive/refs/tags/v1.5.3.zip
unzip longhorn-1.5.3.zip
rm longhorn-1.5.3.zip
cd longhorn-1.5.3/
helm install longhorn ./chart/ --namespace longhorn-system --create-namespace --set defaultSettings.createDefaultDiskLabeledNodes=true --dry-run --debug
helm install longhorn ./chart/ --namespace longhorn-system --create-namespace --set defaultSettings.createDefaultDiskLabeledNodes=true
kubectl -n longhorn-system get pod -o wide -w# 測試掛載存儲
# kubectl get sc
NAME                          PROVISIONER          RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
longhorn (default)            driver.longhorn.io   Delete          Immediate           true                   64m# cat test.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:name: test-claim
spec:storageClassName: longhornaccessModes:- ReadWriteManyresources:requests:storage: 1Mi   # 實測最小存儲分配為10Mi---
kind: Pod
apiVersion: v1
metadata:name: test
spec:containers:- name: test
#    image: busybox:1.28.4image: registry.cn-shanghai.aliyuncs.com/acs/busybox:v1.29.2imagePullPolicy: IfNotPresentcommand:- "/bin/sh"args:- "-c"- "echo 'hello k8s' > /mnt/SUCCESS && sleep 36000 || exit 1"volumeMounts:- name: longhorn-pvcmountPath: "/mnt"restartPolicy: "Never"volumes:- name: longhorn-pvcpersistentVolumeClaim:claimName: test-claim# 寫入嚴格限制大小
# kubectl exec -it test -- sh
/ # cd /mnt/
/mnt # ls -lh
total 13
-rw-r--r--    1 root     root          10 Dec  8 04:11 SUCCESS
drwx------    2 root     root       12.0K Dec  8 04:11 lost+found
/mnt # dd if=/dev/zero of=./test.log bs=1M count=11
dd: ./test.log: No space left on device# 把ui的svc改成NodePort,查看頁面,生產的話可以弄個ingress
# kubectl -n longhorn-system get svc longhorn-frontend
NAME                TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
longhorn-frontend   NodePort   10.68.135.61   <none>        80:31408/TCP   68m
Longhorn監控

https://longhorn.io/docs/1.5.3/monitoring/

Longhorn備份還原

https://longhorn.io/docs/1.5.3/snapshots-and-backups/

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/209838.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/209838.shtml
英文地址,請注明出處:http://en.pswp.cn/news/209838.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

X86匯編語言:從實模式到保護模式(代碼+注釋)--c7

X86匯編語言&#xff1a;從實模式到保護模式&#xff08;代碼注釋&#xff09;–c6 ;代碼清單7-1;文件名&#xff1a;c07_mbr.asm;文件說明&#xff1a;硬盤主引導扇區代碼;創建日期&#xff1a;2011-4-13 18:02jmp near startmessage db 123...100start:mov ax,0x7c0 …

class061 最小生成樹【算法】

class061 最小生成樹【算法】 2023-12-8 11:48:12 算法講解061【必備】最小生成樹 code1 P3366 【模板】最小生成樹 // Kruskal算法模版&#xff08;洛谷&#xff09; // 靜態空間實現 // 測試鏈接 : https://www.luogu.com.cn/problem/P3366 // 請同學們務必參考如下代碼中…

【Linux】:線程(二)互斥

互斥與同步 一.線程的局部存儲二.線程的分離三.互斥1.一些概念2.上鎖3.鎖的原理4.死鎖 一.線程的局部存儲 例子 可以看到全局變量是所有線程共享的&#xff0c;如果我們想要每個線程都單獨訪問g_val怎么辦呢&#xff1f;其實我們可以在它前面加上__thread修飾。 這就相當于把g…

網絡入門---網絡編程初步認識和實踐(使用udp協議)

目錄標題 前言準備工作udpserver.hpp成員變量構造函數初始化函數(socket,bind)start函數(recvfrom) udpServer.ccudpClient.hpp構造函數初始化函數run函數(sendto) udpClient.cc測試 前言 在上一篇文章中我們初步的認識了端口號的作用&#xff0c;ip地址和MAC地址在網絡通信時…

Python實現GUI圖片瀏覽程序

Python實現GUI圖片瀏覽程序 下面程序需要pillow庫。pillow是 Python 的第三方圖像處理庫&#xff0c;需要安裝才能實用。pillow是PIL&#xff08; Python Imaging Library&#xff09;基礎上發展起來的&#xff0c;需要注意的是pillow庫安裝用pip install pillow&#xff0c;導…

【改進YOLOv8】融合可擴張殘差(DWR)注意力模塊的小麥病害檢測系統

1.研究背景與意義 項目參考AAAI Association for the Advancement of Artificial Intelligence 研究背景與意義&#xff1a; 隨著計算機視覺技術的快速發展&#xff0c;深度學習在圖像識別和目標檢測領域取得了巨大的突破。其中&#xff0c;YOLO&#xff08;You Only Look O…

基于SSM框架的網上商城系統的設計與實現

完整下載&#xff1a;基于SSM框架的網上商城系統的設計與實現 基于SSM框架的網上商城系統的設計與實現 "Design and Implementation of an Online Shopping Mall System Based on SSM Framework" 目錄 目錄 2 摘要 3 關鍵詞 3 第一章 系統設計 4 1.1 系統需求分析 4 …

TruLens RAG Triad 學習

TruLens RAG Triad 學習 0. 背景1. RAG 三元組2. TruLens 快速入門2-1. 安裝依賴2-2. 初始化 OpenAI 認證信息2-3. 獲取數據2-4. 創建向量存儲2-5. 從頭構建自定義 RAG2-6. 設置反饋函數2-7. 構建應用程序2-8. 運行應用程序0. 背景 近年來,RAG 架構已成為為大型語言模型 (LLM…

Nexus搭建npm私庫(角色管理、上傳腳本)

安裝Nexus 官網下載 https://www.sonatype.com/products/sonatype-nexus-oss-download 進入官網下載&#xff0c;最新下載方式需要輸入個人信息才能下載了 選擇對應的系統進行下載 Windows 推薦也下載 UNIX 版本&#xff08;Windows 版本配置比較難改&#xff09; 如果沒有下…

chmod 在Linux原生應用開發過程中的簡單應用

chmod命令實質上是用來修改文件或目錄的訪問權限的命令。它通過修改文件或目錄的訪問控制列表&#xff08;Access Control List&#xff0c;ACL&#xff09;來實現權限的更改。 在Linux系統中&#xff0c;每個文件或目錄都有一個表示其權限的數字值&#xff0c;即用三個八進制…

Qt 中的窗口類

目錄 QWidget 設置父對象 窗口位置 測試代碼 窗口尺寸 窗口標題和圖標 信號 槽函數 QDialog 常用API QDialog的子類 QMessageBox QFileDialog QFontDialog QFontDialog類的靜態API QColorDialog 顏色類 QColor 靜態API函數 測試代碼 QInputDialog 靜態函數…

谷歌AI新篇章:Gemini引領股價飆升,挑戰OpenAI霸主地位

導語&#xff1a; “ 在人工智能領域的一場激烈角逐中&#xff0c;谷歌母公司Alphabet以其全新AI大模型Gemini&#xff0c;于周四收盤時引爆股市&#xff0c;股價激增5.3%&#xff0c;市值一日增長超800億美元。這一躍升不僅展示了谷歌在技術創新上的決心&#xff0c;也是對微軟…

GPT4停止訂閱付費了怎么辦? 怎么升級ChatGPT plus?提供解決方案

11月中旬日OpenAI 暫時關閉所有的升級入口之后&#xff0c;很多小伙伴就真的在排隊等待哦。其實有方法可以繞開排隊&#xff0c;直接付費訂閱升級GPT的。趕緊用起來立馬“插隊”成功&#xff01;親測~~~ 一、登錄ChatGPT賬號 1、沒有賬號可以直接注冊一個&#xff0c;流程超級…

前端使用視頻作為背景圖的方法

實現思路 通過 video source 引入視頻&#xff0c;并對視頻播放屬性進行設置&#xff0c;再通過 css 使視頻覆蓋背景即可。 代碼 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>有開發問題可聯系作者</title>…

學習git后,真正在項目中如何使用?

文章目錄 前言下載和安裝Git克隆遠程倉庫PyCharm鏈接本地Git創建分支修改項目工程并提交到本地倉庫推送到遠程倉庫小結 前言 網上學習git的教程&#xff0c;甚至還有很多可視化很好的git教程&#xff0c;入門git也不是什么難事。但我發現&#xff0c;當我真的要從網上克隆一個…

ubuntu18.04安裝pcl1.11.1

一、安裝pcl1.11.1依賴 sudo apt-get update sudo apt-get install git build-essential linux-libc-dev sudo apt-get install cmake cmake-gui sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev sudo apt-get install mpi-default-dev openmpi-bin openmpi-…

SQL事務的開啟,提交和回滾

在處理數據庫數據的時候會出現一種情況就是我們刪除兩個關聯的表其中一個表的信息&#xff0c;另一個表也需要改動&#xff0c;但是我們SQL語句在同時更改兩個表的同時&#xff0c;難免會出現一個表修改成功&#xff0c;另一個出現錯誤&#xff0c;這時候表與表之間就會出現矛盾…

webrtc網之sip轉webrtc

OpenSIP是一個開源的SIP&#xff08;Session Initiation Protocol&#xff09;服務器&#xff0c;它提供了一個可擴展的基礎架構&#xff0c;用于建立、終止和管理VoIP&#xff08;Voice over IP&#xff09;通信會話。SIP是一種通信協議&#xff0c;用于建立、修改和終止多媒體…

geolife 筆記:將所有軌跡放入一個DataFrame

單條軌跡的處理&#xff1a;geolife筆記&#xff1a;整理處理單條軌跡-CSDN博客 1 加載數據 import pandas as pd import numpy as np import datetime as dt import osdata_dir Geolife Trajectories 1.3/Data/ 1.1 列出所有文件夾 dirlist os.listdir(data_dir) dirlist…

Esxi登錄超時:“由于不活動超時,您已被注銷“,修改UserVars.HostClientSessionTimeout為0永不超時

Esxi登錄超時:“由于不活動超時&#xff0c;您已被注銷”,修改UserVars.HostClientSessionTimeout為0永不超時 UserVars.HostClientSessionTimeout0永不超時 Esxi網頁登錄后,一段時間不操作就會被注銷 提示: 由于不活動超時&#xff0c;您已被注銷 主機→管理→系統→高級設…