@elsonrodriguez, @hunter, and @leseb have gotten Ceph to run almost entirely within Kubernetes. Also, the official Ceph Docker image is more likely to be kept updated.
73 lines
2.8 KiB
Markdown
73 lines
2.8 KiB
Markdown
<!-- BEGIN MUNGE: UNVERSIONED_WARNING -->
|
|
|
|
<!-- BEGIN STRIP_FOR_RELEASE -->
|
|
|
|
<img src="http://kubernetes.io/kubernetes/img/warning.png" alt="WARNING"
|
|
width="25" height="25">
|
|
<img src="http://kubernetes.io/kubernetes/img/warning.png" alt="WARNING"
|
|
width="25" height="25">
|
|
<img src="http://kubernetes.io/kubernetes/img/warning.png" alt="WARNING"
|
|
width="25" height="25">
|
|
<img src="http://kubernetes.io/kubernetes/img/warning.png" alt="WARNING"
|
|
width="25" height="25">
|
|
<img src="http://kubernetes.io/kubernetes/img/warning.png" alt="WARNING"
|
|
width="25" height="25">
|
|
|
|
<h2>PLEASE NOTE: This document applies to the HEAD of the source tree</h2>
|
|
|
|
If you are using a released version of Kubernetes, you should
|
|
refer to the docs that go with that version.
|
|
|
|
<!-- TAG RELEASE_LINK, added by the munger automatically -->
|
|
<strong>
|
|
The latest release of this document can be found
|
|
[here](http://releases.k8s.io/release-1.4/examples/volumes/cephfs/README.md).
|
|
|
|
Documentation for other releases can be found at
|
|
[releases.k8s.io](http://releases.k8s.io).
|
|
</strong>
|
|
--
|
|
|
|
<!-- END STRIP_FOR_RELEASE -->
|
|
|
|
<!-- END MUNGE: UNVERSIONED_WARNING -->
|
|
|
|
# How to Use it?
|
|
|
|
Install Ceph on the Kubernetes host. For example, on Fedora 21
|
|
|
|
# yum -y install ceph
|
|
|
|
If you don't have a Ceph cluster, you can set up a [containerized Ceph cluster](https://github.com/ceph/ceph-docker/tree/master/examples/kubernetes)
|
|
|
|
Then get the keyring from the Ceph cluster and copy it to */etc/ceph/keyring*.
|
|
|
|
Once you have installed Ceph and a Kubernetes cluster, you can create a pod based on my examples [cephfs.yaml](cephfs.yaml) and [cephfs-with-secret.yaml](cephfs-with-secret.yaml). In the pod yaml, you need to provide the following information.
|
|
|
|
- *monitors*: Array of Ceph monitors.
|
|
- *path*: Used as the mounted root, rather than the full Ceph tree. If not provided, default */* is used.
|
|
- *user*: The RADOS user name. If not provided, default *admin* is used.
|
|
- *secretFile*: The path to the keyring file. If not provided, default */etc/ceph/user.secret* is used.
|
|
- *secretRef*: Reference to Ceph authentication secrets. If provided, *secret* overrides *secretFile*.
|
|
- *readOnly*: Whether the filesystem is used as readOnly.
|
|
|
|
|
|
Here are the commands:
|
|
|
|
```console
|
|
# kubectl create -f examples/volumes/cephfs/cephfs.yaml
|
|
|
|
# create a secret if you want to use Ceph secret instead of secret file
|
|
# kubectl create -f examples/volumes/cephfs/secret/ceph-secret.yaml
|
|
|
|
# kubectl create -f examples/volumes/cephfs/cephfs-with-secret.yaml
|
|
# kubectl get pods
|
|
```
|
|
|
|
If you ssh to that machine, you can run `docker ps` to see the actual pod and `docker inspect` to see the volumes used by the container.
|
|
|
|
|
|
<!-- BEGIN MUNGE: GENERATED_ANALYTICS -->
|
|
[]()
|
|
<!-- END MUNGE: GENERATED_ANALYTICS -->
|