這篇文章主要介紹“kubernetes1.4有哪些新特性”,在日常操作中,相信很多人在kubernetes1.4有哪些新特性問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”kubernetes1.4有哪些新特性”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
從圖中可以看到結構體PodSpec有個屬性是Volumes,通過這個Volumes屬性可以關聯到結構體Volume和結構體VolumeSource,而且這個Volumes屬性是一個數組類型,就是說POD可以關聯到多個不同類型的卷上面。
結構體Container表示POD中的容器,這個結構體有一個屬性VolumeMounts,通過這個屬性讓容器知道具體掛載的存儲路徑,這個VolumeMounts屬性也是一個數組類型,就是說容器可以掛載多個存儲路徑。
Kubernetes一共支持22種卷插件。在Kubernetes1.4中又新增了兩種新的卷插件:Quobyte和AzureDisk。
Quobyte
這是Quobyte公司推出的分布式文件系統。要想在kubernetes中使用Quobyte存儲,需要提前部署Quobyte軟件,要求必須是1.3以及更高版本,并且在kubernetes管理的節點上面部署Quobyte客戶端。
為什么要使用1.3以及更高版本?因為這些版本中Quobyte提供了一個特性:fixed-user掛載,這個新特性允許所有Quobyte卷都會被掛載到一個路徑下面,同時又可以按照不同用戶來進行分別使用。所有對Quobyte卷的訪問都是區分用戶和組的,當然也可以不區分,區分的好處就是可以實現多租戶隔離。下圖是一個fixed-user掛載的示例:
容器A設計成只能通過wordpress這個用戶來執行操作,但是對于quobyte來說,容器A實際上是通過用戶job來執行實際讀寫操作的;容器B設計成通過root用戶來執行操作,但是對于quobyte來說,容器B實際上是通過root組中的用戶mike來執行操作的。也就是說做了個用戶映射,而不是使用容器內的用戶來執行讀寫操作。
如何啟用fixed-user掛載這個特性?安裝完Quobyte客戶端后,在配置文件/etc/quobyte/client.cfg中增加一行allow-usermapping-in-volumename。
如果不使用kubernetes,直接使用Docker,那么也可以不安裝Quobyte客戶端,而是使用Quobyte提供的Docker插件,在Docker中,所有Quobyte卷都會掛載到/run/docker/quobyte/mnt目錄下。這個插件在下面環境中已經測試過:
但是比較遺憾的是Quobyte提供的Docker插件現在還不支持fixed-user掛載這個特性,如果想使用這個特性,就必須安裝Quobyte客戶端。
下面是quobyte卷對應的結構體:
變量Registry:QuoByte注冊服務入口,如果配置了多個注冊服務入口,那么每個注冊服務入口可以通過分號分割。 變量Volume:QuoByte已經創建好的卷。 變量ReadOnly:這是一個布爾型變量,默認是false,表示可以對QuoByte已經創建好的卷進行讀寫操作,如果配置成true,那么就表示只能對QuoByte已經創建好的卷進行只讀操作。 變量User:操作QuoByte卷的用戶。 變量Group:操作QuoByte卷的組。
下面是使用Quobyte卷創建POD的示例文件quobyte-pod.yaml:
接著通過下面命令創建POD:
在POD創建成功后,可以檢查確認quobyte卷testVolume已經被掛載上了:
Azure是微軟提供的公有云服務,如果使用Azure上面的虛擬機來作為Kubernetes集群使用時,那么可以通過AzureDisk這種類型的卷插件來掛載Azure提供的數據磁盤。
下面是Azure上數據磁盤的介紹:
數據磁盤是附加到虛擬機的 VHD,用于存儲應用程序數據或其他需要保留的數據。數據磁盤注冊為 SCSI 驅動器并且帶有所選擇的字母標記。每個數據磁盤的最大容量為 1023 GB。虛擬機的大小決定了可附加的磁盤數目,以及可用來托管磁盤的存儲類型。Azure 中使用的 VHD 是在 Azure 的標準或高級存儲帳戶中作為頁 Blob 存儲的 .vhd 文件。
Azure數據磁盤的核心就是Blob,Blob 就是保存大型二進制對象,比如用來存儲文件、圖片、文檔等二進制格式的文件。
Blob 分為兩種類型:
1、Block Blob (塊 Blob)。這種類型適合存儲二進制文件,支持斷點續傳,可以最大以 4M 為一個區塊單位,單一文件最大可以存儲 200GB,且區塊不會連續存儲,可能會在不同的存儲服務器分塊存放。為了適應文件的上傳和下載而專門進行了優化。Block Blob 可以通過 2 種方式創建。不超過 64MB 的 Block Blobs 可以通過調用 PutBlob 操作進行上傳。大于 64M 的 Block Blobs 必須分塊上傳,且每塊的大小不能超過 4MB。Block Blob 可以近似理解為網盤。
2、Page Blob (頁 Blob)。這類存儲優化了隨機訪問。它會在存儲區中劃分一個連續的區域供應用程序存放數據,可以用來存放 VHD,單一文件最大可以存儲1TB。
Blob 服務由 Blob 本身以及其收納容器 (Container) 構成,容器可以視為一般本機上的文件夾。
你可以通過 REST API 來訪問 Blob:
http://.blob.core.chinacloudapi.cn//
accountname 表示哪個 Azure 存儲賬號下的資源,是全局唯一的。 blob.core.chinacloudapi.cn 表示 azure chinablob 存儲資源,是固定的。 containername 表示容器的名字,可以認為是訪問某一文件夾下的資源 blobname 表示要訪問的資源名稱,可以認為是一個 mp3 文件,或者是一個 jpg 文件。
舉例說明:
保存在 leizhangstorage 存儲賬號下,containername 為 photo,blobname 為 myphoto.jpg。則這個 URL 地址為:
http://leizhangstorage.blob.core.chinacloudapi.cn/photo/myphoto.jpg
保存在 leizhangstorage 存儲賬號下,containername 為 vhd,blobname 為 myvm.vhd。則這個 URL 地址為:
http://leizhangstorage.blob.core.chinacloudapi.cn/vhd/myvm.vhd
Container 的命名規則:
containername 只能是一級目錄,沒有辦法在containername 下再設置下一級別 containername 必須以英文或數字開頭,且名稱內只能有英文、數字及 dash(-) 不能以 dash(-) 開頭或結尾,dash(-) 不能連續出現 所有英文的字符必須是小寫 長度為 3-63 之間
Blob 的命名規則:
除了 url 的保留字符以外,其他的字符組合都可以使用 長度為 1-1024 個字符 盡量避免以 dot(.) 或者是 forward slash(/) 結尾。否則會造成 Blob Service 誤判。
下面是Kubernetes中AzureDisk卷對應的結構體:
變量DiskName:必選參數,表示數據磁盤的名稱。 變量DataDiskURI:必選參數,表示數據磁盤的訪問路徑。 變量CachingMode:可選參數,表示數據磁盤緩沖模式,可以選擇None、ReadOnly和ReadWrite,默認是None。 變量FSType:可選參數,表示數據磁盤掛載到操作系統上之后格式化成的文件系統類型,比如:”ext4″、”xfs”、”ntfs”,默認是”ext4″。 變量ReadOnly:可選參數,這是一個布爾型變量,表示數據磁盤是否為只讀使用,默認是false,表示可以進行讀寫操作。
到此,關于“kubernetes1.4有哪些新特性”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。