Rook¶
Deploy CephFS on kubernetes with rook¶
$ mkdir rook
$ cd rook
$ wget https://raw.githubusercontent.com/rook/rook/master/cluster/examples/kubernetes/ceph/operator.yaml
$ wget https://raw.githubusercontent.com/rook/rook/master/cluster/examples/kubernetes/ceph/cluster.yaml
To disable TLS, edit cluster.yaml
file:
dashboard:
enabled: true
# serve the dashboard under a subpath (useful when you are accessing the dashboard via a reverse proxy)
# urlPrefix: /ceph-dashboard
# serve the dashboard at the given port.
# port: 8443
# serve the dashboard using SSL
ssl: false
Ingress file, ingress.yaml
:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: rook-ceph-mgr-dashboard
namespace: rook-ceph
annotations:
kubernetes.io/ingress.class: "nginx"
rules:
- host: rook-ceph.example.com
http:
paths:
- path: /
backend:
serviceName: rook-ceph-mgr-dashboard
servicePort: 8443
$ kubectl create -f operator.yaml
$ kubectl create -f cluster.yaml
$ kubectl create -f ingress.yaml
$ kubectl -n rook-ceph get pod
'
NAME READY STATUS RESTARTS AGE
rook-ceph-mgr-a-ffc44857d-xgh4d 1/1 Running 0 50m
rook-ceph-mon-a-86f5fc4bc-clmfb 1/1 Running 0 51m
rook-ceph-mon-b-7955f84c5c-sqhvj 1/1 Running 0 51m
rook-ceph-mon-c-684556d465-sfmvv 1/1 Running 0 51m
rook-ceph-osd-0-65968b6d86-wkdxt 1/1 Running 0 50m
rook-ceph-osd-prepare-ubuntu-191-h6g2x 0/2 Completed 0 50m
'
$ kubectl -n rook-ceph get service
'
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
rook-ceph-mgr ClusterIP 10.43.148.58 <none> 9283/TCP 50m
rook-ceph-mgr-dashboard ClusterIP 10.43.89.64 <none> 8443/TCP 50m
rook-ceph-mon-a ClusterIP 10.43.117.36 <none> 6789/TCP 51m
rook-ceph-mon-b ClusterIP 10.43.164.245 <none> 6789/TCP 51m
rook-ceph-mon-c ClusterIP 10.43.205.134 <none> 6789/TCP 51m
'
$ kubectl -n rook-ceph-system get pod
' NAME READY STATUS RESTARTS AGE
rook-ceph-agent-w6lsz 1/1 Running 0 1h
rook-ceph-operator-5496d44d7c-wnm7h 1/1 Running 0 1h
rook-discover-b4v7g
'
$ kubectl -n rook-ceph get ingress
'
NAME HOSTS ADDRESS PORTS AGE
rook-ceph-mgr-dashboard rook-ceph.example.com 192.168.0.191 80 13m
'
Now browse:
Username is admin and password is:
$ kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath="{['data']['password']}" | base64 --decode && echo