使用Ceph集群作为Kubernetes的动态分配持久化存储
2017-07-18 17:53
896 查看
使用Docker快速部署Ceph集群 , 然后使用这个Ceph集群作为Kubernetes的动态分配持久化存储。
Kubernetes集群要使用Ceph集群需要在每个Kubernetes节点上安装ceph-common
1. 为kubernetes创建一个存储池
2. 创建用户
通过ceph auth list 查看
在存储池k8s下创建一个镜像测试下k8s这个用户是否可以操作
3.为ceph添加一个kubernetes secret
ceph-secret.yaml
type这一行一定要有
4.创建一个StorageClass
ceph-rbd-storageclass.yaml
Kubernetes 1.6 以上使用 storage.k8s.io/v1
5.测试
ceph-pvc.json
现在就可以使用Ceph RBD作为Kubernetes的动态分配持久化存储了。
Kubernetes集群要使用Ceph集群需要在每个Kubernetes节点上安装ceph-common
1. 为kubernetes创建一个存储池
# ceph osd pool create k8s 128 pool 'k8s' created
2. 创建用户
# ceph auth add client.k8s mon 'allow rx' osd 'allow rwx pool=k8s'k8s用户只能对k8s这个存储池有读写权限,注意一定要有执行权限才能执行ceph命令
通过ceph auth list 查看
client.k8s key: AQC3Hm5Zan9LDhAAXZHCdAF39bXcEwdpV6y/cA== caps: [mon] allow r caps: [osd] allow rw pool=k8s
在存储池k8s下创建一个镜像测试下k8s这个用户是否可以操作
# rbd create k8s/foo --size 1G --id k8s # rbd map k8s/foo --id k8s /dev/rbd0k8s这个ceph用户可以对k8s这个存储池进行操作了
3.为ceph添加一个kubernetes secret
# echo "$(ceph auth get-key client.k8s)"|base64 QVFDM0htNVphbjlMRGhBQVhaSENkQUYzOWJYY0V3ZHBWNnkvY0E9PQo=
ceph-secret.yaml
apiVersion: v1 kind: Secret metadata: name: ceph-secret namespace: kube-system type: "kubernetes.io/rbd" data: key: "QVFDM0htNVphbjlMRGhBQVhaSENkQUYzOWJYY0V3ZHBWNnkvY0E9PQo="
type这一行一定要有
# kubectl create -f ceph-secret.yaml
# kubectl get secret -n=kube-system|grep ceph ceph-secret kubernetes.io/rbd 1 1m
4.创建一个StorageClass
ceph-rbd-storageclass.yaml
apiVersion: storage.k8s.io/v1beta1 kind: StorageClass metadata: name: fast provisioner: kubernetes.io/rbd parameters: monitors: 172.30.30.215:6789,172.30.30.217:6789,172.30.30.219:6789 adminId: k8s adminSecretName: ceph-secret adminSecretNamespace: kube-system pool: k8s userId: k8s userSecretName: ceph-secret
Kubernetes 1.6 以上使用 storage.k8s.io/v1
# kubectl create -f ceph-rbd-storageclass.yaml
# kubectl get storageclass NAME TYPE fast kubernetes.io/rbd
5.测试
ceph-pvc.json
{ "kind": "PersistentVolumeClaim", "apiVersion": "v1", "metadata": { "name": "claim1", "annotations": { "volume.beta.kubernetes.io/storage-class": "fast" } }, "spec": { "accessModes": [ "ReadWriteOnce" ], "resources": { "requests": { "storage": "3Gi" } } } }
# kubectl create -f ceph-pvc.json # kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESSMODES AGE claim1 Bound pvc-28b66dcb-6c82-11e7-94da-02672b869d7f 3Gi RWO 11m
现在就可以使用Ceph RBD作为Kubernetes的动态分配持久化存储了。
相关文章推荐
- Openstack存储总结之:使用Ceph集群作为后端统一存储
- ceph客户端挂在ceph集群存储作为本地文件系统来使用
- 初试 Kubernetes 集群使用 Ceph RBD 块存储
- 编写一个函数,此函数使用动态存储分配来产生一个字符串的副本。例如函数为strclone,则调用p=strclone(str),将会为一个新的字符串分配和str占内存大小相同的一个字符串,并将字符串st
- Kubernetes 使用 Ceph 存储
- 使用Ceph作为OpenStack的后端存储
- Percona 开始尝试基于Ceph做上层感知的分布式 MySQL 集群,使用 Ceph 提供的快照,备份和 HA 功能来解决分布式数据库的底层存储问题
- Elasticsearch之重要核心概念(cluster(集群)、shards(分配)、replicas(索引副本)、recovery(据恢复或叫数据重新分布)、gateway(es索引的持久化存储方式)、discovery.zen(es的自动发现节点机制机制)、Transport(内部节点或集群与客户端的交互方式)、settings(修改索引库默认配置)和mappings)
- Ceph RBD为Kubernetes集群提供分布式数据存储
- ceph存储 iozone集群测试方案以及iozone使用详解经典
- 初试 Kubernetes 集群使用 CephFS 文件存储
- 与Ceph RBD关联,实现Kubernetes持久化存储 - PaaS云
- kubernetes的ceph RBD volume(3): 动态volume的使用(ceph RBD)
- Kubernetes 1.11.2使用NFS作为共享存储
- K8S使用Ceph做持久化存储
- 使用Ceph作为OpenStack的后端存储
- ceph存储 ceph集群loop使用示例
- 我所了解的各公司使用的 Ceph 存储集群 (携程、乐视、有云、宝德云、联通等)
- 我所了解的各公司使用的Ceph存储集群
- 使用Ceph作为OpenStack的后端存储