k8s學習(十六) 配置並使用pvc


PVC 的全稱是:PersistentVolumeClaim(持久化卷聲明),PVC 是用戶存儲的一種聲明,PVC 和 Pod 比較類似,
Pod 消耗的是節點,PVC 消耗的是 PV 資源,Pod 可以請求 CPU 和內存,而 PVC 可以請求特定的存儲空間和訪問模式。對於真正使用存儲的用戶不需要關心底層的存儲實現細節,只需要直接使用 PVC 即可。

1、將各個節點像上一節一樣部署nfs客戶端

2、部署PVC

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: pvc-1
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
kubectl apply -f pvc-demo.yaml
[root@k8s-node1 k8s]# kubectl get pv
NAME    CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM               STORAGECLASS   REASON   AGE
pv001   1Gi        RWO            Recycle          Bound    default/www-web-1                           5d
pv002   1Gi        RWO            Recycle          Bound    default/www-web-0                           5d
pv1     1Gi        RWO            Recycle          Bound    default/pvc-1                               56m

pv的狀態已經是Bound

[root@k8s-node1 k8s]# kubectl get pvc
NAME        STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
pvc-1       Bound    pv1      1Gi        RWO                           80s
www-web-0   Bound    pv002    1Gi        RWO                           5d
www-web-1   Bound    pv001    1Gi        RWO                           5d

3、測試使用pvc
構建一個deployment,將nginx的usr/share/nginx/html指向nfs的共享存儲路徑/data/k8s

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: use-pvc-deployment
spec:
  replicas: 2
  template:
    metadata:
      labels:
        app: use-pvc-deployment
    spec:
      containers:
      - name: nginx
        image: 172.16.10.190:8008/nginx
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 80
          name: use-pvc-web
        volumeMounts:
        - name: www
          mountPath: /usr/share/nginx/html
      volumes:
      - name: www
        persistentVolumeClaim:
          claimName: pvc-1

---

apiVersion: v1
kind: Service
metadata:
  name: nfs-pvc
  labels:
    app: nfs-pvc
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: use-pvc-web
    nodePort: 32112
  selector:
    app: use-pvc-deployment
kubectl apply -f use-pvc.yaml

這時訪問http://192.168.100.87:32112/報403錯誤
在這里插入圖片描述
在/data/k8s創建index.html

<html>
Hello This is Nginx in K8S
</html>

再次訪問http://192.168.100.87:32112/ 成功了
在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM