欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

Kubernetes 中配置基于NFS的持久卷 - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

您當前位置>首頁 » 新聞資訊 » 技術(shù)分享 >

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)案例查看更多