k8s 使用ceph存储
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s 使用ceph存储相关的知识,希望对你有一定的参考价值。
总结:
1、ceph创建提供给k8s使用的pool池
2、k8s安装ceph客户端ceph-common,拷贝ceph存储的 ceph-conf和 ceph.client.admin.keyring 到/etc/ceph
3、生成加密key,提供给k8s的secret 使用
4、k8s 创建secret 提供给storageclass授权使用ceph
5、k8s 创建storageclass 提供给pvc 调用
6、k8s 创建pvc 提供给deployment 资源调用
以下为详细步骤:
1、在ceph存储创建给k8s使用的pool池
1.1、查看现有的 pool池ceph osd lspools
1.2、创建pool池ceph osd pool create k8s 128
ceph osd create pool ${poolname} ${pg_num} ${pgp_num}
这里强制选择pg_num和pgp_num,因为ceph集群不能自动计算pg数量。下面有一些官方建议的pg使用数量:
小于5个osd设置pg_num为128
5到10个osd设置pg_num为512
10到50个osd设置pg_num为1024
如果超过50个osd你需要自己明白权衡点,并且能自行计算pg_num的数量
1.3、检查rbd这个pool里已存在的PG和PGP数量ceph osd pool get k8s pg_num(pgp_num)
2、k8s 安装客户端 ceph-common(客户端版本和ceph版本最好保持一致)
2.1 拷贝服务端的ceph-conf和 ceph.client.admin.keyring 到/etc/ceph
3、生成加密key
`grep key /etc/ceph/ceph.client.admin.keyring |awk ‘{printf "%s", $NF}‘|base64`
4、创建secret
`apiVersion: v1
data:
key: QVFCSlQ2RmRESGQrSmhBQUdGMnNBcVVjbXB2MzNNVDQ5TVZqcnc9PQ==
kind: Secret
metadata:
name: ceph-admin-secret
namespace: kube-system
type: kubernetes.io/rbd`
5、创建storageclass
allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
annotations:
storageclass.kubernetes.io/is-default-class: "true"
name: rbd
parameters:
adminId: admin
adminSecretName: ceph-admin-secret
adminSecretNamespace: kube-system
fsType: ext4
imageFeatures: layering
imageFormat: "2"
monitors: 10.83.75.6:6789,10.83.75.7:6789,10.83.75.8:6789
pool: k8s
userId: admin
userSecretName: ceph-admin-secret
userSecretNamespace: kube-system
provisioner: kubernetes.io/rbd
reclaimPolicy: Retain
volumeBindingMode: Immediate
以上是关于k8s 使用ceph存储的主要内容,如果未能解决你的问题,请参考以下文章