k8s 및 인프라/rook-ceph

폐쇄망 rook-ceph 설치

DanielZZI 2024. 2. 21. 23:37
728x90

 

 

 

1.ceph를 사용할 노드에 라벨링

 

#노드라벨확인

k get nodes --show-labels

 

#필요한 노드에 ceph용 라벨적용

k label nodes <노드이름> storage=ceph

 

1. rook operator 설치

 

k create -f crds.yaml

 

k create -f common.yaml

 

k create -f  operator.yaml

#아래 파라미터 설정확인

CSI_PROVISIONER_NODE_AFFINITY: "storage=ceph"  #라벨이 된 노드에만 ceph osd 구동

CSI_PLUGIN_NODE_AFFINITY: "storage=ceph"  #plugin node affinity설정

ROOK_ENABLE_DISCOVERY_DAEMON: "true"  #자동감지daemon실행

ROOK_DISCOVER_DEVICES_INTERVAL: "5m"  #새 디스크 detect주기

그외 replica개수, 이미지경로, 등 확인

 

 

 

#잘구동되었나확인

k get po -n rook-ceph

 

 

->아래 pod들 확인

rook-discover (노드 개수만큼 떠야)

rook-ceph-operator

 

3. ceph cluster 설치

k create -f cluster.yaml

 

 

4.모니터링

kubectl create -f  toolbox.yaml

kubectl -n rook-ceph exec -it deploy/rook-ceph-tools -- bash

 

 

으로 pod접속후 아래와 같은 명령어들을 사용할 수 있음

ceph status
ceph osd status
ceph df
rados df

 

 

이중 ceph status를 실행해서

 

mon이 다 잘 떠있고 quorum을 잘구성했으며

health_ok라고 뜨면 정상적으로 동작하고 있다고 볼수있다.

 

 

 

 

추가) k8s default storageclass로 지정

k patch storageclass rook-ceph-block -p '{"metadata":{"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'