Longhorn — это простая в использовании распределённая блочная система хранения данных. Обеспечивает высокодоступное постоянное хранилище для Kubernetes. Вы можете применять встроенные функции инкрементных снимков, резервного копирования и хранения резервных копии во вторичном хранилище, совместимом с NFS или S3. Тем самым обеспечивается безопасность данных в кластере Kubernetes.
Требования к установке
Каждый узел в кластере Kubernetes, где установлен Longhorn, должен соответствовать следующим требованиям:
- Kubernetes — не ниже v1.21, Docker — не ниже v1.13, Containerd — не ниже v1.3.7;
- установлен пакет open-iscsi и запущена служба iscsid;
- установлен клиент NFSv4, необходимый для функции резервного копирования, и ReadWriteMany (RWX);
- файловая система ext4 или XFS;
- установлены пакеты bash, curl, findmnt, grep, awk, blkid, lsblk;
- в кластере включено распространение монтирования (mount propagation).
Установка состоит из трёх этапов:
- Загрузить Helm-чарт и конфигурационный файл.
- Заполнить конфигурационный файл.
- Установить чарт Longhorn с помощью Helm в Kubernetes-кластер.
Шаг 1: Загрузить Helm-чарт и конфигурационный файл
Для установки через интернет получите конфигурационный файл values-longhorn.yaml
, выполнив команду:
helm repo add elma365 https://charts.elma365.tech
helm repo update
helm show values elma365/longhorn > values-longhorn.yaml
Шаг 2: Заполнить конфигурационный файл
Заполните конфигурационный файл values-longhorn.yaml
для установки сервиса Longhorn.
## Настройки longhorn
longhorn:
defaultSettings:
# директория для хранения данных на хосте
defaultDataPath: /longhorn
## планирование реплик на узлах с существующими исправными репликами того же тома.
replicaSoftAntiAffinity: true
## автоматическая балансировка реплик при обнаружении доступного узла
replicaAutoBalance: best-effort
ingress:
## включение ingress для Longhorn UI
enabled: false
ingressClassName: ~
## домен (FQDN), по которому будет доступен Longhorn UI
host: example.ru
## включение шифрования
tls: false
tlsSecret: elma365-onpremise-tls
csi:
## корневой каталог kubelet
kubeletRootDir: /var/lib/kubelet
Шаг 3: Установить чарт Longhorn с помощью Helm в Kubernetes-кластер
Выполните установку чарта Longhorn через интернет в namespace longhorn-system
. Во время установки будет создан namespace
, если не был создан ранее.
helm upgrade --install longhorn elma365/longhorn -f values-longhorn.yaml -n longhorn-system --create-namespace
Удалить чарт Longhorn с помощью Helm в Kubernetes-кластере
Чтобы разрешить удаление Longhorn, установите значение true
для флага deleting-confirmation-flag
, выполнив команду:
kubectl -n longhorn-system patch -p '{"value": "true"}' --type=merge lhs deleting-confirmation-flag
Чтобы удалить чарт Longhorn в namespace longhorn-system
, выполните команду:
helm uninstall longhorn -n longhorn-system