使用Docker快速部署Ceph集群 , 然后使用这个Ceph集群作为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/rbd0

k8s这个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的动态分配持久化存储了。

转自:https://www.itency.com/topic/show.do?id=479247

使用Ceph集群作为Kubernetes的动态分配持久化存储(转)的更多相关文章

  1. ceph集群安装

    所有 Ceph 部署都始于 Ceph 存储集群.一个 Ceph 集群可以包含数千个存储节点,最简系统至少需要一个监视器和两个 OSD 才能做到数据复制.Ceph 文件系统. Ceph 对象存储.和 C ...

  2. 基于Ubuntu 18.04.5 LTS 部署Ceph集群测试及Ceph RDB的使用。

    1.ceph简介 Ceph在一个统一的系统中独特地提供对象.块和文件存储 1.1 ceph官网架构图 1.2 架构解释   CEPH 对象存储 CEPH 块设备 CEPH 文件系统 RESTful 接 ...

  3. ceph-deploy离线部署ceph集群及报错解决FAQ

    ceph-deploy部署ceph集群 环境介绍 主机名 ip地址 操作系统 角色 备注 ceph-node1 10.153.204.13 Centos7.6 mon.osd.mds.mgr.rgw. ...

  4. CEPH-5:ceph集群基本概念与管理

    ceph集群基本概念与管理 ceph集群基本概念 ceph集群整体结构图 名称 作用 osd 全称Object Storage Device,主要功能是存储数据.复制数据.平衡数据.恢复数据等.每个O ...

  5. 分布式存储系统之Ceph集群存储池、PG 与 CRUSH

    前文我们了解了ceph集群状态获取常用命令以及通过ceph daemon.ceph tell动态配置ceph组件.ceph.conf配置文件相关格式的说明等,回顾请参考https://www.cnbl ...

  6. 分布式存储系统之Ceph集群启用Dashboard及使用Prometheus监控Ceph

    前文我们了解了Ceph之上的RadosGW基础使用相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16768998.html:今天我们来聊一聊Ceph启 ...

  7. Ceph集群搭建及Kubernetes上实现动态存储(StorageClass)

    集群准备 ceph集群配置说明   节点名称 IP地址 配置 作用 ceph-moni-0 10.10.3.150 centos7.5 4C,16G,200Disk 管理节点,监视器 monitor ...

  8. ceph集群部署

    最近在学习 kubernetes 过程中,想实现 pod 数据的持久化.在调研的过程中,发现 ceph 在最近几年发展火热,也有很多案例落地企业.在选型方面,个人更加倾向于社区火热的项目,Gluste ...

  9. Ubuntu 14.04 部署 CEPH集群

    注:下文的所有操作都在admin节点进行 1.准备三台虚拟机,其中一台作为admin节点,另外两台作为osd节点,并相应地用hostname命令将主机名修改为admin,osd0,osd1,最后修改/ ...

随机推荐

  1. CSS属性display的浅略探讨

    display 的属性值有:none|inline|block|inline-block|list-item|run-in|table|inline-table|table-row-group|tab ...

  2. WPF ListView ListBox 常用的样式记录

    ListView: <ListView x:Name="lvBlockedApps" ItemsSource="{Binding BlockedAppsCollec ...

  3. 润乾报表html代码填报

     由于html和富文本类型的单元格,不能进行可写操作,如果要想填报时填入html代码并且提交后更新就要换了一个方法,通过数据回填的方法. 比如在C3单元格设置html事件(也可以通过一个按钮来触发 ...

  4. the cause of StringBuild class

    如果我们对字符串进行拼接操作,每次拼接,都会创建一个新的String对象,既耗时,又浪费空间,而StringBuild类可以解决这个问题. 那么StringBuild类是如果解决的呢? 因为Strin ...

  5. java 对象

      对象可以看成是静态属性和动态属性的封装体.静态属性——成员变量:动态属性——方法. 1.汇编语言是对机器语言的抽象. 2.面向过程的语言是对汇编语言的抽象.属性和方法分离,不是封装在一起的,复用性 ...

  6. MongoDB学习笔记(一)——Windows 下安装MongoDB

     首先从官网下载mongodb的windows安装包,根据自己系统类型选择32位或者64位版本安装即可,然后根据提示一路下一步即可安装完成.如果没有修改安装目录会默认安装在C:\Program Fil ...

  7. WWF3.5SP1 参考源码索引

    http://www.projky.com/dotnet/WF3.5SP1/System/Runtime/Serialization/FormatterServicesNoSerializableCh ...

  8. Tomcat – Java.Lang.OutOfMemoryError: PermGen Space

    很多时候,在开发阶段Tomcat重复的重启过程中会遇到java.lang.OutOfMemoryError : PermGen space 错误. 1 2 3 4 java.lang.OutOfMem ...

  9. Oracle EBS 请求添加SQL语句

  10. 3 个简单、优秀的 Linux 网络监视器

    作者: Carla Schroder 译者: LCTT geekpi 用 iftop.Nethogs 和 vnstat 了解更多关于你的网络连接. 你可以通过这三个 Linux 网络命令,了解有关你网 ...