Giải mã plug-in CSI cho PowerFlex (ổ đĩa liên tục) với Red Hat OpenShift

Giao diện lưu trữ container (CSI) là một tiêu chuẩn để hiển thị lưu trữ tệp và khối cho khối lượng công việc được chứa trong container trên Kubernetes, OpenShift, v.v. CSI giúp các nhà cung cấp lưu trữ bên thứ ba (ví dụ: PowerFlex) viết các plugin cho OpenShift để sử dụng lưu trữ từ các chương trình phụ trợ dưới dạng lưu trữ liên tục.

Kiến trúc CSI

Trình điều khiển CSI cho Dell EMC VxFlex OS có thể được cài đặt bằng Dell EMC Storage CSI Operator. Đây là một trình điều khiển cộng đồng và có thể được triển khai bằng OperatorHub.io .

Các thành phần của nút chính không giao tiếp trực tiếp với trình điều khiển CSI. Nó chỉ tương tác với máy chủ API trên các nút chính. Nó PHẢI theo dõi API Kubernetes và kích hoạt các hoạt động CSI phù hợp với API đó. Kubelet phát hiện trình điều khiển CSI bằng cơ chế đăng ký plug-in kubelet . Nó trực tiếp phát lệnh gọi đến trình điều khiển CSI.

Các thành phần CSI

External Provisioner – External provisioner CSI là một container sidecar theo dõi máy chủ API k8s để tìm các đối tượng PersistentVolumeClaim . Nó gọi CreateVolume đối với điểm cuối CSI được chỉ định để cung cấp một ổ đĩa.

Bộ đính kèm bên ngoài –  Bộ đính kèm bên ngoài CSI là một bộ chứa sidecar theo dõi máy chủ API để tìm các đối tượng VolumeAttachment và kích hoạt các hoạt động khối lượng của bộ điều khiển [Xuất bản|Bỏ xuất bản] đối với điểm cuối CSI.

Đăng ký lái xe

  • Node-driver-registrar –  Trình đăng ký trình điều khiển nút CSI là một trình chứa sidecar lấy thông tin trình điều khiển từ điểm cuối CSI và đăng ký thông tin đó với kubelet trên nút đó.
  • Cluster-driver-registrar  –  CSI cluster driver registrar là một container sidecar đăng ký trình điều khiển CSI với cụm k8s bằng cách tạo đối tượng CSIDriver .

Plug-in Bộ điều khiển CSI –  Thành phần bộ điều khiển có thể được triển khai dưới dạng Deployment hoặc StatefulSet trên bất kỳ nút nào trong cụm. Nó bao gồm trình điều khiển CSI triển khai dịch vụ Bộ điều khiển CSI .

CSI Identity –  Cho phép các thành phần k8s  và vùng chứa CSI xác định trình điều khiển.

CSI Node Plugin – Thành phần node phải được triển khai trên mọi node trong cụm thông qua DaemonSet . Nó bao gồm trình điều khiển CSI triển khai dịch vụ CSI Node và trình điều khiển node registrar sidecar container.

CSI và Lưu trữ liên tục

Lưu trữ trong OpenShift Container Platform 4.x được quản lý từ các nút worker. API CSI sử dụng hai tài nguyên mới: đối tượng PersistentVolume (PV) và PersistentVolumeClaim (PVC) .

Persistent Volume – Kubernetes cung cấp các thiết bị lưu trữ vật lý cho cụm dưới dạng các đối tượng gọi là Persistent Volume. 

Phiên bản api: v1

loại: PersistentVolume

đặc điểm kỹ thuật:

     Chế độ truy cập:

  – ĐọcGhiMột Lần

  dung tích:

    lưu trữ: 104Gi

  yêu cầu tham chiếu:

       Phiên bản api: v1

    loại: PersistentVolumeClaim

    tên: test-vol

       không gian tên: powerflex

  .

  .  

  csi:

    trình điều khiển: csi-vxflexos.dellemc.com

    Kiểu fs: ext4

 

     persistentVolumeReclaimPolicy: Xóa

     storageClassName: powerflex-vxflexos

     volumeMode: Hệ thống tập tin

trạng thái:

  giai đoạn: Liên kết

Persistent Volume Claim – Đối tượng này cho phép các pod sử dụng bộ nhớ từ Persistent Volume.

loại: PersistentVolumeClaim

Phiên bản api: v1

metadata:

  tên: test-vol

  không gian tên: powerflex

đặc điểm kỹ thuật:

  Chế độ truy cập:

  – ĐọcGhiMột Lần

  volumeMode: Hệ thống tập tin

  tài nguyên:

    yêu cầu:

      Lưu trữ: 100Gi

  storageClassName: powerflex-vxflexos

Lớp lưu trữ – Đối tượng này giúp bạn tạo cặp PV/PVC cho pod. Nó lưu trữ thông tin về việc tạo một khối lượng liên tục.

 

Phiên bản api: storage.dell.com/v1

loại: CSIVXFlexOS

đặc điểm kỹ thuật:

   Lớp lưu trữ:

      – tên: powerflexos

          – khóa: csi-vxflexos.dellemc.com/X_CSI_VXFLEXOS_SYSTEMNAME

            giá trị:

            – csi-vxflexos.dellemc.com

         .

         .

         .

      – tên: powerflex-xfs

        thông số:

          lưu trữ pool: pool2

          Kiểu Fs: xfs

        cho phépTopologies:

        – matchLabelExpressions:

          – khóa: csi-vxflexos.dellemc.com/X_CSI_VXFLEXOS_SYSTEMNAME

            giá trị:

            – csi-vxflexos.dellemc.com

Khả năng của trình điều khiển CSI

Cung cấp tĩnh – Tính năng này cho phép bạn tự tay cung cấp bộ lưu trữ PowerFlex hiện có cho cụm.   

Cung cấp động – Khối lượng lưu trữ có thể được tạo theo yêu cầu. Tài nguyên lưu trữ được cung cấp động bằng cách sử dụng trình cung cấp được chỉ định bởi đối tượng StorageClass .

Giữ lại việc thu hồi – Sau khi PersistentVolumeClaim bị xóa, PersistentVolume tương ứng sẽ không bị xóa mà được chuyển sang trạng thái Đã phát hành và dữ liệu của nó có thể được khôi phục theo cách thủ công.

Xóa và thu hồi – Đây là chính sách thu hồi mặc định và không giống như chính sách Giữ lại, ổ đĩa cố định sẽ bị xóa.

Chế độ truy cập – ReadWriteOnce — ổ đĩa có thể được gắn kết ở chế độ đọc/ghi bởi một nút duy nhất.

FS được hỗ trợ – ext4/xfs .

Khối lượng khối thô : Khi sử dụng tùy chọn khối thô, PV có thể được đính kèm trực tiếp vào pod hoặc ứng dụng mà không cần định dạng bằng hệ thống tệp ext4 hoặc xfs .