您好,登錄后才能下訂單哦!
本篇內容介紹了“Longhorn怎么實現Kubernetes集群的持久化存儲”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
共享資源池:將本地磁盤或安裝在計算或專用存儲主機中的網絡存儲形成共享資源池。
為容器和虛擬機創建塊存儲卷:你可以指定volume的大小,IOPS的需求,以及你想要的跨主機的同步replica的數量(這里的主機是指那些為volume提供存儲資源的主機)。replica是在底層磁盤或網絡存儲上精簡配置的。
為每個volume創建一個專用的存儲控制器:這可能是與大多數現有的分布式存儲系統相比,Longhorn最具特色的功能。大多數現有的分布式存儲系統通常采用復雜的控制器軟件來服務于從數百到數百萬不等的volume。但Longhorn不同,每個控制器上只有一個volume,Longhorn將每個volume都轉變成了微服務。
跨計算或存儲主機調度多個replica:Longhorn會監測每一個replica的健康狀況,對問題進行維修,并在必要時重新生成replica。
以Docker容器的形式操作存儲控制器和replica:例如,一個volume有三個replica,就意味著有四個容器。
為每個volume分配多個存儲“前端”:常見的前端包括Linux內核設備(映射到/ dev / longhorn)和iSCSI目標。 Linux內核設備適用于支持Docker volume,而iSCSI目標更適合支持QEMU / KVM和VMware volume。
創建volume快照和AWS EBS風格的備份:您可以為每個volume創建多達254個快照,這些快照可以逐個備份到NFS或S3兼容的輔助存儲中。只有更改的字節會在備份操作期間被復制和存儲。
指定定期快照和備份操作的計劃:您可以指定這些操作的頻率(每小時,每天,每周,每月和每年)、執行這些操作的確切時間(例如,每個星期日凌晨3:00),以及保留多少個循環快照和備份集。
Longhorn v0.2 支持任何Kubernetes集群的持久性存儲。一旦被部署到Kubernetes集群上,Longhorn會自動地將Kubernetes集群中所有節點上全部可用的本地存儲聚為集群,產生復制的以及分布式的塊存儲。你可以在Longhorn volume上執行快照和備份操作,并將它們同步復制到多個節點上。
我們已經移植了Longhorn Manager作為Kubernetes Controller。所有Longhorn狀態都存儲為Custom Resource Definitions(自定義資源定義,CRD)。Longhorn也不需要單獨的etcd服務器。另外,Longhorn Manager公開了執行Longhorn volume操作和快照 / 備份操作的API,這些API將在Longhorn UI和Kubernetes Flexvolume驅動程序執行操作的過程中使用。
運行下面的這條指令,就可以在你的Kubernetes集群上部署整個Longhorn存儲系統:
kubectl create -f https://raw.githubusercontent.com/rancher/longhorn/v0.2/deploy/longhorn.yaml
如果你使用的是GKE,請參考這里:https://github.com/rancher/longhorn/blob/master/README.md#google-kubernetes-engine
部署之后,你可以在UI界面通過查看Kubernetes服務找到適合的IP:kubectl -n longhorn-system get svc
現在你可以使用 100.200.200.123 或通過 <node_ip>:12345 訪問UI。
Longhorn提供了Kubernetes的完全集成。
你可以像下面這樣通過Longhorn用卷備份創建一個pod:
apiVersion: v1 kind: Pod metadata: name: volume-test namespace: default spec: containers: - name: volume-test image: nginx:stable-alpine imagePullPolicy: IfNotPresent volumeMounts: - name: voll mountPath: /data ports: - containerPort: 80 volumes: - name: voll flexVolume: driver: "rancher.io/longhorn" fsType: "ext4" options: size: "2Gi" numberOfReplicas: "3" staleReplicaTimeout: "20" fromBackup: ""
Longhorn還支持動態的provisioner。比如,你可以在Kubernetes像這樣定義一個StorageClass:
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: longhorn provisioner: rancher.io/longhorn parameters: numberOfReplicas: "3" staleReplicaTimeout: "30" fromBackup: ""
接著創建一個PVC(PersistentVolumeClaim)并在Pod中使用它:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: longhorn-volv-pvc spec: accessModes: - ReadWriteOnce storageClassName: longhorn resources: requests: storage: 2Gi --- apiVersion: v1 kind: Pod metadata: name: volume-test namespace: default spec: containers: - name: volume-test image: nginx:stable-alpine imagePullPolicy: IfNotPresent volumeMounts: - name: volv mountPath: /data ports: - containerPort: 80 volumes: - name: volv persistentVolumeClaim: claimName: longhorn-volv-pvc
“Longhorn怎么實現Kubernetes集群的持久化存儲”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。