github.com/alibaba/sealer@v0.8.6-0.20220430115802-37a2bdaa8173/applications/rookceph/rookceph-file/README.md (about)

     1  # Overview
     2  
     3  This image creates the filesystem by specifying the desired settings for the metadata pool, data pools, and metadata
     4  server in the CephFilesystem CRD. In this image we create the metadata pool with replication of three and a single data
     5  pool with replication of three and also will create default storage class named `rook-ceph-file` for use.
     6  
     7  Components included in this image:
     8  
     9  Ceph cluster:
    10  
    11  * 1 Deployment for rookceph operator.
    12  * 3 ceph mon for ceph cluster.
    13  * 3 ceph osd for ceph cluster.
    14  * 2 ceph mgr for ceph cluster.
    15  * enable ceph dashboard with ssl port 8443.
    16  
    17  CephFilesystem:
    18  
    19  * 3 replicated datapool for ceph filesystem.
    20  * 3 replicated metadatapool for ceph filesystem.
    21  * 2 ceph metadata server.
    22  
    23  ## How to run it
    24  
    25  Use default Clusterfile to apply the ceph cluster.
    26  
    27  see : [default ceph filesystem Clusterfile examples](../../../applications/rookceph/rookceph-file/examples/Clusterfile.yaml)
    28  
    29  ## How to use it
    30  
    31  Connect to ceph cluster using below tools.Then run `ceph status` to check the status of ceph cluster.
    32  
    33  ```yaml
    34  apiVersion: apps/v1
    35  kind: Deployment
    36  metadata:
    37    name: rook-ceph-tools
    38    namespace: rook-ceph
    39    labels:
    40      app: rook-ceph-tools
    41  spec:
    42    replicas: 1
    43    selector:
    44      matchLabels:
    45        app: rook-ceph-tools
    46    template:
    47      metadata:
    48        labels:
    49          app: rook-ceph-tools
    50      spec:
    51        dnsPolicy: ClusterFirstWithHostNet
    52        containers:
    53          - name: rook-ceph-tools
    54            image: rook/ceph:v1.7.2
    55            command: [ "/tini" ]
    56            args: [ "-g", "--", "/usr/local/bin/toolbox.sh" ]
    57            imagePullPolicy: IfNotPresent
    58            env:
    59              - name: ROOK_CEPH_USERNAME
    60                valueFrom:
    61                  secretKeyRef:
    62                    name: rook-ceph-mon
    63                    key: ceph-username
    64              - name: ROOK_CEPH_SECRET
    65                valueFrom:
    66                  secretKeyRef:
    67                    name: rook-ceph-mon
    68                    key: ceph-secret
    69            volumeMounts:
    70              - mountPath: /etc/ceph
    71                name: ceph-config
    72              - name: mon-endpoint-volume
    73                mountPath: /etc/rook
    74        volumes:
    75          - name: mon-endpoint-volume
    76            configMap:
    77              name: rook-ceph-mon-endpoints
    78              items:
    79                - key: data
    80                  path: mon-endpoints
    81          - name: ceph-config
    82            emptyDir: { }
    83        tolerations:
    84          - key: "node.kubernetes.io/unreachable"
    85            operator: "Exists"
    86            effect: "NoExecute"
    87            tolerationSeconds: 5
    88  
    89  ```
    90  
    91  Launch the rook-ceph-tools pod:
    92  
    93  `kubectl create -f toolbox.yaml`
    94  
    95  Wait for the toolbox pod to download its container and get to the running state:
    96  
    97  `kubectl -n rook-ceph rollout status deploy/rook-ceph-tools`
    98  
    99  Once the rook-ceph-tools pod is running, you can connect to it with:
   100  
   101  `kubectl -n rook-ceph exec -it deploy/rook-ceph-tools -- bash`
   102  
   103  Use ceph as the filesystem storage backend to deploy docker registry application.
   104  
   105  see : [docker registry with ceph filesystem examples](../../../applications/rookceph/rookceph-file/examples/examples.yaml)
   106  
   107  ## How to rebuild it
   108  
   109  Modify manifest.yaml or cephfilesystem.yaml file according to your needs, then run below command to rebuild it.
   110  
   111  ```shell
   112  sealer build -t {Your Image Name} -f Kubefile -m cloud .
   113  ```
   114  
   115  More parameters see [official docs here](https://rook.io/docs/rook/v1.7/ceph-filesystem.html).