Ceph

Overview

We are currently recommending that you deploy ceph using kolla-ansible or ceph-deploy.

Install steps

This list of instructions is currently incomplete.

completely remove the following option from /etc/kolla-kubernetes/kolla-kubernetes.yml

keyring: /etc/ceph/ceph.client.admin.keyring

set the user option in the storage_ceph to ‘kolla’ in /etc/kolla-kubernetes/kolla-kubernetes.yml and pool = kollavolumes

Upload ceph.conf and admin key generated from the external ceph while orchestration_engine=ANSIBLE

kubectl create configmap ceph-conf --namespace=kolla \
  --from-file=ceph.conf=/etc/kolla/ceph-osd/ceph.conf
kubectl create secret generic ceph-client-admin-keyring --namespace=kolla\
  --from-file=data=/etc/kolla/ceph-osd/ceph.client.admin.keyring

Before any pv’s are created, do the following

kollakube res create pod ceph-rbd
kollakube res create pod ceph-admin
watch kubectl get pods --namespace=kolla

Wait for ceph-admin to come up.

Create a pool a user:

::
#FIXME probably needs a pool per region name? str=”ceph osd pool create kollavolumes 32” kubectl exec ceph-admin -c main –namespace=kolla – /bin/bash -c “$str” > /tmp/$$ str=”ceph auth get-or-create client.kolla mon ‘allow r’ osd ‘allow” str=”$str class-read object_prefix rbd_children, allow rwx pool=kollavolumes” kubectl exec ceph-admin -c main –namespace=kolla – /bin/bash -c “$str” | awk ‘{if($1 == “key”){print $3}}’ > /tmp/$$ kubectl create secret generic ceph-kolla –namespace=kolla –from-file=key=/tmp/$$ rm -f /tmp/$$

Create disks for ‘rabbitmq’ and ‘mariadb’ like so

cmd="rbd create --pool kollavolumes --image-feature layering --size 10240"
cmd="$cmd mariadb; rbd map --pool kollavolumes mariadb; #format it and unmount/unmap..."
kubectl exec -it ceph-admin -- /bin/bash -xec "$cmd"

Ceph managed by Kolla-Kubernetes

It is very half baked, intended only for testing. Please don’t store anything you care about in it as we will guarantee it will loose your data.