知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
Kubernetes 中配置基于NFS的持久卷
發(fā)表時間:2020-10-19
發(fā)布人:葵宇科技
瀏覽次數(shù):45
建議將Pod的數(shù)據(jù)放入某個持久卷中,以便即使Pod終止后也可以使用這些數(shù)據(jù)。在Kubernetes(k8s)中,可以在Pod中使用基于NFS的持久卷。在本文中,我們將學(xué)習(xí)如配置持久卷和持久卷聲明,然后我們將討論如何通過k8s pod中的聲明名稱使用持久卷。
我假設(shè)我們有一個功能正常的k8s集群和NFS Server。以下是設(shè)置的詳細信息:
-
NFS服務(wù)器IP = 192.168.179.102
-
NFS共享目錄 = /opt/k8s-pods/data
-
K8s群集 = 一個主節(jié)點和兩個工作節(jié)點
注意: 確??梢詮膚orker節(jié)點訪問NFS服務(wù)器,并嘗試在每個worker節(jié)點上安裝nfs共享以進行測試。
NFS環(huán)境準備
NFS 192.168.179.102 提供共享目錄
#在nfs共享中創(chuàng)建一個index.html文件,因為我們將在本文后面的nginx pod中掛載該共享。
[root@localhost ~]# yum -y install nfs-utils
[root@localhost ~]# mkdir -p /opt/k8s-pods/data/
[root@localhost ~]# echo "Hello, NFS Storage NGINX" > /opt/k8s-pods/data/index.html
[root@localhost ~]# vim /etc/exports
[root@localhost ~]# cat /etc/exports
/opt/k8s-pods/data 192.168.0.0/16(rw,no_root_squash)
[root@localhost ~]# exportfs -avr
exporting 192.168.0.0/16:/opt/k8s-pods/data
Master Node 安裝驅(qū)動設(shè)備
[root@k8s-master ~]# mount -t nfs 192.168.179.102:/opt/k8s-pods/data /mnt
mount: wrong fs type, bad option, bad superblock on 192.168.179.102:/opt/k8s-pods/data,
missing codepage or helper program, or other error
(for several filesystems (e.g. nfs, cifs) you might
need a /sbin/mount.<type> helper program)
#可以看到不支持,要安裝驅(qū)動存儲設(shè)備,所有節(jié)點都需要安裝 master node
[root@k8s-master ~]# yum install nfs-utils -y
[root@k8s-master ~]# mount -t nfs 192.168.179.102:/opt/k8s-pods/data /mnt
[root@k8s-master ~]# cd /mnt/
[root@k8s-master mnt]# ls
index.html
[root@k8s-master mnt]# cat index.html
Hello, NFS Storage NGINX
[root@k8s-master ~]# umount /mnt
配置持久卷聲明
要在Pod內(nèi)掛載持久卷,我們必須指定其持久卷聲明。因此,讓我們使用以下YAML文件創(chuàng)建持久卷聲明:
[root@k8s-master mnt]# cat nfs-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-pv
spec:
capacity:
storage: 2Gi
volumeMode: Filesystem
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Recycle
storageClassName: nfs
nfs:
path: /opt/k8s-pods/data
server: 192.168.179.102
[root@k8s-master mnt]# kubectl apply -f nfs-pv.yml
[root@k8s-master mnt]# kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
nfs-pv 2Gi RWX Recycle Available nfs 2m44s
以上輸出確認PV已成功創(chuàng)建并且可用。
配置持久卷聲明
要在Pod內(nèi)掛載持久卷,我們必須指定其持久卷聲明。因此,讓我們使用以下YAML文件創(chuàng)建持久卷聲明:
[root@k8s-master mnt]# cat nfs-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-pvc
spec:
storageClassName: nfs
accessModes:
- ReadWriteMany
resources:
requests:
storage: 2Gi
[root@k8s-master mnt]# kubectl apply -f nfs-pvc.yaml
persistentvolumeclaim/nfs-pvc created
#執(zhí)行完上述操作后,控制平面將使用相同的存儲類名稱查找滿足聲明要求的持久卷,然后將聲明綁定到持久卷,示例如下所示:
[root@k8s-master mnt]# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
nfs-pvc Bound nfs-pv 2Gi RWX nfs 3m37s
[root@k8s-master mnt]# kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
nfs-pv 2Gi RWX Recycle Bound default/nfs-pvc nfs 15m
以上輸出確認聲明(nfs-pvc)與持久卷(nfs-pv)綁定?,F(xiàn)在我們準備在pod中使用基于nfs的持久卷。
在Pod中使用基于NFS的持久卷
在yaml文件下面創(chuàng)建一個nginx pod,它將在/usr/share/nginx/html
上掛載持久卷聲明。
[root@k8s-master mnt]# cat nfs-pv-pod.yml
apiVersion: v1
kind: Pod
metadata:
name: nginx-pv-pod
spec:
volumes:
- name: nginx-pv-storage
persistentVolumeClaim:
claimName: nfs-pvc
containers:
- name: nginx
image: nginx
ports:
- name: http
containerPort: 80
volumeMounts:
- name: nginx-pv-storage
mountPath: /usr/share/nginx/html
注意:要獲取有關(guān)pod的更多詳細信息,可使用 kubectl describe pod <pod-name>
命令。
以上命令輸出確認已成功創(chuàng)建容器?,F(xiàn)在嘗試使用curl命令訪問nginx頁面:
[root@k8s-master mnt]# kubectl get pod -o wide | awk 'NR==1 || $1=="nginx-pv-pod"'
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-pv-pod 1/1 Running 0 5m42s 10.244.0.22 k8s-master <none> <none>
[root@k8s-master mnt]# curl 10.244.0.22
Hello, NFS Storage NGINX
完美,上面curl
命令的輸出確認了持久卷已正確掛載到pod中,因為我們可以獲取NFS共享上index.html
文件的內(nèi)容。
相關(guān)案例查看更多
相關(guān)閱讀
- 汽車回收管理
- 網(wǎng)絡(luò)公司電話
- 大理小程序開發(fā)
- 小程序開發(fā)平臺前十名
- 政府網(wǎng)站建設(shè)服務(wù)
- 小程序
- 搜索引擎排名
- 微分銷
- 迪慶小程序開發(fā)
- 云南網(wǎng)站設(shè)計
- 昆明網(wǎng)站建設(shè)公司
- 商標
- 小程序用戶登錄
- 云南建設(shè)廳官方網(wǎng)站
- 小程序生成海報
- 百度快速排名
- 網(wǎng)站小程序
- 昆明小程序開發(fā)
- 昆明軟件定制
- 云南網(wǎng)站建設(shè)哪家公司好
- 制作一個小程序
- 汽車報廢拆解管理系統(tǒng)
- 報廢車管理
- 百度排名
- 云南衛(wèi)視小程序
- 云南etc小程序
- 云南小程序開發(fā)費用
- 小程序定制開發(fā)
- 昆明軟件公司
- APP