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