Skip to content

Commit a3a9596

Browse files
authored
#499 멀티 노드 환경을 위한 Longhorn 기반 분산 스토리지 구축 (#500)
1 parent 43dbb6b commit a3a9596

1 file changed

Lines changed: 90 additions & 0 deletions

File tree

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# Longhorn을 이용한 분산 블록 스토리지 구축
2+
3+
이 문서는 K3s 클러스터에 고가용성 분산 블록 스토리지인 Longhorn을 설치하는 방법을 안내합니다.
4+
Longhorn을 통해 각 노드의 로컬 디스크를 하나의 스토리지 풀로 통합하여 Persistent Volume(PV)을 동적으로 프로비저닝할 수 있습니다.
5+
6+
- 설치 공식 문서: https://longhorn.io/docs/1.10.1/deploy/install/install-with-kubectl/
7+
8+
### 1. 노드 환경 사전 설정 (모든 노드 필수)
9+
10+
Longhorn이 정상적으로 작동하기 위해서는 **클러스터 내의 모든 노드(Control Plane & Worker)**에 iSCSI, NFS 관련 패키지와 커널 모듈이 설치되어 있어야 합니다.
11+
12+
#### 1-1. 필수 패키지 설치
13+
14+
스토리지 연결 및 암호화 볼륨 지원을 위한 패키지를 설치하고 서비스를 활성화합니다.
15+
16+
```sh
17+
# 패키지 목록 업데이트
18+
sudo apt-get update
19+
20+
# 필수 패키지 설치 (iSCSI, NFS, 암호화 도구, Multipath 도구)
21+
sudo apt-get install -y open-iscsi nfs-common cryptsetup multipath-tools
22+
23+
# iSCSI 및 Multipath 데몬 활성화
24+
sudo systemctl enable --now iscsid
25+
sudo systemctl enable --now multipathd
26+
```
27+
28+
#### 1-2. 커널 모듈 로드
29+
30+
Longhorn이 사용하는 필수 커널 모듈을 로드합니다.
31+
32+
```sh
33+
# 커널 모듈 로드
34+
35+
sudo modprobe iscsi_tcp
36+
sudo modprobe nfs
37+
sudo modprobe dm_crypt
38+
39+
```
40+
41+
> 참고: 재부팅 후에도 모듈이 유지되도록 /etc/modules 파일에 nfs, dm_crypt 등을 추가하는 것을 권장합니다.
42+
43+
### 2. 환경 점검 (선택 사항)
44+
45+
설치 전에 현재 노드 환경이 Longhorn을 구동하기에 적합한지 검사 도구(longhornctl)를 통해 확인합니다.
46+
47+
#### 2-1. Longhorn CLI 설치
48+
49+
```sh
50+
# longhornctl 바이너리 다운로드 (v1.10.1)
51+
sudo curl -L https://github.com/longhorn/cli/releases/download/v1.10.1/longhornctl-linux-amd64 -o longhornctl
52+
53+
# 실행 권한 부여 및 시스템 경로로 이동
54+
sudo chmod +x longhornctl
55+
sudo mv ./longhornctl /usr/local/bin/longhornctl
56+
```
57+
58+
#### 2-2. 사전 조건 검사
59+
60+
아래 명령어를 실행하여 모든 항목이 Installed 또는 Loaded 상태인지 확인합니다.
61+
62+
```sh
63+
longhornctl check preflight
64+
```
65+
66+
### 3. Longhorn 배포
67+
68+
모든 노드의 준비가 완료되면, **첫 번째 컨트롤 플레인 노드(Master)**에서 Longhorn을 배포합니다.
69+
70+
#### 3-1. 매니페스트 적용
71+
72+
```sh
73+
# Longhorn v1.10.1 배포
74+
kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.10.1/deploy/longhorn.yaml
75+
```
76+
77+
#### 3-2. 설치 확인
78+
79+
모든 파드가 정상적으로 실행될 때까지 기다립니다.
80+
81+
```sh
82+
kubectl get pods -n longhorn-system -w
83+
```
84+
85+
### 4. (참고) 2노드 클러스터 설정
86+
87+
기본적으로 Longhorn은 데이터 안정성을 위해 3개의 복제본(Replica)을 생성합니다.
88+
물리 노드가 3대 미만인 경우(예: 2대), 복제본을 배치할 공간이 부족하여 볼륨 상태가 Degraded로 표시될 수 있습니다.
89+
90+
이 경우 Longhorn UI(Settings > General > Default Replica Count)에서 기본 복제본 수를 2로 변경해야 합니다.

0 commit comments

Comments
 (0)