diff --git a/README-ru.md b/README-ru.md index a18db93e..5824f4e9 100644 --- a/README-ru.md +++ b/README-ru.md @@ -22,7 +22,6 @@ Vitastor на данный момент находится в статусе п Однако следующее уже реализовано: -0.5.x (стабильная версия): - Базовая часть - надёжное кластерное блочное хранилище без единой точки отказа - Производительность ;-D - Несколько схем отказоустойчивости: репликация, XOR n+1 (1 диск чётности), коды коррекции ошибок @@ -43,19 +42,18 @@ Vitastor на данный момент находится в статусе п - NBD-прокси для монтирования образов ядром ("блочное устройство в режиме пользователя") - Утилита удаления образов/инодов (vitastor-rm) - Пакеты для Debian и CentOS - -0.6.x (master-ветка): - Статистика операций ввода/вывода и занятого места в разрезе инодов - Именование инодов через хранение их метаданных в etcd - Снапшоты и copy-on-write клоны - Сглаживание производительности случайной записи в SSD+HDD конфигурациях - Поддержка RDMA/RoCEv2 через libibverbs +- CSI-плагин для Kubernetes ## Планы развития - Более корректные скрипты разметки дисков и автоматического запуска OSD - Другие инструменты администрирования -- Плагины для OpenStack, Kubernetes, OpenNebula, Proxmox и других облачных систем +- Плагины для OpenStack, OpenNebula, Proxmox и других облачных систем - iSCSI-прокси - Более быстрое переключение при отказах - Фоновая проверка целостности без контрольных сумм (сверка реплик) @@ -511,6 +509,21 @@ vitastor-nbd map --etcd_address 10.115.0.10:2379/v3 --image testimg Для обращения по номеру инода, аналогично другим командам, можно использовать опции `--pool --inode --size ` вместо `--image testimg`. +### Kubernetes + +У Vitastor есть CSI-плагин для Kubernetes, поддерживающий RWO-тома. + +Для установки возьмите манифесты из директории [csi/deploy/](csi/deploy/), поместите +вашу конфигурацию подключения к Vitastor в [csi/deploy/001-csi-config-map.yaml](001-csi-config-map.yaml), +настройте StorageClass в [csi/deploy/009-storage-class.yaml](009-storage-class.yaml) +и примените все `NNN-*.yaml` к вашей инсталляции Kubernetes. + +``` +for i in ./???-*.yaml; do kubectl apply -f $i; done +``` + +После этого вы сможете создавать PersistentVolume. Пример смотрите в файле [csi/deploy/example-pvc.yaml](csi/deploy/example-pvc.yaml). + ## Известные проблемы - Запросы удаления объектов могут в данный момент приводить к "неполным" объектам в EC-пулах, diff --git a/README.md b/README.md index 66f0c06d..c3ab9e2a 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,6 @@ with configurable redundancy (replication or erasure codes/XOR). Vitastor is currently a pre-release, a lot of features are missing and you can still expect breaking changes in the future. However, the following is implemented: -0.5.x (stable): - Basic part: highly-available block storage with symmetric clustering and no SPOF - Performance ;-D - Multiple redundancy schemes: Replication, XOR n+1, Reed-Solomon erasure codes @@ -37,19 +36,18 @@ breaking changes in the future. However, the following is implemented: - NBD proxy for kernel mounts - Inode removal tool (vitastor-rm) - Packaging for Debian and CentOS - -0.6.x (master): - Per-inode I/O and space usage statistics - Inode metadata storage in etcd - Snapshots and copy-on-write image clones - Write throttling to smooth random write workloads in SSD+HDD configurations - RDMA/RoCEv2 support via libibverbs +- CSI plugin for Kubernetes ## Roadmap - Better OSD creation and auto-start tools - Other administrative tools -- Plugins for OpenStack, Kubernetes, OpenNebula, Proxmox and other cloud systems +- Plugins for OpenStack, OpenNebula, Proxmox and other cloud systems - iSCSI proxy - Faster failover - Scrubbing without checksums (verification of replicas) @@ -461,6 +459,21 @@ It will output the device name, like /dev/nbd0 which you can then format and mou Again, you can use `--pool --inode --size ` insteaf of `--image ` if you want. +### Kubernetes + +Vitastor has a CSI plugin for Kubernetes which supports RWO volumes. + +To deploy it, take manifests from [csi/deploy/](csi/deploy/) directory, put your +Vitastor configuration in [csi/deploy/001-csi-config-map.yaml](001-csi-config-map.yaml), +configure storage class in [csi/deploy/009-storage-class.yaml](009-storage-class.yaml) +and apply all `NNN-*.yaml` manifests to your Kubernetes installation: + +``` +for i in ./???-*.yaml; do kubectl apply -f $i; done +``` + +After that you'll be able to create PersistentVolumes. See example in [csi/deploy/example-pvc.yaml](csi/deploy/example-pvc.yaml). + ## Known Problems - Object deletion requests may currently lead to 'incomplete' objects in EC pools diff --git a/csi/deploy/storage-class.yaml b/csi/deploy/009-storage-class.yaml similarity index 94% rename from csi/deploy/storage-class.yaml rename to csi/deploy/009-storage-class.yaml index fcf46286..77749766 100644 --- a/csi/deploy/storage-class.yaml +++ b/csi/deploy/009-storage-class.yaml @@ -3,7 +3,7 @@ apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: namespace: vitastor-system - name: vitastor-csi-storage-class + name: vitastor annotations: storageclass.kubernetes.io/is-default-class: "true" provisioner: csi.vitastor.io diff --git a/csi/deploy/example-pvc.yaml b/csi/deploy/example-pvc.yaml index fc9c3171..ba00729c 100644 --- a/csi/deploy/example-pvc.yaml +++ b/csi/deploy/example-pvc.yaml @@ -4,7 +4,7 @@ kind: PersistentVolumeClaim metadata: name: test-vitastor-pvc spec: - storageClassName: vitastor-csi-storage-class + storageClassName: vitastor accessModes: - ReadWriteOnce resources: