美丽使用Ceph RBD作为后端存储

  

一、准备工作

  

Ceph版本:v13.2.5模仿稳定版

  

1, Ceph上准备存储池

  
 <代码> [root@ceph-node1 ceph] # ceph osd池创建k8 128 128
  池创建的“美丽”
  ls (root@ceph-node1 ceph) # ceph osd池
  k8  
  

2, Ceph上准备k8客户端账号

  

本环境中直接使用了Ceph的管理账号,当然生产环境中还是要根据不同功能客户端分配不同的账号:
<代码> Ceph auth get-or-create客户机。k8 mon允许r的osd的允许rwx池=k8 ' - o ceph.client.k8s.keyring
获取账号的密钥:

  
 <代码> [root@ceph-node1 ceph] # ceph客户身份验证获取密钥。管理| base64
  QVFDMmIrWmNEL3JTS2hBQWwwdmR3eGJGMmVYNUM3SjdDUGZZbkE9PQ== 
  

3,为controller-manager提供rbd命令

  

使用StorageClass动态创建PV时,controller-manager会自动在Ceph上创建形象,所以我们要为其准备好rbd命令。
(1)如果集群是用kubeadm部署的,由于controller-manager官方镜像中没有rbd命令,所以我们要导入外部配置:

  
 <代码>:ClusterRole
  apiVersion: rbac.authorization.k8s.io/v1
  元数据:
  名称:rbd-provisioner
  规则:
  - apiGroups: ["]
  资源(“persistentvolumes”):
  动词:[“获得”,“列表”,“看”,“创造”,“删除”)
  - apiGroups: ["]
  资源(“persistentvolumeclaims”):
  动词:[“获得”,“列表”,“看”,“更新”)
  ——apiGroups (“storage.k8s.io”):
  资源(“storageclasses”):
  动词:[“获得”,“列表”,“看”)
  - apiGroups: ["]
  资源(“事件”):
  动词:[“创造”、“更新”、“补丁”)
  - apiGroups: ["]
  资源(“服务”):
  resourceNames:(“kube-dns”、“coredns”)
  动词:[“名单”,“获得”)
  ---
  :ClusterRoleBinding
  apiVersion: rbac.authorization.k8s.io/v1
  元数据:
  名称:rbd-provisioner
  主题:
  类型:ServiceAccount
  名称:rbd-provisioner
  名称空间:默认
  roleRef:
  :ClusterRole
  名称:rbd-provisioner
  apiGroup: rbac.authorization.k8s.io
  ---
  apiVersion: rbac.authorization.k8s.io/v1
  类型:角色
  元数据:
  名称:rbd-provisioner
  规则:
  - apiGroups: ["]
  资源(“秘密”):
  动词(“获得”):
  - apiGroups: ["]
  资源(“端点”):
  动词:[“获得”,“列表”,“看”,“创造”,“更新”,“补丁”)
  ---
  apiVersion: rbac.authorization.k8s.io/v1
  :RoleBinding
  元数据:
  名称:rbd-provisioner
  roleRef:
  apiGroup: rbac.authorization.k8s.io
  类型:角色
  名称:rbd-provisioner
  主题:
  类型:ServiceAccount
  名称:rbd-provisioner
  名称空间:默认
  ---/v1beta1 apiVersion:扩展
  :部署
  元数据:
  名称:rbd-provisioner
  规范:
  副本:1
  策略:
  类型:重建
  模板:
  元数据:
  标签:
  应用:rbd-provisioner
  规范:
  容器:
  ——名称:rbd-provisioner
  图片:quay.io/external_storage rbd-provisioner:最新
  env:
  ——名称:PROVISIONER_NAME
  价值:ceph.com/rbd
  serviceAccount: rbd-provisioner
  ---
  apiVersion: v1
  :ServiceAccount
  元数据:
  名称:rbd-provisioner
   
  

- f rbd-provisioner kubectl适用。yaml
注意:rbd-provisioner的镜像要和ceph的版本适配,这里镜像使用最新的,根据官方提示已支持ceph模仿版。
 k8使用ceph RBD作为后端存储”> <br/>(2)如果集群是用二进制方式部署的,直接在主节点安装ceph-common即可。<br/>百胜源:</p>
  <pre> <代码> [Ceph]
  name=Ceph包basearch美元
  baseurl=http://download.ceph.com/rpm-mimic/el7/basearch美元
  启用=1
  gpgcheck=1
  类型=rpm-md
  gpgkey=https://download.ceph.com/keys/release.asc
  优先级=1
  (Ceph-noarch)
  name=Ceph noarch包
  baseurl=http://download.ceph.com/rpm-mimic/el7/noarch
  启用=1
  gpgcheck=1
  类型=rpm-md
  gpgkey=https://download.ceph.com/keys/release.asc
  优先级=1
  (ceph-source)
  name=Ceph源码包
  baseurl=http://download.ceph.com/rpm-mimic/el7/SRPMS
  启用=1
  gpgcheck=1
  类型=rpm-md
  gpgkey=https://download.ceph.com/keys/release.asc
  优先级=1 </代码> </pre>
  <p> #安装客户端<br/> <代码> yum - y安装ceph-common-13.2.5 </代码> <br/> #拷贝密匙环文件<br/>将ceph的ceph.client.admin.keyring文件拷贝到主人的/etc/ceph目录下。<h2 class=美丽使用Ceph RBD作为后端存储