Kubernetes Ceph RBD 연동 / Ubuntu 18.04 환경
1. 설정 환경
설정 환경은 다음과 같다.
- Kubernetes 1.12
- Ceph
- Monitor IP : 10.0.0.10:6789
- Pool Name : kube
2. Ceph RDB 연동
$ ceph auth get client.admin 2>&1 |grep "key = " |awk '{print $3'} |xargs echo -n > /tmp/secret
$ kubectl create secret generic ceph-admin-secret --from-file=/tmp/secret --namespace=kube-system
Ceph Admin secret을 생성한다.
$ ceph osd pool create kube 8 8
$ ceph auth add client.kube mon 'allow r' osd 'allow rwx pool=kube'
$ ceph auth get-key client.kube > /tmp/secret
$ kubectl create secret generic ceph-secret --from-file=/tmp/secret --namespace=kube-system
Ceph Pool 및 User secret을 생성한다.
$ git clone https://github.com/kubernetes-incubator/external-storage.git
$ cd external-storage/ceph/rbd/deploy
rbd-provisioner, role, cluster role yaml을 Download 한다.
|
|
rbac/clusterrole.yaml 파일에 [File 1]의 내용을 추가한다. (Secret Role)
$ NAMESPACE=default
$ sed -r -i "s/namespace: [^ ]+/namespace: $NAMESPACE/g" ./rbac/clusterrolebinding.yaml ./rbac/rolebinding.yaml
$ kubectl -n $NAMESPACE apply -f ./rbac
rbd-provisioner, role, cluster role을 설정한다.
|
|
storage-class.yaml 파일 생성 및 [File 2]의 내용으로 저장한다.
$ kubectl create -f ./storage-class.yaml
$ kubectl get storageclasses.storage.k8s.io
NAME PROVISIONER AGE
rbd (default) ceph.com/rbd 19m
Storage Class 생성 및 확인한다.