中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

網(wǎng)站優(yōu)化有前途嗎b站好看的紀錄片免費

網(wǎng)站優(yōu)化有前途嗎,b站好看的紀錄片免費,中華建設(shè)雜志網(wǎng)站記者,中國企業(yè)黃頁信息網(wǎng)目錄 一、數(shù)據(jù)存儲的概念 二、基本存儲 1、EmptyDir存儲卷 2、hostPath存儲卷 3、nfs共享存儲卷 三、高級存儲 1、PV(持久化卷) 2、PVC(持久化卷聲明) 3、靜態(tài)PV實驗 4、動態(tài)PV實驗 4.1 在stor01節(jié)點上安裝nfs&#xf…

目錄

一、數(shù)據(jù)存儲的概念

二、基本存儲

1、EmptyDir存儲卷

2、hostPath存儲卷

3、nfs共享存儲卷

三、高級存儲

1、PV(持久化卷)

2、PVC(持久化卷聲明)

3、靜態(tài)PV實驗

4、動態(tài)PV實驗

4.1?在stor01節(jié)點上安裝nfs,并配置nfs服務(wù)

4.2?創(chuàng)建 Service Account

4.3?使用 Deployment 來創(chuàng)建 NFS Provisioner

4.4?創(chuàng)建 StorageClass

4.5?創(chuàng)建 PVC 和 Pod 測試


一、數(shù)據(jù)存儲的概念

容器磁盤上的文件的生命周期是短暫的,這就使得在容器中運行重要應(yīng)用時會出現(xiàn)一些問題。首先,當容器崩潰時,kubelet 會重啟它,但是容器中的文件將丟失——容器以干凈的狀態(tài)(鏡像最初的狀態(tài))重新啟動。其次,在Pod中同時運行多個容器時,這些容器之間通常需要共享文件。Kubernetes 中的Volume抽象就很好的解決了這些問題。Pod中的容器通過Pause容器共享Volume。

二、基本存儲

1、EmptyDir存儲卷

EmptyDir是最基礎(chǔ)的Volume類型,一個EmptyDir就是Host上的一個空目錄。

EmptyDir是在Pod被分配到Node時創(chuàng)建的,它的初始內(nèi)容為空,并且無須指定宿主機上對應(yīng)的目錄文件,因為kubernetes會自動分配一個目錄,?當Pod銷毀時, EmptyDir中的數(shù)據(jù)也會被永久刪除。

EmptyDir用途如下:

  • 臨時空間,例如用于某些應(yīng)用程序運行時所需的臨時目錄,且無需永久保留
  • 一個容器需要從另一個容器中獲取數(shù)據(jù)的目錄(多容器共享目錄)

接下來,通過容器與之間文件共享的案例來使用一下EmptyDir。

  • 創(chuàng)建一個pod-emptydir.yaml
apiVersion: v1
kind: Pod
metadata:name: pod-emptydirnamespace: defaultlabels:app: myapptier: frontend
spec:containers:- name: myappimage: ikubernetes/myapp:v1imagePullPolicy: IfNotPresentports:- name: httpcontainerPort: 80#定義容器掛載內(nèi)容volumeMounts:#使用的存儲卷名稱,如果跟下面volume字段name值相同,則表示使用volume的這個存儲卷- name: html#掛載至容器中哪個目錄mountPath: /usr/share/nginx/html/- name: busyboximage: busybox:latestimagePullPolicy: IfNotPresentvolumeMounts:- name: html#在容器內(nèi)定義掛載存儲名稱和掛載路徑mountPath: /data/command: ['/bin/sh','-c','while true;do echo $(date) >> /data/index.html;sleep 2;done']#定義存儲卷volumes:#定義存儲卷名稱  - name: html#定義存儲卷類型emptyDir: {}
kubectl apply -f pod-emptydir.yaml
#創(chuàng)建podkubectl get pods -o wide
#查看詳細信息

在上面定義了2個容器,其中一個容器是輸入日期到index.html中,然后驗證訪問nginx的html是否可以獲取日期。以驗證兩個容器之間掛載的emptyDir實現(xiàn)共享。

?

2、hostPath存儲卷

EmptyDir中數(shù)據(jù)不會被持久化,它會隨著Pod的結(jié)束而銷毀,如果想簡單的將數(shù)據(jù)持久化到主機中,可以選擇HostPath。

HostPath就是將Node主機中一個實際目錄掛在到Pod中,以供容器使用,這樣的設(shè)計就可以保證Pod銷毀了,但是數(shù)據(jù)依據(jù)可以存在于Node主機上。

  • 在 node01 節(jié)點上創(chuàng)建掛載目錄
mkdir -p /data/pod/volume1
echo 'node01.kfc.com' > /data/pod/volume1/index.html
  • 在 node02 節(jié)點上創(chuàng)建掛載目錄
mkdir -p /data/pod/volume1
echo 'node02.kc.com' > /data/pod/volume1/index.html
  • 創(chuàng)建 Pod 資源
vim pod-hostpath.yaml
apiVersion: v1
kind: Pod
metadata:name: pod-hostpathnamespace: default
spec:containers:- name: myappimage: ikubernetes/myapp:v1#定義容器掛載內(nèi)容volumeMounts:#使用的存儲卷名稱,如果跟下面volume字段name值相同,則表示使用volume的這個存儲卷- name: html#掛載至容器中哪個目錄mountPath: /usr/share/nginx/html#讀寫掛載方式,默認為讀寫模式falsereadOnly: false#volumes字段定義了paues容器關(guān)聯(lián)的宿主機或分布式文件系統(tǒng)存儲卷volumes:#存儲卷名稱- name: html#路徑,為宿主機存儲路徑hostPath:#在宿主機上目錄的路徑path: /data/pod/volume1#定義類型,這表示如果宿主機沒有此目錄則會自動創(chuàng)建type: DirectoryOrCreate
kubectl apply -f pod-hostpath.yaml
  • 訪問測試
kubectl get pods -o wide
NAME           READY   STATUS    RESTARTS   AGE   IP            NODE     NOMINATED NODE   READINESS GATES
pod-hostpath   2/2     Running   0          37s   10.244.2.35   node02   <none>           <none>curl 10.244.2.35
node02.kgc.com
  • 刪除pod,再重建,驗證是否依舊可以訪問原來的內(nèi)容
kubectl delete -f pod-hostpath.yaml  
kubectl apply -f pod-hostpath.yaml kubectl get pods -o wide
NAME           READY   STATUS    RESTARTS   AGE   IP            NODE     NOMINATED NODE   READINESS GATES
pod-hostpath   2/2     Running   0          36s   10.244.2.37   node02   <none>           <none>curl  10.244.2.37 
node02.kgc.com

3、nfs共享存儲卷

HostPath可以解決數(shù)據(jù)持久化的問題,但是一旦Node節(jié)點故障了,Pod如果轉(zhuǎn)移到了別的節(jié)點,又會出現(xiàn)問題了,此時需要準備單獨的網(wǎng)絡(luò)存儲系統(tǒng),比較常用的用NFS、CIFS。

NFS是一個網(wǎng)絡(luò)文件存儲系統(tǒng),可以搭建一臺NFS服務(wù)器,然后將Pod中的存儲直接連接到NFS系統(tǒng)上,這樣的話,無論Pod在節(jié)點上怎么轉(zhuǎn)移,只要Node跟NFS的對接沒問題,數(shù)據(jù)就可以成功訪問。

  • 在stor01節(jié)點上安裝nfs,并配置nfs服務(wù)
mkdir /data/volumes -p
chmod 777 /data/volumesvim /etc/exports
/data/volumes 192.168.10.0/24(rw,no_root_squash)systemctl start rpcbind
systemctl start nfsshowmount -e
Export list for stor01:
/data/volumes 192.168.10.0/24
  • master節(jié)點操作
vim pod-nfs-vol.yaml
apiVersion: v1
kind: Pod
metadata:name: pod-vol-nfsnamespace: default
spec:containers:- name: myappimage: ikubernetes/myapp:v1volumeMounts:- name: htmlmountPath: /usr/share/nginx/htmlvolumes:- name: htmlnfs:path: /data/volumesserver: stor01
kubectl apply -f pod-nfs-vol.yamlkubectl get pods -o wide
NAME                     READY     STATUS    RESTARTS   AGE       IP            NODE
pod-vol-nfs              1/1       Running   0          21s       10.244.2.38   node02
  • 在nfs服務(wù)器上創(chuàng)建index.html
cd /data/volumes
vim index.html
<h1> nfs stor01</h1>
  • master節(jié)點操作
curl 10.244.2.38
<h1> nfs stor01</h1>kubectl delete -f pod-nfs-vol.yaml   #刪除nfs相關(guān)pod,再重新創(chuàng)建,可以得到數(shù)據(jù)的持久化存儲kubectl apply -f pod-nfs-vol.yaml

三、高級存儲

前面了解了使用NFS提供存儲,此時就要求用戶會搭建NFS系統(tǒng),并且會在yaml配置nfs,由于k8s支持的存儲系統(tǒng)有很多,要求客戶全都掌握,顯然不現(xiàn)實。為了能夠屏蔽底層存儲實現(xiàn)的細節(jié),方便用戶使用,k8s引入了PV和PVC兩種資源對象。

  • PV(Persistent Volume):持久化存儲卷。它是用來描述或者說用來定義一個存儲卷的,這個通常都是由運維工程師來定義。
  • PVC(Persistent Volume Claim):是持久化存儲的請求。它是用來描述希望使用什么樣的或者說是滿足什么條件的 PV 存儲。

PVC 的使用邏輯:在 Pod 中定義一個存儲卷(該存儲卷類型為 PVC),定義的時候直接指定大小,PVC 必須與對應(yīng)的 PV 建立關(guān)系,PVC 會根據(jù)配置的定義去 PV 申請,而 PV 是由存儲空間創(chuàng)建出來的。PV 和 PVC 是 Kubernetes 抽象出來的一種存儲資源。

PV和PVC之間的相互作用遵循這個生命周期:
Provisioning(配置)---> Binding(綁定)---> Using(使用)---> Releasing(釋放) ---> Recycling(回收)

  • Provisioning,即 PV 的創(chuàng)建,可以直接創(chuàng)建 PV(靜態(tài)方式),也可以使用 StorageClass 動態(tài)創(chuàng)建
  • Binding,將 PV 分配給 PVC
  • Using,Pod 通過 PVC 使用該 Volume,并可以通過準入控制StorageProtection(1.9及以前版本為PVCProtection) 阻止刪除正在使用的 PVC
  • Releasing,Pod 釋放 Volume 并刪除 PVC
  • Reclaiming,回收 PV,可以保留 PV 以便下次使用,也可以直接從云存儲中刪除

根據(jù)這 5 個階段,PV 的狀態(tài)有以下 4 種:

Available(可用):表示可用狀態(tài),還未被任何 PVC 綁定
Bound(已綁定):表示 PV 已經(jīng)綁定到 PVC
Released(已釋放):表示 PVC 被刪掉,但是資源尚未被集群回收
Failed(失敗):表示該 PV 的自動回收失敗

一個PV從創(chuàng)建到銷毀的具體流程如下:

1、一個PV創(chuàng)建完后狀態(tài)會變成Available,等待被PVC綁定。
2、一旦被PVC邦定,PV的狀態(tài)會變成Bound,就可以被定義了相應(yīng)PVC的Pod使用。
3、Pod使用完后會釋放PV,PV的狀態(tài)變成Released。
4、變成Released的PV會根據(jù)定義的回收策略做相應(yīng)的回收工作。有三種回收策略,Retain、Delete和Recycle。Retain就是保留現(xiàn)場,K8S集群什么也不做,等待用戶手動去處理PV里的數(shù)據(jù),處理完后,再手動刪除PV。Delete策略,K8S會自動刪除該PV及里面的數(shù)據(jù)。Recycle方式,K8S會將PV里的數(shù)據(jù)刪除,然后把PV的狀態(tài)變成Available,又可以被新的PVC綁定使用。

1、PV(持久化卷)

PV是存儲資源的抽象,下面是資源清單文件

apiVersion: v1
kind: PersistentVolume
metadata:name: pv2   #注意:pv是存儲資源的抽象,它不存命名空間的定義
spec:nfs:         #存儲類型,與底層真正存儲對應(yīng)(有多種,比如NFS、GFS、CIFS等)path:(定義掛載卷路徑)server:(定義服務(wù)器名稱)cappcity:    #存儲能力,也就是存儲的空間大小storage: 2GiaccessModes:    #訪問模式storageClassName:   #存儲類別persistentVolumeReclaimPolicy:   #回收策略

PV的關(guān)鍵配置參數(shù)說明

存儲類型

  • 底層實際存儲的類型,k8s支持多種存儲類型,每種存儲類型的配置都有所差異

存儲能力(capacity)

  • 目前只支持存儲空間的設(shè)置(storage=1Gi),未來可能加入IOPS、吞吐量等指標的配置

訪問模式(accessModes)

用戶描述用戶應(yīng)用對存儲資源的訪問權(quán)限,訪問權(quán)限包括下面幾種方式

  • ReadWriteOnce(RWO): 讀寫權(quán)限,但是只能被單個節(jié)點掛載
  • ReadOnlyMany(ROX): 只讀權(quán)限,可以被多個節(jié)點掛載
  • ReadWriteMany(RWX):讀寫權(quán)限,可以被多個節(jié)點掛載

回收策略(persistentVolumeReclaimPolicy)

當PV不再被使用了之后,對其的處理方式。目前支持三種策略

  • Reatin(保留):?保留數(shù)據(jù),需要管理員手動清理數(shù)據(jù)
  • Recycle(回收):?清除PV中的數(shù)據(jù),效果相當于執(zhí)行 rm -rf /thevolume/*
  • Delete(刪除):?與PV相連的后端存儲完成 volume的刪除操作,當然常見與云服務(wù)商的存儲服務(wù)

存儲類別

PV可以通過 storage Name 參數(shù)指定一個存儲類別

  • 具有特定類別的PV 只能與請求了該類別的PVC進行綁定
  • 未設(shè)定類別的PV則只能與不請求任何類別的PVC進行綁定

2、PVC(持久化卷聲明)

PVC是資源的申請,用來聲明對存儲空間、訪問模式、存儲類別需求信息。

資源清單文件

apiVersion: v1
kind: PersistentVolumeClaim   #定義pvc的資源類型
metadata:name: pvcnamespace: dev     #可以定義命名空間
sepc: accessModes:        #訪問模式selector:           #采用標簽對PV選擇storageClassName:   #存儲類別resources:          #請求空間requests:storage: 5Gi

PVC的關(guān)鍵配置參數(shù)說明

訪問模式(accessModes)

  • 用于描述用戶應(yīng)用對存儲資源的訪問權(quán)限

選擇條件(selector)

  • 通過Label Selector 的設(shè)置,可使PVC 對于系統(tǒng)中已存在的PV進行篩選

存儲類別(storageClassName)

  • PVC在定義時可以設(shè)置需要的后端存儲類別,只有設(shè)置了該class的PV才能被系統(tǒng)選出

資源請求(Resources)

  • 描述對存儲資源的請求

3、靜態(tài)PV實驗

使用NFS作為存儲,來演示PV的使用,創(chuàng)建3個PV,對應(yīng)NFS的3個暴露的路徑

1、配置nfs存儲

mkdir v{1,2,3,4,5}vim /etc/exports
/data/volumes/v1 192.168.10.0/24(rw,no_root_squash)
/data/volumes/v2 192.168.10.0/24(rw,no_root_squash)
/data/volumes/v3 192.168.10.0/24(rw,no_root_squash)
/data/volumes/v4 192.168.10.0/24(rw,no_root_squash)
/data/volumes/v5 192.168.10.0/24(rw,no_root_squash)exportfs -arvshowmount -e

官方文檔:https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/configure-persistent-volume-storage/#create-a-persistentvolume

2、定義PV

這里定義5個PV,并且定義掛載的路徑以及訪問模式,還有PV劃分的大小。

vim pv-demo.yaml
apiVersion: v1
kind: PersistentVolume
metadata:name: pv001labels:name: pv001
spec:nfs:path: /data/volumes/v1server: stor01                                                                                                                                                                                                                   accessModes: ["ReadWriteMany","ReadWriteOnce"]capacity:storage: 1Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:name: pv002labels:name: pv002
spec:nfs:path: /data/volumes/v2server: stor01accessModes: ["ReadWriteOnce"]capacity:storage: 2Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:name: pv003labels:name: pv003
spec:nfs:path: /data/volumes/v3server: stor01accessModes: ["ReadWriteMany","ReadWriteOnce"]capacity:storage: 2Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:name: pv004labels:name: pv004
spec:nfs:path: /data/volumes/v4server: stor01accessModes: ["ReadWriteMany","ReadWriteOnce"]capacity:storage: 4Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:name: pv005labels:name: pv005
spec:nfs:path: /data/volumes/v5server: stor01accessModes: ["ReadWriteMany","ReadWriteOnce"]capacity:storage: 5Gi
kubectl apply -f pv-demo.yaml
kubectl get pv
NAME      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM     STORAGECLASS   REASON    AGE
pv001     1Gi        RWO,RWX        Retain           Available                                      7s
pv002     2Gi        RWO            Retain           Available                                      7s
pv003     2Gi        RWO,RWX        Retain           Available                                      7s
pv004     4Gi        RWO,RWX        Retain           Available                                      7s
pv005     5Gi        RWO,RWX        Retain           Available                           			7s

3、定義PVC

這里定義了pvc的訪問模式為多路讀寫,該訪問模式必須在前面pv定義的訪問模式之中。定義PVC申請的大小為2Gi,此時PVC會自動去匹配多路讀寫且大小為2Gi的PV,匹配成功獲取PVC的狀態(tài)即為Bound

vim pod-vol-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: mypvcnamespace: default
spec:accessModes: ["ReadWriteMany"]resources:requests:storage: 2Gi
---
apiVersion: v1
kind: Pod
metadata:name: pod-vol-pvcnamespace: default
spec:containers:- name: myappimage: ikubernetes/myapp:v1volumeMounts:- name: htmlmountPath: /usr/share/nginx/htmlvolumes:- name: htmlpersistentVolumeClaim:claimName: mypvc
kubectl apply -f pod-vol-pvc.yaml
kubectl get pv
NAME      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM           STORAGECLASS   REASON    AGE
pv001     1Gi        RWO,RWX        Retain           Available                                            19m
pv002     2Gi        RWO            Retain           Available                                            19m
pv003     2Gi        RWO,RWX        Retain           Bound       default/mypvc                            19m
pv004     4Gi        RWO,RWX        Retain           Available                                            19m
pv005     5Gi        RWO,RWX        Retain           Available                                            19mkubectl get pvc
NAME      STATUS    VOLUME    CAPACITY   ACCESS MODES   STORAGECLASS   AGE
mypvc     Bound     pv003     2Gi        RWO,RWX                       22s

4、測試訪問

在存儲服務(wù)器上創(chuàng)建index.html,并寫入數(shù)據(jù),通過訪問Pod進行查看,可以獲取到相應(yīng)的頁面。

cd /data/volumes/v3/
echo "welcome to use pv3" > index.htmlkubectl get pods -o wide
pod-vol-pvc             1/1       Running   0          3m        10.244.2.39   k8s-node02curl  10.244.2.39
welcome to use pv3

4、動態(tài)PV實驗

上面介紹的PV和PVC模式是需要運維人員先創(chuàng)建好PV,然后開發(fā)人員定義好PVC進行一對一的Bond,但是如果PVC請求成千上萬,那么就需要創(chuàng)建成千上萬的PV,對于運維人員來說維護成本很高,Kubernetes提供一種自動創(chuàng)建PV的機制,叫StorageClass,它的作用就是創(chuàng)建PV的模板。

創(chuàng)建 StorageClass 需要定義 PV 的屬性,比如存儲類型、大小等;另外創(chuàng)建這種 PV 需要用到的存儲插件,比如 Ceph 等。 有了這兩部分信息,Kubernetes 就能夠根據(jù)用戶提交的 PVC,找到對應(yīng)的 StorageClass,然后 Kubernetes 就會調(diào)用 StorageClass 聲明的存儲插件,自動創(chuàng)建需要的 PV 并進行綁定。
搭建 StorageClass + NFS,實現(xiàn) NFS 的動態(tài) PV 創(chuàng)建

Kubernetes 本身支持的動態(tài) PV 創(chuàng)建不包括 NFS,所以需要使用外部存儲卷插件分配PV。詳見:https://kubernetes.io/zh/docs/concepts/storage/storage-classes/

卷插件稱為 Provisioner(存儲分配器),NFS 使用的是 nfs-client,這個外部卷插件會使用已經(jīng)配置好的 NFS 服務(wù)器自動創(chuàng)建 PV。

4.1?在stor01節(jié)點上安裝nfs,并配置nfs服務(wù)

mkdir /opt/k8s
chmod 777 /opt/k8s/vim /etc/exports
/opt/k8s 192.168.10.0/24(rw,no_root_squash,sync)systemctl restart nfs

4.2?創(chuàng)建 Service Account

創(chuàng)建 Service Account,用來管理 NFS Provisioner 在 k8s 集群中運行的權(quán)限,設(shè)置 nfs-client 對 PV,PVC,StorageClass 等的規(guī)則

vim nfs-client-rbac.yaml
#創(chuàng)建 Service Account 賬戶,用來管理 NFS Provisioner 在 k8s 集群中運行的權(quán)限
apiVersion: v1
kind: ServiceAccount
metadata:name: nfs-client-provisioner
---
#創(chuàng)建集群角色
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:name: nfs-client-provisioner-clusterrole
rules:- apiGroups: [""]resources: ["persistentvolumes"]verbs: ["get", "list", "watch", "create", "delete"]- apiGroups: [""]resources: ["persistentvolumeclaims"]verbs: ["get", "list", "watch", "update"]- apiGroups: ["storage.k8s.io"]resources: ["storageclasses"]verbs: ["get", "list", "watch"]- apiGroups: [""]resources: ["events"]verbs: ["list", "watch", "create", "update", "patch"]- apiGroups: [""]resources: ["endpoints"]verbs: ["create", "delete", "get", "list", "watch", "patch", "update"]
---
#集群角色綁定
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: nfs-client-provisioner-clusterrolebinding
subjects:
- kind: ServiceAccountname: nfs-client-provisionernamespace: default
roleRef:kind: ClusterRolename: nfs-client-provisioner-clusterroleapiGroup: rbac.authorization.k8s.io
kubectl apply -f nfs-client-rbac.yaml

4.3?使用 Deployment 來創(chuàng)建 NFS Provisioner

NFS Provisione(即 nfs-client),有兩個功能:一個是在 NFS 共享目錄下創(chuàng)建掛載點(volume),另一個則是將 PV 與 NFS 的掛載點建立關(guān)聯(lián)。

#由于 1.20 版本啟用了 selfLink,所以 k8s 1.20+ 版本通過 nfs provisioner 動態(tài)生成pv會報錯,解決方法如下:
vim /etc/kubernetes/manifests/kube-apiserver.yaml
spec:containers:- command:- kube-apiserver- --feature-gates=RemoveSelfLink=false       #添加這一行- --advertise-address=192.168.80.20
......kubectl apply -f /etc/kubernetes/manifests/kube-apiserver.yaml
kubectl delete pods kube-apiserver -n kube-system 
kubectl get pods -n kube-system | grep apiserver
#創(chuàng)建 NFS Provisioner
vim nfs-client-provisioner.yaml
kind: Deployment
apiVersion: apps/v1
metadata:name: nfs-client-provisioner
spec:replicas: 1selector:matchLabels:app: nfs-client-provisionerstrategy:type: Recreatetemplate:metadata:labels:app: nfs-client-provisionerspec:serviceAccountName: nfs-client-provisioner   	  #指定Service Account賬戶containers:- name: nfs-client-provisionerimage: quay.io/external_storage/nfs-client-provisioner:latestimagePullPolicy: IfNotPresentvolumeMounts:- name: nfs-client-rootmountPath: /persistentvolumesenv:- name: PROVISIONER_NAMEvalue: nfs-storage       #配置provisioner的Name,確保該名稱與StorageClass資源中的provisioner名稱保持一致- name: NFS_SERVERvalue: stor01           #配置綁定的nfs服務(wù)器- name: NFS_PATHvalue: /opt/k8s          #配置綁定的nfs服務(wù)器目錄volumes:              #申明nfs數(shù)據(jù)卷- name: nfs-client-rootnfs:server: stor01path: /opt/k8s
kubectl apply -f nfs-client-provisioner.yaml kubectl get pod
NAME                                   READY   STATUS    RESTARTS   AGE
nfs-client-provisioner-cd6ff67-sp8qd   1/1     Running   0          14s

4.4?創(chuàng)建 StorageClass

創(chuàng)建 StorageClass,負責建立 PVC 并調(diào)用 NFS provisioner 進行預(yù)定的工作,并讓 PV 與 PVC 建立關(guān)聯(lián)

vim nfs-client-storageclass.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: nfs-client-storageclass
provisioner: nfs-storage     #這里的名稱要和provisioner配置文件中的環(huán)境變量PROVISIONER_NAME保持一致
parameters:archiveOnDelete: "false"   #false表示在刪除PVC時不會對數(shù)據(jù)進行存檔,即刪除數(shù)據(jù)kubectl apply -f nfs-client-storageclass.yamlkubectl get storageclass
NAME                      PROVISIONER   RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
nfs-client-storageclass   nfs-storage   Delete          Immediate           false                  43s

4.5?創(chuàng)建 PVC 和 Pod 測試

vim test-pvc-pod.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: test-nfs-pvc
spec:accessModes:- ReadWriteManystorageClassName: nfs-client-PROVISIONER    #關(guān)聯(lián)StorageClass對象resources:requests:storage: 1Gi
---
apiVersion: v1
kind: Pod
metadata:name: test-storageclass-pod
spec:containers:- name: busyboximage: busybox:latestimagePullPolicy: IfNotPresentcommand:- "/bin/sh"- "-c"args:- "sleep 3600"volumeMounts:- name: nfs-pvcmountPath: /mntrestartPolicy: Nevervolumes:- name: nfs-pvcpersistentVolumeClaim:claimName: test-nfs-pvc      #與PVC名稱保持一致
kubectl apply -f pod-hostpath.yaml

http://www.risenshineclean.com/news/55612.html

相關(guān)文章:

  • 咸陽b2c網(wǎng)站制作價格ai智能營銷系統(tǒng)
  • 男女做暖暖到網(wǎng)站手機上怎么制作網(wǎng)頁
  • 網(wǎng)站舉報網(wǎng)怎樣申請自己的電商平臺
  • 建設(shè)一個政府部門網(wǎng)站商丘網(wǎng)站推廣公司
  • 字節(jié)跳動小程序開發(fā)平臺seo網(wǎng)站編輯是做什么的
  • wordpress加密文章班級優(yōu)化大師免費下載app
  • 做網(wǎng)站公司百度關(guān)鍵詞點擊器
  • 溫州網(wǎng)站建設(shè)優(yōu)化自己的品牌怎么做加盟推廣
  • 模板網(wǎng)站 怎么做優(yōu)化谷歌官方網(wǎng)站注冊
  • 三門峽網(wǎng)站seo優(yōu)化網(wǎng)站排名的方法
  • 網(wǎng)站制作鄭州網(wǎng)站制作yoast seo
  • 電商網(wǎng)站用php做的嗎游戲推廣賺傭金平臺
  • 手機網(wǎng)站開發(fā) 手機模擬器發(fā)帖推廣平臺
  • 海外建站服務(wù)平臺網(wǎng)絡(luò)營銷策略分析報告
  • 做網(wǎng)站公司賺不賺錢成都百度網(wǎng)站排名優(yōu)化
  • wordpress站內(nèi)搜索統(tǒng)計制作網(wǎng)頁的工具軟件
  • 軟件開發(fā)模型及其特點優(yōu)化神馬網(wǎng)站關(guān)鍵詞排名價格
  • wordpress會員瀏覽網(wǎng)站排名優(yōu)化推廣
  • 網(wǎng)站備案名稱的影響嗎網(wǎng)絡(luò)推廣優(yōu)化
  • 鉆井網(wǎng)站建設(shè)電商代運營一般收多少服務(wù)費
  • 網(wǎng)站開發(fā)需要哪些人員產(chǎn)品推廣軟件有哪些
  • 外國人可以在中國做網(wǎng)站嗎百度線上推廣
  • 北京市住房和城鄉(xiāng)建設(shè)委員會網(wǎng)站6優(yōu)化seo深圳
  • wordpress 判斷管理員seo數(shù)據(jù)分析哪些方面
  • 像優(yōu)酷這樣的網(wǎng)站需要怎么做百度官網(wǎng)入口
  • wordpress禁用php報錯湖南seo推廣系統(tǒng)
  • 國外紅色企業(yè)網(wǎng)站公眾號推廣方案
  • 做網(wǎng)站優(yōu)化有什么方法短視頻營銷優(yōu)勢
  • 網(wǎng)頁設(shè)計與網(wǎng)站建設(shè)...手機版谷歌瀏覽器入口
  • 邵陽屬于哪個省哪個市網(wǎng)站排名優(yōu)化的技巧