K8S簡歷(十)

存儲對于一個集群很重要冰啃,沒有可靠的存儲集群的就不能通供持續(xù)有狀態(tài)的服務(wù)。
今天我要講的是K8S中exmptydir,nfs,pv+pvc(推薦)區(qū)別和用法刘莹。

emptyDir:

emptydir存儲方式是在節(jié)點(diǎn)上創(chuàng)建一個空間用于存儲Pod數(shù)據(jù)亿笤,需要注意的是如果Pod掛了數(shù)據(jù)會被刪除一般用于臨時(shí)存儲,支持把節(jié)點(diǎn)上的內(nèi)存空間分配給Pod使用栋猖。
例子:

apiVersion: v1
kind: Pod
mentadata:
  name: www
  namespace: default
spec:
  containers:
  - name: nginx
    image: wlzyr/nginx:v1.12
    volumeMounts:
      - name: www-db
        mountPath: /data/www/
  - name: date
    image: busybox
    volumeMounts:
      - name: www-db
        mountPath: /data/
    command: ["/bin/sh","while true; do echo $(date) > /data/index.html; done"]
volumes:
  - name: www-db
    emptyDir: {}
 #emptyDir:沒加字段需要“{}”

date容器為nginx容器創(chuàng)造index.html內(nèi)容净薛,從中可以看出雖然他們是連個獨(dú)立的容器但使用了一個存儲。

hostPath:

如果你需要Pod掛掉后數(shù)據(jù)不被清空你可以使用hostPath蒲拉,hostPath和emptyDir類似只是他不會在Pod掛掉后請數(shù)據(jù)肃拜。
例子:

apiVersion: v1
kind: Pod
metadata:
  name: www
  namespace: default
spec:
  containers:
  - name: nginx
    image: wlzyr/nginx:v1.12
    volumeMounts:
    - name: db
      mountPath: /data/www/
volumes:
  - name: db
    hostPath:
      path: /data/www/
      type: DirectoryOrCrate
#type:如果/data/www/不存在會自動創(chuàng)建,如果是Directory的話就不會自動創(chuàng)建(file&fileOrCreate)雌团。

nfs:

上面兩個存儲方式都有一個弊端就是如果節(jié)點(diǎn)掛了數(shù)據(jù)怎么辦呢燃领?更為安全的方式是把數(shù)據(jù)放在集群外保管。我們用nfs來實(shí)現(xiàn)這個功能锦援。
例子:

yum install -y nfs-utils
#需要在節(jié)點(diǎn)上和存儲服務(wù)上安裝nfs-utils軟件包
mkdir /data/v1 -p
#創(chuàng)建你想共享的文件夾猛蔽,并寫進(jìn)配置文件中(/etc/exports)
#在/etc/exports添加
/data/v1              192.168.1.0/24(rw,no_root_squash)
#你可以下節(jié)點(diǎn)上先掛載,看nfs是否正常
mount -t nfs 192.168.1.1:/data/v1 /data
#掛載成功就可以用umount卸載,開始編寫Pod
apiVersion: v1
kind: Pod
metadata:
  name: www
  namespace: default
spec:
  containers:
  - name: nginx
    image: wlzyr/nginx:v1.12
    volumeMounts:
      - name: db
        mountPath: /data/www/
volumes:
  - name: db
    nfs:
      server: 192.168.1.1
      path: /data/v1

這樣子我們就把Pod的存儲外置了。
注:簡單介紹gitRepo存儲方式曼库,這種是把數(shù)據(jù)存儲在git倉庫中節(jié)點(diǎn)上要有g(shù)it工具区岗,需要注意的是這種方式只會在創(chuàng)建Pod的時(shí)候會從git倉庫獲取最新數(shù)據(jù),如果Pod正在運(yùn)行倉庫有更新也不會更新到Pod中毁枯。

pvc&pv

其實(shí)上面這幾種存儲方式在生產(chǎn)環(huán)境中都是不可用的慈缔,nfs雖好但他沒有冗余如果nfs服務(wù)器炸了是不是數(shù)據(jù)就沒了?但我有冗余功能的存儲系統(tǒng)又不是很容易就可以搭建起來种玛,所以K8S給這種情況準(zhǔn)備了pvc&pv藐鹤。


PVC&PV

PersistentVolume (PV) :是外部存儲系統(tǒng)中的一塊存儲空間,由管理員創(chuàng)建和維護(hù)赂韵。與 Volume 一樣娱节,PV 具有持久性,生命周期獨(dú)立于 Pod祭示。
PersistentVolumeClaim (PVC) :是對 PV 的申請 (Claim)括堤。PVC 通常由普通用戶創(chuàng)建和維護(hù)。需要為 Pod 分配存儲資源時(shí)绍移,用戶可以創(chuàng)建一個 PVC悄窃,指明存儲資源的容量大小和訪問模式(比如只讀)等信息,Kubernetes 會查找并提供滿足條件的 PV蹂窖。
PV和PVC是一對一的關(guān)系轧抗,PVC和Pod可以一對多具體需要看配置。
PV例子:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: db-pv1
spec:
  capacity:
    storage: 1Gi      #有i表示1000MB=1GB瞬测,無i表示1024MB=1GB
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  nfs:
    path: /data/v1
    server: 192.168.1.1

#capacity 指定 PV 的容量為 1G横媚。
#accessModes 指定訪問模式為 ReadWriteOnce,支持的訪問模式有:
#ReadWriteOnce – PV 能以讀寫模式一對一月趟。
#ReadOnlyMany – PV 能以只讀模式一對多灯蝴。
#ReadWriteMany – PV 能以讀寫模式一對多。
#persistentVolumeReclaimPolicy指定當(dāng) PV 的回收策略為 Recycle孝宗,支持的策略有:
#Retain – 需要管理員手工回收穷躁。
#Recycle – 清除 PV 中的數(shù)據(jù),效果相當(dāng)于執(zhí)行 rm -rf /thevolume/*因妇。
#Delete – 刪除 Storage Provider 上的對應(yīng)存儲資源问潭,例如 AWS EBS、GCE PD婚被、Azure Disk狡忙、#OpenStack Cinder Volume 等。

PVC例子:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mypvc1
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
#accessModes:需要什么類型的PV
#storage:多大的空間

Pod例子:

apiVersion: v1
kind: Pod
metadata:
  name: mypod1
spec:
  containers:
  - name: nginx
    image: wlzyr/nginx:v1,12
    volumeMounts:
    - name: db
      mountPath: "/data/www"
  volumes:
    - name: db
      persistentVolumeClaim:
        claimName: db-pv1
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末址芯,一起剝皮案震驚了整個濱河市灾茁,隨后出現(xiàn)的幾起案子窜觉,更是在濱河造成了極大的恐慌,老刑警劉巖北专,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件禀挫,死亡現(xiàn)場離奇詭異,居然都是意外死亡逗余,警方通過查閱死者的電腦和手機(jī)特咆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門季惩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來录粱,“玉大人,你說我怎么就攤上這事画拾∩斗保” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵青抛,是天一觀的道長旗闽。 經(jīng)常有香客問我,道長蜜另,這世上最難降的妖魔是什么适室? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮举瑰,結(jié)果婚禮上捣辆,老公的妹妹穿的比我還像新娘。我一直安慰自己此迅,他們只是感情好汽畴,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著耸序,像睡著了一般忍些。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上坎怪,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天罢坝,我揣著相機(jī)與錄音,去河邊找鬼搅窿。 笑死炸客,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的戈钢。 我是一名探鬼主播痹仙,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼殉了!你這毒婦竟也來了开仰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎众弓,沒想到半個月后恩溅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡谓娃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年脚乡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片滨达。...
    茶點(diǎn)故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡奶稠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出捡遍,到底是詐尸還是另有隱情锌订,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布画株,位于F島的核電站辆飘,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏谓传。R本人自食惡果不足惜蜈项,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望续挟。 院中可真熱鬧紧卒,春花似錦、人聲如沸庸推。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贬媒。三九已至聋亡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間际乘,已是汗流浹背坡倔。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脖含,地道東北人罪塔。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像养葵,于是被迫代替她去往敵國和親征堪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容