Rook-Ceph 소개
- Rook이란?: 클라우드 네이티브 스토리지 오케스트 레이터로, 다양한 스토리지 솔루션을 통합합니다. Ceph와 EdgeFS를 안정적으로 지원하며, 특히 Ceph는 공유 및 확장 가능한 스토리지에 특화되어 있습니다.
- Ceph의 특징: 블록, 객체, 파일 기반 데이터를 지원하며, 단일 POD 또는 쿠버네티스 클러스터 내외의 애플리케이션에 스토리지를 제공합니다. 또한, 여러 POD에 대한 공유 파일 시스템 기반 스토리지를 가능하게 합니다.
Rook-Ceph 설치 및 구성
- 설치 과정: 온프레미스 K8s 환경에서 스토리지 클래스를 사용하는 좋은 방법입니다. Rook 기반 Ceph 스토리지의 설치 과정은 PV 생성을 위한 예시 명령어와 함께 간략하게 설명되어 있습니다.
- 노드 설정 및 디스크 추가: 작업 노드 설정, 가상 머신에 디스크 추가, Kubernetes에서 Ceph 설치 및 검증 과정이 포함됩니다. 추가적인 포드 구성 및 Ceph 클러스터 상태 확인 방법도 다룹니다.
설치환경
- Container Engine: docker
- k8s version: v1.23
- OS : RHEL 9.3
- k8s cni: flannel
- ceph version: v17.2
- rook-ceph-helm chart version: v1.12
Rook-Ceph를 Helm 차트로 설치하는 방법
Rook-Ceph를 Helm 차트를 사용하여 설치하는 것은 쿠버네티스(Kubernetes) 환경에서 분산 스토리지 시스템을 효율적으로 구축하고 관리하는 데 있어 매우 유용한 방법입니다. Helm을 사용하면 Rook-Ceph 클러스터를 쉽게 배포하고 관리할 수 있습니다. 🚀
Helm을 사용한 Rook-Ceph 설치 준비
- Helm이란?: Kubernetes 패키지 매니저로, 애플리케이션의 설치 및 관리를 간소화합니다. Helm 차트는 애플리케이션의 Kubernetes 리소스를 정의하는 패키지입니다.
- Rook-Ceph 차트는 Rook-Ceph-Operator 설치 과정
Rook-Ceph Helm 차트 설치 과정
1. Helm 차트 저장소 추가: Helm 저장소에 Rook-Ceph 차트를 추가합니다. 이를 위해 다음 명령어를 사용하세요.
helm repo add rook-release <https://charts.rook.io/release>
2. helm chart local로 다운로드
- local로 다운로드 하면 오프라인 상태에서도 helm chart를 다운로드 가능
mkdir ~/helm
cd ~/helm
helm pull rook-release/rook-ceph --version 1.11
3. Rook-Ceph operator 설치: Helm을 사용하여 Rook-Ceph 클러스터를 설치합니다. 다음 명령어를 실행하여 설치를 진행하세요.
helm install rook-ceph helm/rook-ceph -n rook-ceph --create-namespace
이 명령어는 rook-ceph 네임스페이스를 생성하고, 해당 네임스페이스에 Rook-Ceph 클러스터를 설치합니다.
4. 설치 확인: 설치가 성공적으로 완료되었는지 확인하기 위해, 다음 명령어를 사용하여 Rook-Ceph 클러스터의 상태를 확인할 수 있습니다.
kubectl get pods -n rook-ceph
모든 포드가 정상적으로 실행 중인지 확인하세요.
Helm을 사용한 Rook-Ceph 설치는 간단하면서도 효율적인 방법입니다. 이 과정을 통해 쿠버네티스 환경에서 강력하고 유연한 스토리지 솔루션을 구축할 수 있습니다.
🌟 설치 과정에 대한 자세한 정보는 Rook 공식 문서에서 확인할 수 있습니다.
※ docker 환경에 Rook-Ceph-Cluster 구성 시 사전 작업
- docker 환경에서 mon 3중화를 위한 설치를 진행하려면 docker에 아래에 같은 옵션을 추가해줘야함
- /etc/docker/daemon.json 에 설정 하기
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "2000m",
"max-file": "1"
},
"storage-driver": "overlay2",
"insecure-registries": ["harbor.makina.onboarding-1.com", "cr.makina.rocks"],
"default-ulimits": {
"nofile": {
"Name": "nofile",
"Hard": 300000,
"Soft": 300000
}
}
}
Rook-Ceph 클러스터 구축을 위한 Helm Chart 설치 가이드
Rook-Ceph 클러스터를 구축하는 과정은 Kubernetes 환경에서 분산 스토리지 시스템을 쉽게 배포하고 관리할 수 있게 해줍니다. Helm을 사용하여 Rook-Ceph 클러스터를 설치하는 방법은 다음과 같습니다. 🚀
사전 준비 사항
- Kubernetes 클러스터: Rook-Ceph를 설치하기 전에, Kubernetes 클러스터가 준비되어 있어야 합니다.
- Helm: Helm 3 버전이 설치되어 있어야 합니다. Helm은 Kubernetes 애플리케이션의 패키지 관리자입니다.
설치 과정
- Rook Helm 리포지토리 추가 Helm 리포지토리에 Rook을 추가합니다.
helm repo add rook-release <https://charts.rook.io/release>
2. Helm Chart 로컬 다운로드
mkdir ~/helm
cd ~/helm
helm pull rook-release/rook-ceph-cluster --version 1.12
3. Rook-Ceph 클러스터 설치
- Helm을 사용하여 Rook-Ceph 클러스터를 설치합니다.
helm install rook-ceph-cluster helm/rook-ceph-cluster -n rook-ceph -f helm/rook-ceph-cluster/values.yaml
4. 상태 확인 Ceph 클러스터의 상태를 확인하여 모든 것이 올바르게 배포되었는지 확인합니다.
[root@onboarding-1:~]$ kubectl get pod -n rook-ceph
NAME READY STATUS RESTARTS AGE
csi-cephfsplugin-provisioner-779db7fd4-7lk7m 5/5 Running 0 17m
csi-cephfsplugin-wj6c6 2/2 Running 0 17m
csi-rbdplugin-9bgtn 2/2 Running 0 17m
csi-rbdplugin-provisioner-7c87469795-k2mqz 5/5 Running 0 17m
rook-ceph-crashcollector-onboarding-1-687f58bd88-rst24 1/1 Running 0 15m
rook-ceph-mds-ceph-filesystem-a-6f64c6ffb6-2gdd9 1/1 Running 0 15m
rook-ceph-mds-ceph-filesystem-b-64d5cbd46-5rxcq 1/1 Running 0 15m
rook-ceph-mgr-a-74c8c58454-jkwph 2/2 Running 0 16m
rook-ceph-mgr-b-5c8fcd4888-zxmtp 2/2 Running 0 16m
rook-ceph-mon-a-d64b4b7d7-tckfw 1/1 Running 0 17m
rook-ceph-mon-b-54dc4c6599-msgpn 1/1 Running 0 17m
rook-ceph-mon-c-5b9f564987-zvdhk 1/1 Running 0 16m
rook-ceph-operator-698f44cb8-c28lq 1/1 Running 0 46m
rook-ceph-osd-0-67f44585cf-gtvdf 1/1 Running 0 16m
rook-ceph-osd-prepare-onboarding-1-vxk4w 0/1 Completed 0 16m
rook-ceph-tools-685b47d6bb-zktwt 1/1 Running 0 17m
rook-discover-qqt5c 1/1 Running 0 46m
helm 차트로 rook-ceph 구성을 하는 방법을 알아보았다. 기본적인 value로 구성하였으니 필요한 부분은 커스텀 하여 진행하여 설치 진행 하면 된다. 다음 블로그 글은 rook-ceph 설치 시 트러블슈팅 및 클러스터 재설치 시 초기화 하는 법에 대해 알아 보도록 하겠다.
이상으로 블로그 글을 마치도록 하겠습니다.