﻿# Установка Longhorn

> [HTML Version](install-longhorn.html)

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**).

Установка состоит из трёх этапов:

1. [Загрузить Helm-чарт и конфигурационный файл](#download-helm-chart-and-config-file).

2. [Заполнить конфигурационный файл](#fill-config-file).

3. [Установить чарт Longhorn с помощью Helm в Kubernetes-кластер](#install-longhorn-chart).

## Шаг 1. Загрузить Helm-чарт и конфигурационный файл

Для установки через интернет получите конфигурационный файл \[OBJECT\], выполнив команду:

````
helm repo add elma365 https://charts.elma365.tech  
helm repo update  
helm show values elma365/longhorn > values-longhorn.yaml

## ````
Шаг 2. Заполнить конфигурационный файл

Заполните конфигурационный файл \[OBJECT\] для установки сервиса 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** через интернет в \[OBJECT\]. Во время установки будет создан \[OBJECT\], если не был создан ранее.

````
helm upgrade --install longhorn elma365/longhorn -f values-longhorn.yaml -n longhorn-system --create-namespace

## ````
Удалить чарт Longhorn с помощью Helm в Kubernetes-кластере

Чтобы разрешить удаление **Longhorn**, установите значение \[OBJECT\] для флага \[OBJECT\], выполнив команду:

````
kubectl -n longhorn-system patch -p '\{"value": "true"\}' --type=merge lhs deleting-confirmation-flag

````
Чтобы удалить чарт **Longhorn** в \[OBJECT\], выполните команду:

````
helm uninstall longhorn -n longhorn-system
````