Rook-Ceph 클러스터 구축을 위한 Helm Chart 설치 가이드

2–4분

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 애플리케이션의 패키지 관리자입니다.

          설치 과정

          1. 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 설치 시 트러블슈팅 및 클러스터 재설치 시 초기화 하는 법에 대해 알아 보도록 하겠다.

            이상으로 블로그 글을 마치도록 하겠습니다.