Longhorn(v1.0) with Rancher
はじめに
今回は Rancher で Longhorn(v1.0) です。
以前の記事でも取り上げたのですが、今回は正式リリース版で試そうと思います。
※以前の記事(v0.8):Longhorn with Rancher
構成
VM
CentOS:7.6
docker-ce:18.09
kubernetes:1.18
Rancher:2.4.6
Rancher & k8s
Rancher & k8s controller/etcd x1
k8s worker x3
Longhorn:1.0.2
※worker にはストレージとして、/(8G) の他に docker(50G)、longhorn(50G) をアタッチ
前準備
まずは必要なパッケージをインストールします。
$ yum install iscsi-initiator-utils -y
ディスク、マウントの構成は以下の通りです。
※前の記事からの変更点として Longhorn のデフォルトディレクトリに変更があったので、
マウントポイントのパスを「/var/lib/rancher/longhorn」から「/var/lib/longhorn」に変更しています。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 8G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 7G 0 part
├─centos-root 253:0 0 6.2G 0 lvm /
└─centos-swap 253:1 0 820M 0 lvm [SWAP]
sdb 8:16 0 50G 0 disk
└─sdb1 8:17 0 50G 0 part
└─var-docker 253:2 0 50G 0 lvm /var/lib/docker
sdc 8:32 0 50G 0 disk
└─sdc1 8:33 0 50G 0 part
└─longhorn-data 253:3 0 50G 0 lvm /var/lib/longhorn
Deploy
Rancher の library catalog に含まれているので、「apps」⇒「起動」から Deploy します。
Longhorn を選択すると以下の画面が表示されます。
テンプレートバージョンは「1.0.2」です。
前の記事では「Kubelet Root Directory」を設定しないと起動しなかったのですが、今回は指定せず起動しました。
Dashboard(管理画面) のアクセス方法を「NodePort」で指定します。
「起動」をクリックするとデプロイが始まります。
テスト
テスト用に PV / PVC を作って Pod にマウントさせてみましょう。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: tmp
namespace: default
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: longhorn
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mnt
namespace: default
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
storageClassName: longhorn
$ kubectl apply -f pvc.yaml
persistentvolumeclaim/tmp created
persistentvolumeclaim/mnt created
$ kubectl get pvc,pv
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
persistentvolumeclaim/mnt Bound pvc-xxxxx 3Gi RWO longhorn 20s
persistentvolumeclaim/tmp Bound pvc-yyyyy 1Gi RWO longhorn 20s
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
persistentvolume/pvc-xxxxx 3Gi RWO Delete Bound default/mnt longhorn 13s
persistentvolume/pvc-yyyyy 1Gi RWO Delete Bound default/tmp longhorn 13s
pv/pvc が作成できたので、Pod にマウントさせてみましょう。
apiVersion: v1
kind: Pod
metadata:
name: alpine
namespace: default
spec:
containers:
- image: alpine:edge
name: alpine
volumeMounts:
- mountPath: /mnt
name: mnt
- mountPath: /tmp
name: tmp
tty: true
volumes:
- name: mnt
persistentVolumeClaim:
claimName: mnt
- name: tmp
persistentVolumeClaim:
claimName: tmp
$ kubectl apply -f pod.yaml
pod/alpine created
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
alpine 1/1 Running 0 33s
$ kubectl exec alpine -- df -hT /mnt /tmp
Filesystem Type Size Used Available Use% Mounted on
/dev/longhorn/pvc-xxxxx ext4 975.9M 2.5M 957.4M 0% /tmp
/dev/longhorn/pvc-yyyyy ext4 2.9G 9.0M 2.9G 0% /mnt
無事に pv/pvc が作成され、pod にマウントできました。
おわりに
正式版になりましたが、相変わらずシンプルで使いやすいです。
PV/PVC を簡単に用意できるのは魅力的だと思います。
今回は Rancher の管理画面からデプロイしましたが、helm 版もあるので helm を使っている方は下記でお試しできます。
https://longhorn.io/docs/1.0.2/deploy/install/install-with-helm/
Author And Source
この問題について(Longhorn(v1.0) with Rancher), 我々は、より多くの情報をここで見つけました https://qiita.com/t_ume/items/a6bbb920238ec8b3d47f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .