Longhorn with Rancher
10084 단어 rancher롱혼kubernetes
소개
이번에는 Rancher에서 Longhorn입니다.
소위 컨테이너용 영구 스토리지입니다.
특징으로,
자세한 이야기는 당사 I씨의 기사를.
⇒ Longhorn + WordPress on GKE
구성
Host Machine
OS: Windows 10
VirtualBox: 6.0.18
Guest Machine
CentOS: 7.6
docker-ce: 18.09
kubernetes: 1.17
Rancher: 2.4.2
Rancher & k8s
Rancher & k8s controller/etcd x1
k8s worker x3
※worker에는 스토리지로서/(8G) 외에 docker(50G), longhorn(50G)을 첨부
이전 준비
위의 서버 구성을 구축 한 후 시작합니다.
공식적으로 iscsi-initiator-utils를 설치하고 필요한 디스크를 마운트합니다.
필수 패키지 설치$ yum install iscsi-initiator-utils -y
이번에는 스토리지를 별도로 준비하고 있지만, 시도하면 불필요합니다.
필요한 디스크 크기만 확보하십시오.
※「/var/lib/rancher/longhorn」에 pv 가 작성되어 갑니다.
디스크 마운트 확인$ lsblk -o NAME,FSTYPE,MOUNTPOINT -i
NAME FSTYPE MOUNTPOINT
sda
|-sda1 xfs /boot
`-sda2 LVM2_member
|-centos-root xfs /
`-centos-swap swap ★swap は無効化済み
sdb
`-sdb1 LVM2_member
`-var-docker ext4 /var/lib/docker
sdc
`-sdc1 LVM2_member
`-longhorn-data ext4 /var/lib/rancher/longhorn
Deploy
Rancher 의 library catalog 에 포함되어 있으므로, 「apps」⇒「기동」에서 Deploy 합니다.
Longhorn을 선택하면 다음 화면이 표시됩니다.
이름, 네임스페이스(namespace)는 디폴트의 「longhorn-system」입니다.
템플릿 버전은 "0.8.0"입니다.
제 경우에는 "loghorn-driver-deployer"Pod가 CrashLoopBack에서 시작되지 않았습니다.
이 때문에, 「Kubelet Root Directory」에 이하를 지정하는 것으로 기동했습니다.Kubelet Root Directory:/var/lib/kubelet
PV 작성 대상의 경로를 「Default Data Path」로 지정합니다.Default Data Path:/var/lib/rancher/longhorn
Dashboard(관리 화면)의 서비스를 이번에는 「NodePort」로 지정하고 있습니다.
L7 LB도 있으므로 기호로 지정하십시오.
마지막으로 "시작"버튼으로 Deploy입니다.
환경에 따라 다르지만 5 분 이내에 시작한다고 생각합니다.
테스트
실제로 PV/PVC를 만들어 봅시다.
pvc.yamlapiVersion: 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
pv, pvc 만들기$ 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-xxx 3Gi RWO longhorn 9s
persistentvolumeclaim/tmp Bound pvc-yyy 1Gi RWO longhorn 10s
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
persistentvolume/pvc-xxx 3Gi RWO Delete Bound default/mnt longhorn 5s
persistentvolume/pvc-yyy 1Gi RWO Delete Bound default/tmp longhorn 5s
테스트 포드를 만들어 마운트해 봅시다.
pod.yamlapiVersion: 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
pod 작성$ kubectl apply -f pod.yaml
pod/alpine created
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
alpine 1/1 Running 0 16s
$ kubectl exec alpine -- df -hT /mnt /tmp
Filesystem Type Size Used Available Use% Mounted on
/dev/longhorn/pvc-xxx
ext4 2.9G 9.0M 2.9G 0% /mnt
/dev/longhorn/pvc-yyy
ext4 975.9M 2.5M 957.4M 0% /tmp
무사히 pv/pvc가 만들어졌으며 포드에 마운트 할 수있었습니다.
대시보드
절각이므로 Dashboard의 스크린샷을 몇 장인가.
Dashboard는 Apps에 링크되어 있습니다.
※이하의 경우 「31833/tcp」가 Dashboard에의 링크입니다.
우선은, 「dashboard」화면입니다.
그래프와 아래에는 이벤트 로그가 표시됩니다.
다음에 「Node」화면입니다.
노드별 리소스 상태를 표시합니다.
마지막으로 "Volume"화면입니다.
pv로 내보내는 볼륨의 목록이 표시됩니다.
Attach 대상 포드도 표시됩니다.
또한 각 볼륨을 선택하면 자세한 화면으로 전환됩니다.
볼륨의 Snapshot 상태를 보거나 Snapshot/Backup을 예약할 수도 있습니다.
결론
클러스터 스토리지 환경은 Rancher 카탈로그에서 배포할 수 있으므로 매우 편리하게 사용할 수 있습니다.
또, 기능도 필요 충분히 있기 때문에, 여러가지 쓰러뜨릴 수 있다고 생각합니다.
어딘가에서 다른 스토리지 환경과의 I/O 벤치마크 등도 보고 싶다고 생각합니다.
Reference
이 문제에 관하여(Longhorn with Rancher), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/t_ume/items/425f7c93e2e7cfaa7d1c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
위의 서버 구성을 구축 한 후 시작합니다.
공식적으로 iscsi-initiator-utils를 설치하고 필요한 디스크를 마운트합니다.
필수 패키지 설치
$ yum install iscsi-initiator-utils -y
이번에는 스토리지를 별도로 준비하고 있지만, 시도하면 불필요합니다.
필요한 디스크 크기만 확보하십시오.
※「/var/lib/rancher/longhorn」에 pv 가 작성되어 갑니다.
디스크 마운트 확인
$ lsblk -o NAME,FSTYPE,MOUNTPOINT -i
NAME FSTYPE MOUNTPOINT
sda
|-sda1 xfs /boot
`-sda2 LVM2_member
|-centos-root xfs /
`-centos-swap swap ★swap は無効化済み
sdb
`-sdb1 LVM2_member
`-var-docker ext4 /var/lib/docker
sdc
`-sdc1 LVM2_member
`-longhorn-data ext4 /var/lib/rancher/longhorn
Deploy
Rancher 의 library catalog 에 포함되어 있으므로, 「apps」⇒「기동」에서 Deploy 합니다.
Longhorn을 선택하면 다음 화면이 표시됩니다.
이름, 네임스페이스(namespace)는 디폴트의 「longhorn-system」입니다.
템플릿 버전은 "0.8.0"입니다.
제 경우에는 "loghorn-driver-deployer"Pod가 CrashLoopBack에서 시작되지 않았습니다.
이 때문에, 「Kubelet Root Directory」에 이하를 지정하는 것으로 기동했습니다.Kubelet Root Directory:/var/lib/kubelet
PV 작성 대상의 경로를 「Default Data Path」로 지정합니다.Default Data Path:/var/lib/rancher/longhorn
Dashboard(관리 화면)의 서비스를 이번에는 「NodePort」로 지정하고 있습니다.
L7 LB도 있으므로 기호로 지정하십시오.
마지막으로 "시작"버튼으로 Deploy입니다.
환경에 따라 다르지만 5 분 이내에 시작한다고 생각합니다.
테스트
실제로 PV/PVC를 만들어 봅시다.
pvc.yamlapiVersion: 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
pv, pvc 만들기$ 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-xxx 3Gi RWO longhorn 9s
persistentvolumeclaim/tmp Bound pvc-yyy 1Gi RWO longhorn 10s
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
persistentvolume/pvc-xxx 3Gi RWO Delete Bound default/mnt longhorn 5s
persistentvolume/pvc-yyy 1Gi RWO Delete Bound default/tmp longhorn 5s
테스트 포드를 만들어 마운트해 봅시다.
pod.yamlapiVersion: 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
pod 작성$ kubectl apply -f pod.yaml
pod/alpine created
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
alpine 1/1 Running 0 16s
$ kubectl exec alpine -- df -hT /mnt /tmp
Filesystem Type Size Used Available Use% Mounted on
/dev/longhorn/pvc-xxx
ext4 2.9G 9.0M 2.9G 0% /mnt
/dev/longhorn/pvc-yyy
ext4 975.9M 2.5M 957.4M 0% /tmp
무사히 pv/pvc가 만들어졌으며 포드에 마운트 할 수있었습니다.
대시보드
절각이므로 Dashboard의 스크린샷을 몇 장인가.
Dashboard는 Apps에 링크되어 있습니다.
※이하의 경우 「31833/tcp」가 Dashboard에의 링크입니다.
우선은, 「dashboard」화면입니다.
그래프와 아래에는 이벤트 로그가 표시됩니다.
다음에 「Node」화면입니다.
노드별 리소스 상태를 표시합니다.
마지막으로 "Volume"화면입니다.
pv로 내보내는 볼륨의 목록이 표시됩니다.
Attach 대상 포드도 표시됩니다.
또한 각 볼륨을 선택하면 자세한 화면으로 전환됩니다.
볼륨의 Snapshot 상태를 보거나 Snapshot/Backup을 예약할 수도 있습니다.
결론
클러스터 스토리지 환경은 Rancher 카탈로그에서 배포할 수 있으므로 매우 편리하게 사용할 수 있습니다.
또, 기능도 필요 충분히 있기 때문에, 여러가지 쓰러뜨릴 수 있다고 생각합니다.
어딘가에서 다른 스토리지 환경과의 I/O 벤치마크 등도 보고 싶다고 생각합니다.
Reference
이 문제에 관하여(Longhorn with Rancher), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/t_ume/items/425f7c93e2e7cfaa7d1c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
실제로 PV/PVC를 만들어 봅시다.
pvc.yaml
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
pv, pvc 만들기
$ 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-xxx 3Gi RWO longhorn 9s
persistentvolumeclaim/tmp Bound pvc-yyy 1Gi RWO longhorn 10s
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
persistentvolume/pvc-xxx 3Gi RWO Delete Bound default/mnt longhorn 5s
persistentvolume/pvc-yyy 1Gi RWO Delete Bound default/tmp longhorn 5s
테스트 포드를 만들어 마운트해 봅시다.
pod.yaml
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
pod 작성
$ kubectl apply -f pod.yaml
pod/alpine created
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
alpine 1/1 Running 0 16s
$ kubectl exec alpine -- df -hT /mnt /tmp
Filesystem Type Size Used Available Use% Mounted on
/dev/longhorn/pvc-xxx
ext4 2.9G 9.0M 2.9G 0% /mnt
/dev/longhorn/pvc-yyy
ext4 975.9M 2.5M 957.4M 0% /tmp
무사히 pv/pvc가 만들어졌으며 포드에 마운트 할 수있었습니다.
대시보드
절각이므로 Dashboard의 스크린샷을 몇 장인가.
Dashboard는 Apps에 링크되어 있습니다.
※이하의 경우 「31833/tcp」가 Dashboard에의 링크입니다.
우선은, 「dashboard」화면입니다.
그래프와 아래에는 이벤트 로그가 표시됩니다.
다음에 「Node」화면입니다.
노드별 리소스 상태를 표시합니다.
마지막으로 "Volume"화면입니다.
pv로 내보내는 볼륨의 목록이 표시됩니다.
Attach 대상 포드도 표시됩니다.
또한 각 볼륨을 선택하면 자세한 화면으로 전환됩니다.
볼륨의 Snapshot 상태를 보거나 Snapshot/Backup을 예약할 수도 있습니다.
결론
클러스터 스토리지 환경은 Rancher 카탈로그에서 배포할 수 있으므로 매우 편리하게 사용할 수 있습니다.
또, 기능도 필요 충분히 있기 때문에, 여러가지 쓰러뜨릴 수 있다고 생각합니다.
어딘가에서 다른 스토리지 환경과의 I/O 벤치마크 등도 보고 싶다고 생각합니다.
Reference
이 문제에 관하여(Longhorn with Rancher), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/t_ume/items/425f7c93e2e7cfaa7d1c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
클러스터 스토리지 환경은 Rancher 카탈로그에서 배포할 수 있으므로 매우 편리하게 사용할 수 있습니다.
또, 기능도 필요 충분히 있기 때문에, 여러가지 쓰러뜨릴 수 있다고 생각합니다.
어딘가에서 다른 스토리지 환경과의 I/O 벤치마크 등도 보고 싶다고 생각합니다.
Reference
이 문제에 관하여(Longhorn with Rancher), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/t_ume/items/425f7c93e2e7cfaa7d1c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)