Docker 볼륨에 직접 ceph Storage 사용

Docker 볼륨에 직접 ceph Storage 사용

Docker 또는 Kubernetes는 Ceph 스토리지 인터페이스(객체, 빨간색, cephfs)를 지원합니까?

답변1

이 질문에 대한 답은 빠른 구글을 통해 쉽게 찾을 수 있지만, 어쨌든 미래의 독자들을 위해 여기에 답을 드리겠습니다.

가지다ceph 웹사이트의 멋진 페이지Docker에 대해 이를 수행하는 방법을 설명합니다. 빠르게 요약하자면, golang, librados-dev, librbd-dev, ceph-common 및 xfsprogs 배포판이 필요하고 go를 설정하고 root로 실행한 go get github.com/yp-engineering/rbd-docker-plugin다음 볼륨 드라이버를 rbd-docker-plugin --create --user=<ceph-user> --pool=<ceph-pool>사용할 수 있습니다 .rbd

쿠버네티스에도 있다볼륨 마운트에 대한 페이지. 나는 그것을 사용했고이것

ceph 모니터에서 다음 명령을 실행합니다.

ceph auth get-key client.admin | base64 # admin key

ceph auth add client.kube mon 'allow r' osd 'allow rwx pool=<poolname>'
ceph auth get-key client.kube | base64 # client key

kubernetes 관리자에서 다음 명령을 실행합니다.

kubectl create secret generic ceph-admin-secret --type="kubernetes.io/rbd" \
--from-literal=key='<admin key>' \
--namespace=kube-system

kubectl create secret generic ceph-client-secret --type="kubernetes.io/rbd" \
--from-literal=key='<client key>' \
--namespace=kube-system

cat << EOF | kubectl apply -f -
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: <storage class name you want>
provisioner: kubernetes.io/rbd
parameters:
  monitors: <ceph monitor ip>:<ceph monitor port>
  adminId: client.admin
  adminSecretName: ceph-admin-secret
  adminSecretNamespace: kube-system
  pool: kube
  userId: client.kube
  userSecretName: ceph-client-secret
  fsType: <filesystem type>
  imageFormat: <image format>
  imageFeatures: <image features>
EOF

관련 정보