# (オプション) KubernetesクラスターにLonghornストレージソリューションをセットアップ

プラットフォームで推奨される共有ストレージプロバイダーが利用できない場合は、Kubernetes向けの分散ブロックストレージシステムであるLonghornをクラスターにインストールしてください。

Longhornは、Dynamic Engineでサポートされている永続ストレージのオプションです。

## 手順

1. Longhornの前提条件を確認し、インストールします。

   [このLonghornのドキュメンテーションの仕様](https://longhorn.io/docs/1.6.1/deploy/install/#installation-requirements)に従ってクラスターをチェックするか、Longhornが提供している[環境チェックスクリプト](https://longhorn.io/docs/1.6.1/deploy/install/#using-the-environment-check-script)を使い、不足している項目を確認してインストールします。

   成功した環境チェックは次のようになります:
   ```
   [INFO]  Required dependencies 'kubectl jq mktemp sort printf' are installed.
   [INFO]  All nodes have unique hostnames.
   [INFO]  Waiting for longhorn-environment-check pods to become ready (1/2)...
   [INFO]  All longhorn-environment-check pods are ready (2/2).
   [INFO]  MountPropagation is enabled
   [INFO]  Checking kernel release...
   [INFO]  Checking iscsid...
   [INFO]  Checking multipathd...
   [INFO]  Checking packages...
   [ERROR] cryptsetup is not found in ip-10-0-1-51.ec2.internal.
   [ERROR] cryptsetup is not found in ip-10-0-2-58.ec2.internal.
   [INFO]  Checking nfs client...
   [INFO]  Cleaning up longhorn-environment-check pods...
   [INFO]  Cleanup completed.
   ```

   cryptsetup is not foundというエラーは、Dynamic Engineでは必要ないため、無視して構いません。
2. [Helmと共に](https://longhorn.io/docs/1.6.1/deploy/install/install-with-helm)Longhornをインストールします。
   * Helmと共にインストールする場合は、カスタムvaluesファイル(longhorn-values.yamlなど)を作成し、このファイルに次の行を追加します:
     ```
     persistence:
       defaultClassReplicaCount: 2 # depends on the number of available nodes in the cluster
       defaultDataLocality: best-effort
       defaultFsType: xfs
       defaultClass: 'true'
     ```

     次に、Longhornのドキュメンテーションに従ってLonghornをインストールするステップで、実行するコマンドに-f longhorn-values.yamlを追加します。以上で、コマンド全体は次のようになります:
     ```
     helm install longhorn longhorn/longhorn --namespace longhorn-system --create-namespace --version 1.6.1 -f longhorn-values.yaml
     ```

     このコマンドによって、Longhornインストールが使用するHelm valuesファイルにpersistenceセクションが追加されます。この操作で恒久的ストレージクラスが正しく設定されます。

## タスクの結果

Longhornの公式ドキュメントに従い、インストールが正常に完了したことを確認します。

## 次のタスク

Longhornをアンインストールする必要がある場合は、[Longhornのこのドキュメンテーション](https://longhorn.io/docs/1.6.1/deploy/uninstall/)に従ってください。