Интерфейс для систем хранения данных (Container Storage Interface)

Container Storage Interface (CSI) — это стандартизированный интерфейс, который позволяет интегрировать различные системы хранения данных с Kubernetes. Это упрощает управление хранением данных для контейнеризированных приложений, позволяя динамически выделять диски и управлять ими через API.

Подключение Container Storage Interface

Подключение Container Storage Interface возможно, только если статус заказа В порядке и статус кластера Включен.

Чтобы подключить Container Storage Interface:

  1. Выберите проект, в котором нужно подключить Container Storage Interface.
  2. Подключите Cinder CSI из Marketplace.
  3. Проверьте, что Container Storage Interface подключен.

Проверка подключения Container Storage Interface

Чтобы проверить подключение Container Storage Interface, введите в командной строке:

kubectl get pods -n kube-system

При успешном подключении Container Storage Interface вы увидите список подов в активном состоянии (Running):

Доступные типы дисков

Чтобы проверить доступные типы дисков, введите команду:

kubectl get sc

В результате получите список с доступными типами дисков:

Типы дисков отличаются производительностью и количеством IOPS:

Тип дискаIOPS ReadIOPS Write
t1cloud-light500300
t1cloud-basic30001000
t1cloud-average100003000
t1cloud-high150005000

IOPS — операции чтения и записи. Чем больше проводится операций чтения, тем меньше операций записи, и наоборот. При выполнении операций расходуется один и тот же дисковый ресурс.

Пример использования Container Storage Interface

  1. Создайте запрос на предоставление хранилища данных (PVC).
  2. Cоздайте под с приложением и свяжите его с хранилищем данных.
  3. Проверьте, что манифесты успешно применились.

Создание запроса PVC

Чтобы создать запрос на предоставление хранилища данных, примените манифест:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: test-pvc
  namespace: default
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
  storageClassName: t1cloud-average
  volumeMode: Filesystem

Создание пода

Чтобы создать под с приложением и связать его с хранилищем данных, примените манифест:

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  namespace: default
spec:
  volumes:
    - name: csi-data-cinderplugin
      persistentVolumeClaim:
        claimName: test-pvc
  containers:
    - name: nginx
      image: nginx
      ports:
        - containerPort: 80
          protocol: TCP
      resources: {}
      volumeMounts:
        - name: csi-data-cinderplugin
          mountPath: /var/lib/www/html

Проверка манифестов

Чтобы проверить создание запроса PVC, введите команду: 

kubectl get pvc

При успешном создании запроса PVC получите ответ:

Чтобы проверить создание хранилища данных, введите команду:

kubectl get pv

При успешном создании хранилища получите ответ:

Чтобы проверить создание пода с приложением, введите команду:

kubectl get pod

При успешном создании пода получите ответ: