はじめに
longhorn/longhornのREADME.mdのインストール手順と公式ドキュメント (出典 9) に基づく。執筆時点の最新リリースはv1.12.0。コマンドは稼働中の Kubernetes クラスタと、それに向けて設定済みのkubectlを想定する。
前提
manager の README.md の requirements 節より:
- mount propagation が有効な Kubernetes クラスタ。
- 各ホストに
iscsiadm/open-iscsiと NFS クライアント (nfs-common/nfs-utils/nfs-client) がインストール済みであること。 - データ格納用に
file extents機能をサポートするファイルシステム (ext4 または XFS)。
インストール前に公式の環境チェックを走らせる:
curl -sSfL https://raw.githubusercontent.com/longhorn/longhorn/master/scripts/environment_check.sh | bashインストール
同梱のデプロイマニフェストを適用する。manager、instance manager、CSI driver、UI を longhorn-system namespace に入れる。
kubectl create -f https://raw.githubusercontent.com/longhorn/longhorn/master/deploy/longhorn.yaml最初の動く構成
control plane が立ち上がるのを待つ。全コンポーネントは
longhorn-systemで動く。bashkubectl -n longhorn-system get pods --watchデフォルトの
StorageClassが作られたか確認する。マニフェストはlonghornを登録する。bashkubectl get storageclass longhornlonghornクラスを使うPersistentVolumeClaimでボリュームを要求する。yamlapiVersion: v1 kind: PersistentVolumeClaim metadata: name: longhorn-demo spec: accessModes: - ReadWriteOnce storageClassName: longhorn resources: requests: storage: 1Gi適用して bind を確認する。
bashkubectl apply -f longhorn-demo.yaml kubectl get pvc longhorn-demo
動作確認
claim が Bound に達し、Longhorn がレプリカをスケジュール済みの健全な Volume CR を報告すればよい。
kubectl get pvc longhorn-demo
kubectl -n longhorn-system get volumes.longhorn.io健全なボリュームは (pod がマウントすると) State: attached、利用前なら detached かつ Robustness: healthy を示す。longhorn-system の Longhorn UI サービスを開けば、ボリュームとそのエンジン、レプリカも確認できる。
次に読むもの
Longhorn が別途ドキュメント化している本番運用は公式ドキュメント (出典 9) を参照: 専用ディスクとノード構成、レプリカ数と data-locality のチューニング (出典 12)、S3 または NFS へのバックアップ、ディザスタリカバリ用ボリューム、v2 (SPDK) data engine。