溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

kubernetes中怎么驗證PV和PVC

發(fā)布時間:2021-12-31 09:11:18 來源:億速云 閱讀:242 作者:iii 欄目:云計算

這篇文章主要講解了“kubernetes中怎么驗證PV和PVC”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“kubernetes中怎么驗證PV和PVC”吧!

k8s中用PV和PVC分離了存儲和使用存儲

pv是存儲空間,由StorageClass來分類

pvc是存儲卷聲明,代表用戶使用存儲的請求,包括空間大小、特定的訪問模式等

PVC可作為數(shù)據(jù)卷的一種,被掛在到容器或容器組中使用

有靜態(tài)和動態(tài)兩種方式為PVC提供PV

static: 人為創(chuàng)建好一系列PV,它們包含實際存儲的具體信息,且對集群用戶可見

dynamic: 在配置有合適的StorageClass且PVC關(guān)聯(lián)了該StorageClass的情況下,k8s集群可為應(yīng)用程序動態(tài)創(chuàng)建PV

當(dāng)用戶創(chuàng)建了一個PVC,k8s將立刻為其匹配一個PV,并將二者綁定在一起。PVC和PV之間的綁定關(guān)系是一對一的映射。

若沒有合適的PV,PVC將停留在unbound狀態(tài),直到有合適的PV可用

這里用NFS服務(wù)給nginx提供網(wǎng)頁存儲,驗證PV和PVC
環(huán)境是,k8s 1.20.1,master節(jié)點上安裝nfs服務(wù)端,其他node節(jié)點安裝nfs客戶端

一、 ubuntu 18.04上安裝nfs

server端

apt install nfs-kernel-server

創(chuàng)建共享目錄

mkdir -p /mnt/nfs

vi /etc/exports

/mnt/nfs *(rw,sync,no_root_squash)

重啟服務(wù)

systemctl rpcbind restart

systemctl nfs-server status

確認NFS服務(wù)器啟動成功:

rpcinfo -p

檢查 NFS 服務(wù)器是否掛載我們想共享的目錄/mnt/nfs/

exportfs

showmount -e localhost #顯示輸出列表

client端

apt install nfs-common

mount -t nfs -o vers=4.1 192.168.33.10:/mnt/nfs /data

查看服務(wù)端共享目錄

showmount -e 192.168.33.10

客戶端查詢掛載情況

df -h

rpcinfo -p 192.168.33.10

查看NFS版本

服務(wù)器端使用:nfsstat -s

客戶端使用:nfsstat -c

二、  k8s上配置驗證PV、PVC

配置文件

vi pv-lb-nginx.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-web
spec:
  selector:
    matchLabels:
      run: nginx-web
  replicas: 1
  template:
    metadata:
      labels:
        run: nginx-web
    spec:
      containers:
      - name: nginx-web
        image: nginx
        ports:
        - containerPort: 80
        volumeMounts:
        - mountPath: /etc/nginx/conf.d  # nginx容器中的默認配置目錄
          name: configfile   #自定義名稱1
        - mountPath: /usr/share/nginx/html  # nginx容器中的網(wǎng)頁目錄
          name: webroot  #自定義名稱2
      volumes:
      - name: configfile #須和上面自定義名稱1一致
        configMap:
          name: nginx-config #指定configmap的名稱
      - name: webroot #須和上面自定義名稱2一致
        persistentVolumeClaim:
          claimName: nfs-pvc  #指定pvc的名稱
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-web
  labels:
    run: nginx-web
spec:
  type: LoadBalancer
  ports:
  - port: 80
    targetPort: 80
    protocol: TCP
    name: http
  selector:
    run: nginx-web
--- #聲明pv詳細設(shè)置
apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv
spec:
  capacity:
    storage: 1Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  nfs:
    server: 192.168.33.10
    path: "/mnt/nfs"
---  #聲明pv需求
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
---     #聲明configmap用于nginx配置
apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-config
data:
  nginx.conf: |-
    server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    }

kubect apply -f pv-lb-nginx.yaml

檢查部署狀態(tài):

kubectl get svc

kubectl get pods

kubectl get pv

kubectl get pvc

若出錯,kubectl describe 查看其events

驗證,打開瀏覽器訪問nginx,看到你配置的網(wǎng)頁內(nèi)容即可

感謝各位的閱讀,以上就是“kubernetes中怎么驗證PV和PVC”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對kubernetes中怎么驗證PV和PVC這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI