k8s默认使用的本地存储,集群容灾性差,ceph作为开源的分布式存储系统,与openstack环境搭配使用,已经很多云计算公司运用于生产环境,可靠性得到验证。这里介绍一下在k8s环境下ceph如何使用.
环境
|
|
Ceph机器创建K8s存储池
由于创建存储池会导致数据的迁移,所以如果Ceph集群已经用于生产环境,需要考虑数据迁移对于业务的影响,尽量避免业务高峰期执行
在Ceph管理节点执行:
配置Ceph源
在所有K8s Node 上配置ceph的源,需要待安装客户端与ceph的版本一致
Ceph客户端安装
在所有k8s Node上安装:
配置
把ceph的配置文件拷贝到每个K8s node上
在Ceph管理节点执行:
生成加密key
对ceph.client.admin.keyring 的内容进行base64编码
在k8s管理节点执行:
下载镜像
由于k8s的control-manager没有集成ceph-common,所以需要下载额外的镜像:
具体可参考:Issue
由于国内通过官方下载慢,有人把rbd-provisioner上传到阿里镜像仓库了
创建ServiceAccount
这里使用的namespace为default,需要有一个serviceaccount,并授权:
生成ceph-secret
|
|
生成rbd-provisioner
|
|
生成ceph-class
用于连接ceph集群,以及卷属性的设置
生成ceph-pvc
|
|