Usando o armazenamento ceph diretamente para volumes docker

2

O Docker ou o Kubernetes suportam interfaces de armazenamento Ceph (objetos, vermelho, cephfs)?

    
por Ijaz Ahmad Khan 28.07.2017 / 14:40

1 resposta

1

Você pode encontrar facilmente a resposta para essa pergunta com um rápido google, mas eu darei a resposta aqui mesmo assim, para futuros leitores.

Existe uma boa página no site do ceph descrevendo como fazer isso para o docker. Para resumir rapidamente, você precisa das versões de distribuições golang, librados-dev, librbd-dev, ceph-common e xfsprogs, configurar, executar go get github.com/yp-engineering/rbd-docker-plugin , executar rbd-docker-plugin --create --user=<ceph-user> --pool=<ceph-pool> como root e, em seguida, usar a rbd driver de volume.

O Kubernetes também tem uma página na montagem de volume . Eu usei isso e this

Execute o seguinte em um monitor 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

Em um administrador do kubernetes, execute o seguinte

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
    
por 07.04.2018 / 10:55