【云駐共創】華為云云原生黃金課程06:Kubernetes持久化數據卷管理
1.課程目標
學完本課程后,您將能夠:
了解 StatefulSetl的概念及使用
了解 Persistentvolumel概念及使用
了解 PersistentVolume claim的概念及使用
了解 Storage Class的概念及使用
2.前言
從上節課程中我們已經了解無狀態應用了。
應用是為了某項特殊的任務而編寫的程序。程序是由算法和數據組成的在生產環境中,除了一些無狀態應用外,還有一部分應用需要將結果數據(也即:狀態)緩存下來,并永久的記錄在存儲中,以供后續使用。
這類應用就是我們將要討論的“有狀態應用”,與“無狀態應用”相比,我們期望“有狀態應用”具有哪些能力呢?
1.計算維度
每個pod的名字需要是穩定的,不會發生變化的;
pods之間的啟動、升級、退出可以按照某種順序控制的;
2.存儲維度:
存儲是持久的,擁有獨立于pod的生命周期,不會隨著pod的生命周期結束而銷毀
每個pod與其使用的存儲關系是穩定的,不會因升級等因素而發生變化
3.網絡維度
每個pod的有獨立、穩定的網絡標識
3.有狀態應用(Statefulset)概念介紹
3.1 簡介
基于社區對有狀態應用的通用需求,K8S設計了一種有狀態應用對象也即: StatefulSet。它可以為用戶提供一組具有穩定、有序、唯一特性的應用實例集合。如上圖圖所示:
1.穩定
穩定的 podName:{ sysName}-{序號[0-n]}
穩定的網絡標識:{ podName}.{ headlesssvCName).{namespace}. svc.cluster. local
穩定的存儲關系:{ volumeClaimTemplatesName}-{ podName}
2.有序
按照編號從小到大順序的部署
按照編號從大到小進行刪除:n~0
支持有序的擴縮容和升級策略
3.唯一
每個pod擁有一個唯一的網絡標識:{nodAme}. {headlesssvCName}.{namespace).svc.cluster.local從下圖可以看出,與 Deployment通過 Replicase來管理pod生命周期不同, Statefulset是直接管理pod的。
3.2 有狀態應用(Statefulset)樣例模板詳解
3.3 常用操作小結
4. PV/PVC/SC概念介紹
4.1 簡介
Persistentvolume:簡稱pV,持久化存儲,是kδs為云原生應用提供一種擁有獨立生命周期的、用戶可
管理的存儲的抽象設計。
PersistentVolumeclaim:簡稱pw,持久化存儲聲明,是k8s為解耦云原生應用和數據存儲而設計的,
通過pv可以讓資源管控更細更靈活、應用模板更通用。
StorageClass:簡稱sc,存儲類,是k8s平臺為存儲提供商提供存儲接入的_種聲明。通過sc和相應的
存儲插件(csi)為容器應用提供持久存儲卷的能力。
4.2 PVC樣例模板詳解
Pvc中定義應用所需的規格等配置
1.accessmodes
ReadWriteOnce:允許以讀寫能力掛載到一個host上,如:云盤
ReadOnlyMany:允許以只讀能力掛到多個host上,如:文件存儲
ReadWrite Many:允許以讀寫能力掛載到多個host上,如:文件存儲
2. volumeMode
Filesystem:將云盤掛載為文件系統
Block:將云盤掛載為塊設備
3. Resource
Requests:最小容量
Limites:最大容量
4.storageClassName
sc名字
5.mountOptions:
mount指令中的 options
4.3 SC樣例模板詳解
Sc中定義存儲類型和驅動等配置
Parameters:插件驅動定義的參數
Provisioner:指定存儲卷的供應者
reclaim Policy:
Retain:保留
Delete:刪除
volume Binding Mode
Immediate:立即綁定
Wait ForFirstConsumer:延遲綁定
allow Volume Expansion
True:允許擴容
False:不允許擴容
4.4 PV樣例模板詳解
PV中定義應用所需的規格等配置
1.accessModes
ReadWriteOnce:允許以讀寫能力掛載到-個host上,如:云盤
ReadOnly Many:允許以只讀能力掛到多個host上,如:文件存儲
ReadWrite Many:允許以讀寫能力掛載到多個host上,如:文件存儲
2.capacity
storage:容量大小
3.csi:out-tree驅動類型
Driver:驅動名字
fstType:磁盤文件類型
olumeAttributes:存儲驅動定義的參數
volumeHandle:存儲 volume的唯-|D
4. persistentVolume ReclaimPolicy
Retain:保留
Delete:刪除
5.storageClassName
sc名字
6.volume Mod
Filesystem:將云盤掛載為文件系統
Block:將云盤掛載為塊設備
4.5 有狀態應用&持久化存儲的最佳實驗
用戶只需要定義好模板columeClaimTemplates,剩下都交給k8s自動化平臺自己完成。
4.6 常用操作小結
PV/PVC/SC常用命令如下:
5.華為云CCE存儲管理功能使用介紹
5.1 靜態卷
1.CCE提供多種存儲
云硬盤存儲卷
文件存儲卷
極速文件系統存儲卷
對象存儲卷
2.CCE提供兩種靜態卷的創建方式
通過購買新的存儲創建PvC
通過導入已有的存儲創建PvC
5.2 動態卷
集成在創建過程中。不同的存儲卷對用戶的展示也不同。下面以云盤為例,展示如何使用動態卷。
6.實驗:程序天氣預報
6.1 實驗簡介
共有5個服務模塊:
frontend:前臺服務,展示整個應用的頁面,使用 React. js開發而成;
advertisement:廣告服務,返回靜態的廣告圖片,使用 Galang開發而成
forecast:天氣預報服務,返回相應城市的天氣數據,使用 Node. js開發而成
recommendation:推薦服務,根據天氣情況冋用戶推薦穿衣和運動等信息,使用Java
開發而成。
DB:廣告服務的后端,用于給advertisement返回廣告圖片的index,采用mysql數據庫。
6.2 實驗步驟
1.創建文件負載
2.創建容器
3.配置
4.完成
6.3 部署web系統的mysq數據庫具體步驟
進入“云容器引擎>配置中心>秘鑰 Secret”,點擊“添加秘鑰?
填寫秘鑰名稱: mysql- secret,選擇集群和命名空間,秘鑰類型
為 Opaque,秘鑰數據鍵為 MYSQL ROOT PASSWORD,值為
YWRtaW4XMjM=,點擊創建
進入“云容器引擎>工作負載>有狀態負載”,點擊“創建有狀態
工作負載
填寫工作負載的名稱 mysql-adv及實例數1,點擊“下一步容器設
置
選擇"添加容器”>“開源鏡像中心,搜索 mysql,點擊確定
選擇mysq5.6版本,環境變量選擇秘鑰導入mysqμ- secret,數據
存儲選擇添加云存儲->云硬盤,掛載路徑為∧ar/ib/mysq,點擊
確定并下一步;
填寫端口名稱和容器端口306,點擊添加服務,選擇集群內訪問,
service的名稱為“ mysql-adv",容器端口和訪問端口均為3306
保持“高級設置”>提交創建。
本文整理自華為云社區【內容共創】活動第12期。
查看活動詳情:https://bbs.huaweicloud.com/blogs/325315
相關任務詳情:任務34.華為云云原生黃金課程06:Kubernetes持久化數據卷管理
Kubernetes 云原生
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。