
Cập nhật lần cuối: 21/08/2025 17:00
Bước 1: Tạo Persistent Volume Claim:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc #[1] The PVC name spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi storageClassName: my-storage-class # The same [1] in sc template |
Chạy câu lệnh sau đây để triển khai tạo storage class:
| kubectl apply -f persistent-volume-claim.yaml |
Bước 2: Tạo pod dùng PVC
apiVersion: v1 kind: Pod metadata: name: nginx spec: containers: - image: nginx imagePullPolicy: IfNotPresent name: nginx ports: - containerPort: 80 protocol: TCP volumeMounts: - mountPath: /var/lib/www/html name: my-volume-name volumes: - name: my-volume-name persistentVolumeClaim: claimName: my-pvc # The same [1] in pvc template readOnly: false |
Chạy câu lệnh sau đây để triển khai tạo pod:
| kubectl apply -f podnginx-pvc.yaml |
Lúc này, hệ thống sẽ tự động tạo một Volume tương ứng với file yaml bên trên, volume này sẽ được attach vào node chứa pod dùng PVC đang chạy, ví dụ:
Kiểm tra pv, pod vừa tạo:
kubectl get pvc,pod NAME STATUS VOLUME STORAGECLASS persistentvolumeclaim/nginx-pvc Bound pvc-33c2... csi-vnptcloud-ssd
NAME READY STATUS RESTARTS AGE pod/nginx-pod 1/1 Running 0 7m53s
|
Lưu ý: Khi sử dụng volume static kiểu dưới đây bắt buộc phải bỏ default cho tất cả storageclass để nó không tự động managed volume được tạo thủ công.
Kiểm tra storage và xóa default sc nếu có:
| kubectl get sc |
Bỏ default sc:
kubectl patch storageclass <name-sc> \ -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}' |
Bước 1: Khởi tạo volume ở site volume trên Console VNPT Cloud Portal:
Bước 2: Tạo PV ứng với volume_id vừa tạo
apiVersion: v1 kind: PersistentVolume metadata: name: nginx-pv #[1] PV name spec: capacity: storage: 2Gi accessModes: - ReadWriteOnce csi: driver: bs.csi.vnptplatform.vn volumeHandle: ff78c129-ba1a-43ee-9097-43f9f02c36d9 #ID volume |
ID Volume được lấy trong màn hình chi tiết volume:
Trang chủ > Dịch vụ hạ tầng > Block Storage > Volume > Chi tiết Volume
Chạy câu lệnh sau đây để tạo pv:
| kubectl apply -f podnginx-pv.yaml |
Bước 3: Tạo PVC ứng với PV
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: nginx-pvc #[1] PVC name spec: accessModes: - ReadWriteOnce resources: requests: storage: 2Gi volumeName: nginx-pv #The same [1] in pv template |
Chạy câu lệnh sau đây để tạo pvc:
| kubectl apply -f podnginx-pvc.yaml |
Bước 4: Tạo Pod sử dụng PVC
Tạo file podnginx.yaml với nội dung sau:
apiVersion: v1 kind: Pod metadata: name: nginx spec: containers: - image: nginx imagePullPolicy: IfNotPresent name: nginx ports: - containerPort: 80 protocol: TCP volumeMounts: - mountPath: /var/lib/www/html name: my-volume-name volumes: - name: my-volume-name persistentVolumeClaim: claimName: nginx-pvc # The same [1] in pvc template readOnly: false |
Chạy câu lệnh sau đây để triển khai tạo pod:
| kubectl apply -f podnginx.yaml |