1. Điều kiện tiên quyết

  • Tạo mới một Kubernetes (K8s) Cluster trên VNPT Cloud Portal hoặc sử dụng cluster hiện có.
  • Sau khi cluster khởi tạo thành công, quý khách tải xuống tệp kubeconfig để truy cập và quản lý cluster.

Lưu ý: 

  • Nếu quý khách không bật tùy chọn “VNPT Block Storage CSI” khi tạo cluster, quý khách có thể cài đặt VNPT Block Storage CSI theo hướng dẫn Cài đặt Add-ons.
  • Nếu quý khách đã bật tùy chọn “VNPT Block Storage CSI”, hệ thống sẽ cài sẵn plugin này vào cluster của quý khách.

2. Triển khai Workload

Đối với VPC tùy biến

Đối với VPC tùy biến, VNPT Block Storage CSI hỗ trợ tự động khởi tạo và cấp phát volume trong phạm vi quota Block Storage mà khách hàng đã mua trước đó. Các bước tự tạo volume như sau:

Bước 1: Tạo StorageClass: 

StorageClass (viết tắt là SC) là template cấu hình khách hàng khai báo để khởi tạo volume, việc tạo StorageClass là không bắt buộc do khi cài VNPT Block Storage CSI đã có sẵn StorageClass tương ứng với loại volume SSD và được cấu hình để sử dụng mặc định.

apiVersionstorage.k8s.io/v1

kindStorageClass

metadata:

  namemy-storage-class                              # [1] The StorageClass name, CAN be changed

provisionerbs.csi.vnptplatform.vn                   # The VNPT CSI driver name

parameters:

  typessd                                           # The volume tier name

  csi.storage.k8s.io/fstypexfs

allowVolumeExpansiontrue                            # MUST set this value to turn on volume expansion feature

parameter.type: ssd

  • Đây là cấu hình xác định loại volume tương ứng trên giao diện VNPT Cloud, dùng để VNPT Kubernetes (K8s) tạo và cấp phát volume cho dịch vụ.
  • Nếu không truyền tham số này, hệ thống sẽ tự động sử dụng giá trị mặc định là ssd.
  • Quý khách lưu ý khi mua quotas loại Volume cho VPC và truyền parameter.type tương ứng thì hệ thống sẽ thực hiện cấp phát volume cho dịch vụ.
Screenshot 2025-12-31 144133.png
Chọn loại Volume khi tạo mới Volume

Bước 2:  Tạo PersistentVolumeClaim:

PersistentVolumeClaim (PVC) là yêu cầu do người dùng khai báo để đề nghị cấp phát một ổ đĩa lưu trữ với dung lượng xác định. Khi tạo PVC, K8s sẽ dựa trên StorageClass để tạo mới hoặc lựa chọn ổ đĩa phù hợp và gán cho workload sử dụng.

  • Tạo file persistent-volume-claim.yaml với nội dung sau:

apiVersionv1

kindPersistentVolumeClaim

metadata:

  namemy-pvc                           #[1] The PVC name

spec:

  accessModes:

    - ReadWriteOnce

  resources:

    requests:

      storage20Gi                                

  storageClassNamemy-storage-class

  • Chạy câu lệnh sau đây để triển khai tạo StorageClass:
kubectl apply -f persistent-volume-claim.yaml

Bước 3: Tạo pod sử dụng PVC

  • Tạo file podnginx-pvc.yaml với nội dung sau:

versionv1

kindPod

metadata:

  namenginx

spec:                                      

  containers:

    - imagenginx

      imagePullPolicyIfNotPresent

      namenginx

      ports:

        - containerPort80

          protocolTCP

      volumeMounts:

        - mountPath/var/lib/www/html

  • 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 gắn vào node đang chạy Pod sử dụng PVC. Ví dụ:

  • Kiểm tra Persistent olume, 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

Đối với trường hợp sử dụng VPC thường 

Đối với vpc thường (hay vpc mặc định), khách hàng cần triển khai, khởi tạo Volume và thanh toán thủ công. 

  • Ban đầu, quý khách cần tự tạo Volume và thanh toán thủ công trên console VNPT Cloud Portal. Sau khi tạo thành công, quý khách lấy Volume ID và cấu hình vào K8s để K8s sử dụng và quản lý Volume. Trong các phiên bản add-ons sắp tới, K8s sẽ hỗ trợ  tự động tạo Volume khi có yêu cầu từ workload, chi phí được trừ trực tiếp từ ví ảo của quý khách trên VNPT Cloud.
  • Lưu ý: volume được tạo thủ công cần quý khách thực hiện tăng dung lượng và xóa thủ công, K8s chỉ thực hiện gán. gỡ Volume cho dịch vụ.

Hướng dẫn sử dụng Persistent volume trên VPC thường:

Bước 1: Khởi tạo Volume trên Console VNPT Cloud Portal

 Khởi tạo volume ở site volume trên Console VNPT Cloud Portal

Bước 2: Tạo Persistent Volume ứng với Volume vừa tạo:

apiVersionv1

kindPersistentVolume

metadata:

  namenginx-pv      #[1] PV name, can change

spec:

  capacity:

    storage2Gi

  accessModes:

    - ReadWriteOnce

  persistentVolumeReclaimPolicyRetain

  storageClassName""

  csi:

    driverbs.csi.vnptplatform.vn

    volumeHandleff78c129-ba1a-43ee-9097-43f9f02c36d9        #[2] volume ID

  • Volume ID được lấy trong màn hình chi tiết Volume:

Đường dẫn: 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 Persistent Volume:
kubectl apply -f podnginx-pv.yaml

Bước 3: Tạo Persistent Volume Claim ứng với Persistent Volume:

apiVersionv1

kindPersistentVolumeClaim

metadata:

  namenginx-pvc      #[1] PVC name

spec:

  accessModes:

    - ReadWriteOnce

  resources:

    requests:

      storage2Gi

  volumeNamenginx-pv       #The same [1] in pv template

  storageClassName""

  • Chạy câu lệnh sau đây để tạo Persistent Volume Claim:
kubectl apply -f podnginx-pvc.yaml

Bước 4: Tạo Pod sử dụng Persistent Volume Claim:

  • Tạo file podnginx.yaml với nội dung sau:

piVersionv1

kindPod

metadata:

  namenginx

spec:                                      

  containers:

    - imagenginx

      imagePullPolicyIfNotPresent

      namenginx

      ports:

        - containerPort80

          protocolTCP

      volumeMounts:

        - mountPath/var/lib/www/html

          namemy-volume-name                    

  volumes:

    - namemy-volume-name                        

      persistentVolumeClaim:

        claimNamenginx-pvc             # The same [1] in pvc template

        readOnlyfalse

  • Chạy câu lệnh sau đây để triển khai tạo pod
kubectl apply -f podnginx.yaml