K8s進階之數(shù)據(jù)卷與數(shù)據(jù)持久卷
目錄:
創(chuàng)新互聯(lián)建站成都網(wǎng)站建設(shè)按需制作,是成都網(wǎng)站設(shè)計公司,為水泥攪拌車提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計、前端HTML5制作、后臺程序開發(fā)等。成都網(wǎng)站制作熱線:028-86922220
一 從外部訪問應(yīng)用最佳方式
二 配置管理
三 數(shù)據(jù)卷與數(shù)據(jù)持久卷
四 再談有狀態(tài)應(yīng)用部署
五 K8S 安全機制
三、數(shù)據(jù)卷與數(shù)據(jù)持久卷
數(shù)據(jù)卷產(chǎn)生的背景
為什么有數(shù)據(jù)卷,這里的數(shù)據(jù)卷和docker的數(shù)據(jù)卷還不太一樣,實現(xiàn)的機制不是一套,數(shù)據(jù)卷說白了就是能幫助你持久化你pod重要的數(shù)據(jù),如果你不持久化的話,pod刪除里面臨時產(chǎn)生的數(shù)據(jù)也會被刪除,這不管是k8s中還是docker中,這都是一樣的,所以k8s和docker都提供了這種volume的這種相關(guān)功能,就是為了持久化你容器中的數(shù)據(jù),能讓它重建或者刪除,數(shù)據(jù)依然存在。
? Kubernetes中的Volume提供了在容器中掛載外部存儲的能力 ,也就是部署k8s自身的存儲了,就好比自己搭建一個分布式存儲,好比公有云的云盤存儲,這樣是可以掛在集群之外的存儲可以掛在k8s中去使用。
pod要想使用這種存儲必須定義兩點:
? Pod需要設(shè)置卷來源(spec.volume)和掛載點(spec.containers.volumeMounts)兩個信息后才可以使用相應(yīng)的Volume
來看一下卷的類型最好的解釋就是官方:
來看一下官方怎么說的:
https://kubernetes.io/docs/concepts/storage/volumes/
第一種就是本地卷
像hostPath類型與docker里面的bind mount類型,就是直接掛載到宿主機文件的類型
像emptyDir是這樣本地卷,也就是類似于volume類型
這兩點都是綁定node節(jié)點的
第二種就是網(wǎng)絡(luò)數(shù)據(jù)卷
比如Nfs、ClusterFs、Ceph,這些都是外部的存儲都可以掛載到k8s上
第三種就是云盤
比如AWS、微軟(azuredisk)
第四種就是k8s自身的資源
比如secret、configmap、downwardAPI
先來看一下本地卷
像emptyDir類似與docker的volume,而docker刪除容器,數(shù)據(jù)卷還會存在,而emptyDir刪除容器,數(shù)據(jù)卷也會丟失,一般這個只做臨時數(shù)據(jù)卷來使用
創(chuàng)建一個空卷,掛載到Pod中的容器。Pod刪除該卷也會被刪除。
應(yīng)用場景:Pod中容器之間數(shù)據(jù)共享
emptyDir類型
[root@k8s-master demo]# vim emptydir.yaml
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: write
image: centos
command: ["bash","-c","for i in {1..100};do echo
$i >> /data/hello;sleep 1;done"]
volumeMounts:
- name: data
mountPath: /data
- name: read
image: centos
command: ["bash","-c","tail -f /data/hello"]
volumeMounts:
- name: data
mountPath: /data
volumes:
- name: data
emptyDir: {}
[root@k8s-master demo]# kubectl create -f emptydir.yaml
[root@k8s-master demo]# kubectl get pod
NAME READY STATUS RESTARTS AGE
my-pod 2/2 Running 13 67m
mypod 1/1 Running 0 3h40m
mypod2 1/1 Running 0 3h34m
mypod3 0/1 Completed 0 3h6m
mypod4 0/1 Completed 0 3h
nginx-5ddcc6cb74-lplxl 1/1 Running 0 4h8m
[root@k8s-master demo]# kubectl logs my-pod read
Hostpath類型
掛載Node文件系統(tǒng)上文件或者目錄到Pod中的容器。
應(yīng)用場景:Pod中容器需要訪問宿主機文件
[root@k8s-master demo]# vim hostpath.yaml
apiVersion: v1
kind: Pod
metadata:
name: my-pod2
spec:
containers:
- name: busybox
image: busybox
args:
- /bin/sh
- -c - sleep 36000
volumeMounts:
- name: data
mountPath: /data
volumes:
- name: data
hostPath:
path: /tmp
type: Directory
[root@k8s-master demo]# kubectl create -f hostpath.yaml
[root@k8s-master demo]# kubectl get pod
NAME READY STATUS RESTARTS AGE
my-pod2 1/1 Running 0 12s
mypod 1/1 Running 0 4h53m
mypod2 1/1 Running 0 4h47m
mypod3 0/1 Completed 0 4h27m
mypod4 0/1 Completed 0 4h22m
nginx-5ddcc6cb74-lplxl 1/1 Running 0 5h30m
web-67fcf9bf8-mrlhd 1/1 Running 0 20m
[root@k8s-master demo]# kubectl exec -it my-pod2 sh
cd /data/
ls
這里創(chuàng)建的數(shù)據(jù)和我們被分配的node節(jié)點的數(shù)據(jù)都是一樣的,創(chuàng)建的數(shù)據(jù)都會更新上去,刪除容器,不會刪除數(shù)據(jù)卷的數(shù)據(jù)。
網(wǎng)頁題目:Kubernetes進階之hostpath及emptyDir數(shù)據(jù)卷
分享路徑:http://muchs.cn/article44/jpgche.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、營銷型網(wǎng)站建設(shè)、網(wǎng)站導航、搜索引擎優(yōu)化、電子商務(wù)、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)