摘要:作者,谷歌將裸盤支持轉移到。對裸盤的支持目前是。將留空與指定相同,這會導致傳統行為。例如,實際上是磁盤的塊設備支持使用向設備發送命令。默認情況下,不允許容器將命令從容器內部發送到磁盤。
作者:Ben Swartzlander(NetApp),Saad Ali(谷歌)
Kubernetes v1.13將裸盤(raw block volume)支持轉移到beta。此功能允許持久卷(persistent volume)作為塊設備(block device),而不是作為已安裝的文件系統在容器內部公開。
什么是塊設備?塊設備允許隨機訪問固定大小的塊中的數據。硬盤驅動器、SSD和CD-ROM驅動器都是塊設備的示例。
持久存儲通常以分層方式實現,在塊設備(如旋轉磁盤或SSD)之上使用文件系統(如ext4)。然后,應用程序讀取和寫入文件,而不是在塊上操作。操作系統負責使用指定的文件系統,將文件作為塊讀取和寫入底層設備。
值得注意的是,整個磁盤都是塊設備,磁盤分區也是,存儲區域網絡(SAN)設備的LUN也是。
為什么要將裸盤添加到kubernetes?有些專門的應用程序需要直接訪問塊設備,例如,文件系統層會引入不必要的開銷。最常見的情況是數據庫,它們更喜歡直接在底層存儲上組織數據。裸盤設備也常用于任何本身實現某種存儲服務的軟件(軟件定義的存儲系統)。
從程序員的角度來看,塊設備是一個非常大的字節數組,通常具有一些最小的讀寫粒度,通常為512字節,但更常見為4K或更大。
隨著在Kubernetes內部運行數據庫軟件和存儲基礎架構軟件變得越來越普遍,Kubernetes中對裸盤設備支持的需求變得更加重要。
哪個卷插件支持裸盤?在發布此博客時,以下樹內(in-tree)卷類型支持裸盤:
AWS EBS
Azure Disk
Cinder
Fibre Channel
GCE PD
iSCSI
Local volumes
RBD (Ceph)
Vsphere
樹外(Out-of-tree)CSI卷驅動程序也可以支持裸盤。 Kubernetes CSI對裸盤的支持目前是alpha。請參閱此處的文檔。
Kubernetes裸盤API裸盤與普通卷有很多共同點。兩者都是通過創建綁定到PersistentVolume對象的PersistentVolumeClaim對象來請求的,并通過將它們包含在PodSpec的volumes數組中而附加到Kubernetes中的Pod。
但是有兩個重要的區別。首先,要請求裸盤PersistentVolumeClaim,必須在PersistentVolumeClaimSpec中設置volumeMode =“Block”。將volumeMode留空與指定volumeMode =“Filesystem”相同,這會導致傳統行為。PersistentVolumes在其PersistentVolumeSpec中也有一個volumeMode字段,而“Block”類型的PVC只能綁定到“Block”類型的PV,而“Filesystem”PVC只能綁定到“Filesystem”PV。
其次,在Pods中使用裸盤時,必須在PodSpec的Container部分而不是VolumeMount中指定VolumeDevice。VolumeDevices具有devicePaths而不是mountPaths,并且在容器內部,應用程序將在該路徑中看到設備而不是已安裝的文件系統。
應用程序打開、讀取和寫入容器內的設備節點,就像它們將與非容器化或虛擬化環境中的系統上的任何塊設備進行交互一樣。
創建新的裸盤PVC首先,確保你選擇的存儲類關聯的配置程序是支持裸盤的配置程序。然后創建PVC。
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: accessModes: - ReadWriteMany volumeMode: Block storageClassName: my-sc resources: requests: storage: 1Gi使用裸盤PVC
在pod定義中使用PVC時,可以選擇塊設備的設備路徑,而不是文件系統的安裝路徑。
apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: my-container image: busybox command: - sleep - “3600” volumeDevices: - devicePath: /dev/block name: my-volume imagePullPolicy: IfNotPresent volumes: - name: my-volume persistentVolumeClaim: claimName: my-pvc作為存儲供應商,如何在我的CSI插件中添加對裸盤設備的支持?
CSI插件對裸盤支持仍然是alpha,但今天可以添加支持。CSI規范詳細說明了如何處理具有BlockVolume功能而不是MountVolume功能的卷請求。CSI插件可以支持這兩種卷。有關更多詳細信息,請參閱此處。
問題/陷阱因為塊設備實際上是設備,所以可以從容器內部對它們執行低級操作,這是文件系統卷無法實現的。例如,實際上是SCSI磁盤的塊設備支持使用Linux ioctls向設備發送SCSI命令。
默認情況下,Linux不允許容器將SCSI命令從容器內部發送到磁盤。為此,你必須將SYS_RAWIO功能授予容器安全上下文(context)以允許此操作。請參閱此處的文檔。
此外,雖然Kubernetes保證向容器提供塊設備,但不能保證它實際上是SCSI磁盤或任何其他類型的磁盤。用戶必須確保所需的磁盤類型與其pod一起使用,或者僅部署可處理各種塊設備類型的應用程序。
怎樣能了解更多?在此處查看有關快照功能的其他文檔。
我如何參與?加入Kubernetes存儲SIG和CSI社區,幫助我們添加更多優秀功能,并改進現有功能如裸盤存儲!
鳴謝特別感謝幫助Kubernetes增加塊卷支持的所有貢獻者,包括:
Ben Swartzlander(https://github.com/bswartz)
Brad Childs(https://github.com/childsb)
Erin Boyd(https://github.com/erinboyd)
Masaki Kimura(https://github.com/mkimuram)
Matthew Wong(https://github.com/wongma7)
Michelle Au(https://github.com/msau42)
Mitsuhiro Tanino(https://github.com/mtanino)
Saad Ali(https://github.com/saad-ali)
KubeCon + CloudNativeCon和Open Source Summit大會日期:
會議日程通告日期:2019 年 4 月 10 日
會議活動舉辦日期:2019 年 6 月 24 至 26 日
KubeCon + CloudNativeCon和Open Source Summit贊助方案
KubeCon + CloudNativeCon和Open Source Summit多元化獎學金現正接受申請
KubeCon + CloudNativeCon和Open Source Summit即將首次合體落地中國
KubeCon + CloudNativeCon和Open Source Summit購票窗口,立即購票!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/33131.html
摘要:作者,谷歌將裸盤支持轉移到。對裸盤的支持目前是。將留空與指定相同,這會導致傳統行為。例如,實際上是磁盤的塊設備支持使用向設備發送命令。默認情況下,不允許容器將命令從容器內部發送到磁盤。 作者:Ben Swartzlander(NetApp),Saad Ali(谷歌) Kubernetes v1.13將裸盤(raw block volume)支持轉移到beta。此功能允許持久卷(pers...
摘要:首爆嚴重安全漏洞,嚴重性分于昨晚爆出嚴重安全漏洞,該漏洞由聯合創始人及首席架構師發現。其他功能更新對第三方設備監控插件的支持該功能目前被引入為功能。拓撲感知卷調度該功能現成為狀態。 K8S首爆嚴重安全漏洞,嚴重性9.8分 Kubernetes于昨晚爆出嚴重安全漏洞,該漏洞由Rancher Labs聯合創始人及首席架構師Darren Shepherd發現。該漏洞CVE-2018-1002...
摘要:作者,高級軟件工程師實施的容器存儲接口已在版本中升級為。功能受棄用政策保護。隨著容器存儲接口的采用,卷層變得真正可擴展。年中國論壇提案征集現已開放論壇讓用戶開發人員從業人員匯聚一堂,面對面進行交流合作。 showImg(https://segmentfault.com/img/bVbnBe1?w=620&h=340); 作者:Saad Ali,Google高級軟件工程師 Kuberne...
摘要:作者,高級軟件工程師實施的容器存儲接口已在版本中升級為。功能受棄用政策保護。隨著容器存儲接口的采用,卷層變得真正可擴展。年中國論壇提案征集現已開放論壇讓用戶開發人員從業人員匯聚一堂,面對面進行交流合作。 showImg(https://segmentfault.com/img/bVbnBe1?w=620&h=340); 作者:Saad Ali,Google高級軟件工程師 Kuberne...
摘要:和網站不時發布來之全世界的博客文章和案例研究。提交案例研究案例研究強調組織如何使用解決實際問題。看看現有案例研究材料。 showImg(https://segmentfault.com/img/bVbp45W?w=1280&h=545); CNCF和Kubernetes網站不時發布來之全世界的博客文章和案例研究。 近期的博客文章有: 使用Ansible和Vagrant設置Kubern...
閱讀 1884·2021-11-17 09:33
閱讀 6470·2021-10-12 10:20
閱讀 2299·2021-09-22 15:50
閱讀 1783·2021-09-22 15:10
閱讀 615·2021-09-10 10:51
閱讀 618·2021-09-10 10:50
閱讀 3020·2021-08-11 11:19
閱讀 1776·2019-08-30 15:55