본문 바로가기

Cloud/Kubernetes

Ceph Dashboard 접근하기

Ceph는 ToolBox를 통해 클러스터의 상태를 알 수 있지만 자체적으로 Dashboard도 제공한다. Kubernetes 환경에서 Ceph Dashboard를 접근해보았다.

1. Ceph Cluster.yaml을 통해 dashboard 활성화

- cluster.yaml을 보면 spec > dashboard 항목이 있다.

spec:
  (중략)
  dashboard:
    enabled: true
    port: 8443
    ssl: false

최신버전의 ceph는 기본 포트 8443을 사용한다. cluster.yaml을 적용한다.

2. SVC 확인

[root@test]# kubectl get svc -n rook-ceph
NAME                                     TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE
csi-cephfsplugin-metrics                 ClusterIP   10.96.155.87    <none>        8080/TCP,8081/TCP   27h
csi-rbdplugin-metrics                    ClusterIP   10.96.88.38     <none>        8080/TCP,8081/TCP   27h
rook-ceph-mgr                            ClusterIP   10.96.113.227   <none>        9283/TCP            27h
rook-ceph-mgr-dashboard                  ClusterIP    10.96.185.75    <none>        8443/TCP      27h

rook-ceph-mgr-dashboard가 생성되어 있다. 여기서 두 가지 방법이 존재한다.

(1) 새로운 SVC 붙여주기

해당 yaml을 통해 NodePort SVC를 생성해준다.

apiVersion: v1
kind: Service
metadata:
  name: rook-ceph-mgr-dashboard-external-https
  namespace: rook-ceph
  labels:
    app: rook-ceph-mgr
    rook_cluster: rook-ceph
spec:
  ports:
  - name: dashboard
    port: 8443
    protocol: TCP
    targetPort: 8443
  selector:
    app: rook-ceph-mgr
    rook_cluster: rook-ceph
  sessionAffinity: None
  type: NodePort

(2) rook-ceph-mgr-dashboard 활용하기

아래 명령어를 통해 rook-ceph-mgr-dashboard svc의 type을 NodePort로 전환해준다. 해당 방법의 경우 다시 ClusterIP로 바꿀 수 없으니 유의한다.

kubectl edit svc -n rook-ceph rook-ceph-mgr-dashboard

--edit-
spec:
  ports:
  selector:
  sessionAffinity: 
  type: NodePort

3. 접속

SVC를 확인한 후 NodeIP:NodePort를 통해 접속한다. 접속 계정은 admin이며 비밀번호는 다음 명령어를 통해 확인한다.

kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o yaml | grep "password:" | awk '{print $2}' | base64 --decode

한국어를 지원하긴 하는데 조금 허술하다. 그냥 영어로 보는게 편하다.