存储模块¶
Openshift的网络存储是以Operator的形式提供服务的, 具体是Rook 作为存储的统一调度器入口, 下面有各种的存储类型, 如支持Ceph, EdgeFS等. Ceph块存储,对象存储都以CRD的形式 进行灵活的配置管理.
以下的安装过程, 使用三台宿主机的指定目录 /diskb/ceph 作为OSD存储介质, 每个Ceph Agent下只有一个OSD. 该部署只能作为测试验证用途.
Ceph 安装步骤¶
- 在计划存储宿主机上建立Ceph存储目录, 所有用户数据都被存储在这里.
# ansible all -m shell -a "mkdir -p /diskb/ceph"
# ansible all -m shell -a "chmod -R 777 /diskb/ceph"
- 在计划存储宿主机上建立Rook存储目录, Ceph mon, Rook operator 数据都被存储在这里.
# ansible all -m shell -a "mkdir -p /var/lib/rook"
# ansible all -m shell -a "chmod 777 /var/lib/rook"
- 为存储节点打上label. 同时,这几个节点也必须是Compute节点.
# oc label node node01-inner role=storage-node
# oc label node node02-inner role=storage-node
# oc label node node03-inner role=storage-node
- 下载rook operator 配置文件
# wget https://github.com/rook/rook/archive/v1.0.2.tar.gz
# tar xzvf v1.0.2.tar.gz
# cd rook-1.0.2/cluster/examples/kubernetes/ceph/
- 配置 cluster.yml 文件
# 指定rook operator目录
dataDirHostPath: /var/lib/rook
# 使用hostNetwork
network:
# toggle to use hostNetwork
hostNetwork: true
# Ceph Agent 调度到指定Label的主机
placement:
all:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: role
operator: In
values:
- storage-node
# Cepth Mgr Pod的资源需求
mgr:
limits:
cpu: "500m"
memory: "1024Mi"
requests:
cpu: "500m"
memory: "1024Mi"
# Ceph宿主机的数据目录
directories:
- path: /diskb/ceph
- 执行安装. 会创建一个rook-ceph项目,相应资源都在它下面
# oc create -f common.yaml
# oc create -f operator-openshift.yaml
# oc create -f cluster.yaml
- 为Ceph管理页面安装路由
# oc create -f openshift-cn/sample/env-test/storage/route-rook-ceph-mgr-dashboard.yml
- 访问Ceph管理页面 https://ceph-dashboard.apps.openshift.net.cn/, 管理员admin密码用以下命令获取
# oc -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath="{['data']['password']}" | base64 --decode && echo