Перейти к содержанию

CSI Yandex

Описание

Модуль обеспечивает взаимодействие между кластером и дисками в облаке Yandex.

По окончанию установки. Вы получите дополнительные StorageClass, каждый из которых соответствует своему типу диска [Подробнее о дисках в Yandex cloud] (https://yandex.cloud/ru/docs/compute/concepts/disk#disks-types):

  • yc-network-hdd (Тип: network-hdd)
  • yc-network-ssd (Тип: network-ssd)
  • yc-network-ssd-nonreplicated (Тип: network-ssd-nonreplicated)
  • network-ssd-io-m3 (Тип: network-ssd-io-m3)

Используйте объект PersistentVolumeClaim с указанием StorageClass

Подключение модуля

Внимание!

В случае если yandex-csi является единственным модулем хранилища данных, измените значение, указав имя одного из StorageClass:

defaultStorageclass: ""

Описание Yaml

apiVersion: addon.bootsman.tech/v1alpha1
kind: Config
metadata:
  name: CLUSTER_NAME-yandex-csi
  namespace: CLUSTER_NAMESPACE
spec:
  enabled: true
  values:
    defaultStorageclass: '' (3)
    folderID: '' (2)
    image:
      repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts/yandex-csi-driver
      tag: v0.14.0-bootsman-v0.14.1
    serviceAccountJSON: |
      {} (1)
    sidecars:
      attacher:
        image:
          repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts/csi-attacher
          tag: v3.4.0
      livenessprobe:
        image:
          repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts/livenessprobe
          tag: v2.5.0
      nodeDriverRegistrar:
        image:
          repository: >-
            harbor.bootsman.host/bootsman-nimbus/common-artifacts/csi-node-driver-registrar
          tag: v1.3.0
      provisioner:
        image:
          repository: >-
            harbor.bootsman.host/bootsman-nimbus/common-artifacts/csi-provisioner
          tag: v3.1.0
      resizer:
        image:
          repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts/csi-resizer
          tag: v1.5.0
      snapshotter:
        image:
          repository: >-
            harbor.bootsman.host/bootsman-nimbus/common-artifacts/csi-snapshotter
          tag: v5.0.1
  1. Ключ доступа в Yandex Cloud в формате json
  2. Yandex Folder ID
  3. Имя StorageClass, который будет установлен как по умолчанию.
  4. yc-network-hdd
  5. yc-network-ssd
  6. yc-network-ssd-nonreplicated
  7. network-ssd-io-m3

Настройка в UI

Image Image

Все Values

Продвинутые настройки

Ниже представлены тонкие настройки модуля.

Используйте их для расширения конфигурации модуля, если потребуется.

Yandex CSI Values
  values:
    serviceAccountJSON: |
      {}
    folderID: ""

    defaultStorageclass: ""

    sidecars:
      nodeDriverRegistrar:
        image:
          pullPolicy: IfNotPresent
          repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts/csi-node-driver-registrar
          tag: v1.3.0

        extraArgs:
          v: 2
        resources: {}
        securityContext: {}

        # terminationMessagePath: /dev/termination-log
        # terminationMessagePolicy: File

      provisioner:
        image:
          pullPolicy: IfNotPresent
          repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts/csi-provisioner
          tag: v3.1.0

        extraArgs:
          default-fstype: ext4
          feature-gates: "Topology=true"
          capacity-ownerref-level: 2
          worker-threads: 10
          v: 5
          timeout: 600s


        resources: {}
        securityContext: {}

        # terminationMessagePath: /dev/termination-log
        # terminationMessagePolicy: File


      attacher:
        image: 
          pullPolicy: IfNotPresent
          repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts/csi-attacher
          tag: v3.4.0

        extraArgs:
          v: 5
          timeout: 600s
          worker-threads: 10

        resources: {}
        securityContext: {}

        # terminationMessagePath: /dev/termination-log
        # terminationMessagePolicy: File

      resizer:
        image: 
          pullPolicy: IfNotPresent
          repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts/csi-resizer
          tag: v1.5.0

        extraArgs:
          v: 5
          timeout: 600s
          workers: 10

        resources: {}
        securityContext: {}

        # terminationMessagePath: /dev/termination-log
        # terminationMessagePolicy: File


      snapshotter:
        image: 
          pullPolicy: IfNotPresent
          repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts/csi-snapshotter
          tag: v5.0.1

        extraArgs:
          v: 5
          timeout: 600s
          worker-threads: 10

        resources: {}
        securityContext: {}

        # terminationMessagePath: /dev/termination-log
        # terminationMessagePolicy: File

      livenessprobe:
        image: 
          pullPolicy: IfNotPresent
          repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts/livenessprobe
          tag: v2.5.0

        extraArgs: {}
        resources: {}
        securityContext: {}

        # terminationMessagePath: /dev/termination-log
        # terminationMessagePolicy: File

    image: 
      pullPolicy: IfNotPresent
      repository: harbor.bootsman.host/bootsman-nimbus/common-artifacts/yandex-csi-driver
      # Overrides the image tag whose default is v{{ .Chart.AppVersion }}
      tag: v0.14.0-bootsman-v0.14.1

    defaults:
      resources:
        limits:
          cpu: 1000m
          memory: 1Gi
        requests:
          ephemeral-storage: 50Mi
          cpu: 100m
          memory: 128Mi


      securityContext:
        allowPrivilegeEscalation: false
        readOnlyRootFilesystem: true

      terminationMessagePath: /dev/termination-log
      terminationMessagePolicy: File

      csiPath: /csi/
      csiSockName: csi.sock
      csiPluginName: yandex.csi.bootsman.tech
      kubeletPath: /var/lib/kubelet

    controller:
      ports:
        healthPort: 9809
        addressPort: 12302

      extraArgs: {}
      resources: {}

    node:
      ports:
        healthPort: 9909
        addressPort: 12402

      extraArgs:
        v: 5

      resources: {}
      securityContext:
        privileged: true
        readOnlyRootFilesystem: true

    affinity:
      nodeAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          nodeSelectorTerms:
            - matchExpressions:
                - key: node-role.kubernetes.io/controlplane
                  operator: DoesNotExist