k8s存儲 pv pvc ,storageclass


1.  pv  pvc

現在測試 glusterfs  nfs  可讀可寫, 多個pod綁定到同一個pvc上,可讀可寫。

 

2. storageclass  分成兩種

(1)  建立pvc, 相當於多個pod綁定在一個pvc上。

 

 

 

pvc的yaml

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: managed-nfs-storage-pvc
  annotations:
    volume.beta.kubernetes.io/storage-class: managed-nfs-storage
spec:
  accessModes:
    - ReadWriteOnce  #必須寫ReadWriteOnce,否則報錯。
  resources:
    requests:
      storage: 5Gi

 

deployment文件

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nfs-pvc-test
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: nfs-pvc-test
    spec:
      containers:
      - name: nginx
        image: docker.cinyi.com:443/nginx:alpine
        ports:
        - containerPort: 80
        volumeMounts:
        - name: www
          mountPath: /usr/share/nginx/html
      volumes:
      - name: www
        persistentVolumeClaim:
          claimName: managed-nfs-storage-pvc

---

apiVersion: v1
kind: Service
metadata:
  name: nfs-pvc-test
  labels:
    app: nfs-pvc-test
spec:
  type: NodePort
  ports:
  - port: 80
  selector:
    app: nfs-pvc-test

 

 

 

 

 

(2) 直接引用 storageclass

 相當於每個pod都單獨創建pvc,pv

 

 

 

新建statefulset

apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: web
spec:
  serviceName: "nginx1"
  replicas: 4
  volumeClaimTemplates:
  - metadata:
      name: test
      annotations:
        volume.beta.kubernetes.io/storage-class: "managed-nfs-storage" #此處引用classname
    spec:
      accessModes: ["ReadWriteOnce"]
      resources:
        requests:
          storage: 2Gi
  template:
    metadata:
      labels:
        app: nginx1
    spec:
      containers:
      - name: nginx1
        image: docker.cinyi.com:443/senyint/nginx:v.10
        volumeMounts:
        - mountPath: "/mnt"
          name: test

 

當使用ceph 塊存儲時, 使用storageclass  pvc 時, deployment 副本數寫成多個,會報錯。 

 


免責聲明!

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



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