Csi-external-snapshotter#

Csi-external-snapshotter - компонент управляет созданием и восстановлением снимков томов. Он обеспечивает создание и восстановление снимков томов CSI. Компонент предоставляет API для создания и восстановления снимков томов и запускается в DropApp Plus в виде pod.

Последовательность выполнения#

Csi-external-snapshotter должен запускаться один раз для каждого драйвера CSI. Развертывание одного контроллера Csi-external-snapshotter работает для всех драйверов CSI в кластере.

Параметры командной строки Csi-external-snapshotter аналогичны приведенным в таблицах разделов Сsi-external-attacher и Сsi-external-provisioner.

  1. Создайте новую учетную запись службы и предоставьте ей права для запуска Сsi-external-snapshotter.

  2. Разверните Сsi-external-snapshotter:

    oc create deploy/deployment.yaml
    

    Содержание манифеста будет следующим:

    kind: StatefulSet
    apiVersion: apps/v1
    metadata:
      name: csi-snapshotter
    spec:
      serviceName: "csi-snapshotter"
      replicas: 1
      selector:
        matchLabels:
          app: csi-snapshotter
      template:
        metadata:
          labels:
            app: csi-snapshotter
        spec:
          serviceAccount: csi-snapshotter
          containers:
            - name: csi-provisioner
              image: dappregistry/csi-provisioner:v3.3.0
              args:
                - "--v=5"
                - "--csi-address=$(ADDRESS)"
              env:
                - name: ADDRESS
                  value: /csi/csi.sock
              imagePullPolicy: IfNotPresent
              volumeMounts:
                - name: socket-dir
                  mountPath: /csi
            - name: csi-snapshotter
              image: dappregistry/csi-snapshotter:v3.0.3
              args:
                - "--v=5"
                - "--csi-address=$(ADDRESS)"
                - "--leader-election=false"
              env:
                - name: ADDRESS
                  value: /csi/csi.sock
              imagePullPolicy: IfNotPresent
              volumeMounts:
                - name: socket-dir
                  mountPath: /csi
            - name: hostpath
              image: k8s.gcr.io/sig-storage/hostpathplugin:v1.4.0
              args:
                - "--drivername=hostpath.csi.k8s.io"
                - "--v=5"
                - "--endpoint=$(CSI_ENDPOINT)"
                - "--nodeid=$(KUBE_NODE_NAME)"
              env:
                - name: CSI_ENDPOINT
                  value: unix:///csi/csi.sock
                - name: KUBE_NODE_NAME
                  valueFrom:
                    fieldRef:
                      apiVersion: v1
                      fieldPath: spec.nodeName
              imagePullPolicy: IfNotPresent
              securityContext:
                privileged: true
              volumeMounts:
                - name: socket-dir
                  mountPath: /csi
          volumes:
            - name: socket-dir
              emptyDir:
    

    Вышеприведенная команда создает Deployments в DropApp Plus. Deployments - это объекты DropApp Plus, которые представляют собой развертывания приложений на нескольких узлах.

Результат#

Csi-external-snapshotter настроен и готов к использованию.