1. 程式人生 > 其它 >docker搭建單機ceph叢集

docker搭建單機ceph叢集

1. 建立ceph專用網路

docker network create --driver bridge --subnet 172.20.0.0/16 ceph-network

 

之後我們使用docker網路相關指令可以看到建立的 ceph-network 相關資訊

docker network inspect ceph-network

 

 

2. 拉取ceph映象

docker pull ceph/daemon:latest-luminous

 

如果沒有修改為國內的映象源,先去修改映象源再pull,這個映象挺大的

之後檢視映象資訊

 

 

3. 搭建monitor節點

docker run -d --name ceph-mon --network ceph-network --ip 172.20
.0.10 -e CLUSTER=ceph -e WEIGHT=1.0 -e MON_IP=172.20.0.10 -e MON_NAME=ceph-mon -e CEPH_PUBLIC_NETWORK=172.20.0.0/16 -v /etc/ceph:/etc/ceph -v /var/lib/ceph/:/var/lib/ceph/ -v /var/log/ceph/:/var/log/ceph/ ceph/daemon:latest-luminous mon

 

4. 搭建osd節點

docker exec ceph-mon ceph auth get client.bootstrap-osd -o /var/lib/ceph/bootstrap-osd/ceph.keyring

 

修改配置檔案以相容etx4硬碟

vi /etc/ceph/ceph.conf

 

在檔案最後追加:

osd max object name len = 256
osd max object namespace len = 64

 

分別啟動三個容器來模擬叢集

docker run -d --privileged=true --name ceph-osd-1 --network ceph-network --ip 172.20.0.11 -e CLUSTER=ceph -e WEIGHT=1.0 -e MON_NAME=ceph-mon -e MON_IP=172.20.0.10 -e OSD_TYPE=directory -v /etc/ceph:/etc/ceph -v /var/lib/ceph/:/var/lib/ceph/ -v /var/lib/ceph/osd/1
:/var/lib/ceph/osd -v /etc/localtime:/etc/localtime:ro ceph/daemon:latest-luminous osd
docker run -d --privileged=true --name ceph-osd-2 --network ceph-network --ip 172.20.0.12 -e CLUSTER=ceph -e WEIGHT=1.0 -e MON_NAME=ceph-mon -e MON_IP=172.20.0.10 -e OSD_TYPE=directory -v /etc/ceph:/etc/ceph -v /var/lib/ceph/:/var/lib/ceph/ -v /var/lib/ceph/osd/2:/var/lib/ceph/osd -v /etc/localtime:/etc/localtime:ro ceph/daemon:latest-luminous osd
docker run -d --privileged=true --name ceph-osd-3 --network ceph-network --ip 172.20.0.13 -e CLUSTER=ceph -e WEIGHT=1.0 -e MON_NAME=ceph-mon -e MON_IP=172.20.0.10 -e OSD_TYPE=directory -v /etc/ceph:/etc/ceph -v /var/lib/ceph/:/var/lib/ceph/ -v /var/lib/ceph/osd/3:/var/lib/ceph/osd -v /etc/localtime:/etc/localtime:ro ceph/daemon:latest-luminous osd

 

5. 搭建mgr節點

docker run -d --privileged=true --name ceph-mgr --network ceph-network --ip 172.20.0.14 -e CLUSTER=ceph -p 7000:7000 --pid=container:ceph-mon -v /etc/ceph:/etc/ceph -v /var/lib/ceph/:/var/lib/ceph/ ceph/daemon:latest-luminous mgr

 

開啟管理介面

docker exec ceph-mgr ceph mgr module enable dashboard

 

6. 搭建rgw節點

docker exec ceph-mon ceph auth get client.bootstrap-rgw -o /var/lib/ceph/bootstrap-rgw/ceph.keyring
docker run -d --privileged=true --name ceph-rgw --network ceph-network --ip 172.20.0.15 -e CLUSTER=ceph -e RGW_NAME=ceph-rgw -p 7480:7480 -v /var/lib/ceph/:/var/lib/ceph/ -v /etc/ceph:/etc/ceph -v /etc/localtime:/etc/localtime:ro ceph/daemon:latest-luminous rgw

 

7. 檢查ceph狀態

docker exec ceph-mon ceph -s

 

8. 測試新增rgw使用者,生成access_key和secret_key用於訪問

docker exec ceph-rgw radosgw-admin user create --uid="test" --display-name="test user"

 

9. 使用docker ps 檢視ceph執行狀態

 

 

10 檢視ceph健康狀態

docker exec ceph-mon ceph -s

 

11. 進入ceph-mon

docker exec -it ceph-mon bash