Ceph持久化存储为k8s应用提供存储方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ceph持久化存储为k8s应用提供存储方案相关的知识,希望对你有一定的参考价值。

目录:
一、Ceph Dashboard的部署
二、在k8s中创建有状态prometheus及Grafana监控Ceph集群状态

一、Ceph Dashboard介绍

Ceph 的监控可视化界面方案很多----grafana、Kraken。但是从Luminous开始,Ceph 提供了原生的Dashboard功能,通过Dashboard可以获取Ceph集群的各种基本状态信息。
mimic版 (nautilus版) dashboard 安装。如果是 (nautilus版) 需要安装 ceph-mgr-dashboard

二、配置Ceph Dashboard

1、在每个mgr节点安装,尽量保证在每个节点都安装dashboard因为当一个节点挂了的话,去访问其他的节点,其他的节点没有这个dashboard的话就访问不到了

#yum -y install ceph-mgr-dashboard 

#ceph mgr module ls |more
{
    "enabled_modules": [
        "dashboard",
        "iostat",
        "restful"
    ],
    "disabled_modules": [
        {
            "name": "ansible",
            "can_run": true,

2、开启mgr功能
#ceph mgr module enable dashboard

开启之后可以查看我们的开启的模块
也可以通过ceph -s查看集群状态
这里会列出显示的services,这里显示mgr安装在三个节点上

#ceph -s
 cluster:
    id:     75aade75-8a3a-47d5-ae44-ec3a84394033
    health: HEALTH_OK

  services:
    mon: 3 daemons, quorum cephnode01,cephnode02,cephnode03 (age 34m)
    mgr: cephnode01(active, since 5m), standbys: cephnode02, cephnode03
    mds: cephfs:2 {0=cephnode02=up:active,1=cephnode03=up:active} 1 up:standby
    osd: 3 osds: 3 up (since 47m), 3 in (since 23h)
    rgw: 1 daemon active (cephnode01)

3、生成并安装自签名的证书

#ceph dashboard create-self-signed-cert  

4、创建一个dashboard登录用户名密码

#ceph dashboard ac-user-create guest 1a2s3d4f administrator 
{"username": "guest", "lastUpdate": 1583304693, "name": null, "roles": ["administrator"], "password": "$2b$12$RgzO9RZzWWCYVcPSs3ACXO5dClSJH1gLh3QAc6GlaDQbhzKKHAXFC", "email": null}

5、查看服务访问方式

#ceph mgr services
{
    "dashboard": "https://cephnode01:8443/"
}

6、登录页面
技术图片

7、登录ceph-dashboard的管理页面
技术图片
关于创建访问ui的用户基于权限的设置,包含管理员,只读,块的管理者,cephfs的管理者都可以去创建
技术图片

三、在k8s中使用Grafana以及prometheus监控Ceph集群

这里我是用k8s将prometheus和grafana部署起来的,这里就不再将部署细节进行展示了,之前写过这类的文档,另外就是我们首先是去拿ceph的数据,怎么去拿呢?要就需要ceph提供的本身的mgr的模块对prometheus开启。
这里在k8s中部署prometheus的文档:https://blog.51cto.com/14143894/2438026

把这行获取收集ceph数据的模版加入configmap文件中

    - job_name: ‘ceph_cluster‘
      honor_labels: true
      scrape_interval: 5s
      static_configs:
      - targets: [‘192.168.1.5:9283‘]
        labels:
          instance: ceph

部署完查看目前是没有获取到ceph的数据的,因为我们现在还没有拿到数据

技术图片
四、ceph mgr prometheus插件配置

这里去获取ceph的数据的方式有很多种,比如使用ceph-exporter是采集ceph集群数据的客户端程序运的,在nautilus版本中可以直接开启这个进程,开启之后就会自动的将数据拿到,然后通过prometheus进行收集起来,再通过grafana将ceph的图形展示出来

这个在ceph管理节点开启

# ceph mgr module enable prometheus
# netstat -nltp | grep mgr 检查端口
tcp        0      0 0.0.0.0:6800            0.0.0.0:*               LISTEN      10311/ceph-mgr      
tcp        0      0 0.0.0.0:6801            0.0.0.0:*               LISTEN      10311/ceph-mgr      
tcp        0      0 192.168.1.10:6800       192.168.1.10:45594      ESTABLISHED 10311/ceph-mgr      
tcp        0      0 192.168.1.10:6800       192.168.1.11:51040      ESTABLISHED 10311/ceph-mgr      
tcp        0      0 192.168.1.10:6800       192.168.1.11:51044      ESTABLISHED 10311/ceph-mgr      
tcp        0      0 192.168.1.10:6800       192.168.1.10:45602      ESTABLISHED 10311/ceph-mgr      
tcp        0      0 192.168.1.10:6800       192.168.1.10:45600      ESTABLISHED 10311/ceph-mgr      
tcp        0      0 192.168.1.10:6800       192.168.1.11:51042      ESTABLISHED 10311/ceph-mgr      
tcp        0      0 192.168.1.10:6800       192.168.1.12:60668      ESTABLISHED 10311/ceph-mgr      
tcp        0      0 192.168.1.10:6800       192.168.1.12:60666      ESTABLISHED 10311/ceph-mgr      
tcp        0      0 192.168.1.10:45600      192.168.1.10:6800       ESTABLISHED 10311/ceph-mgr      
tcp        0      0 192.168.1.10:6800       192.168.1.11:51038      ESTABLISHED 10311/ceph-mgr      
tcp        0      0 192.168.1.10:6800       192.168.1.12:60670      ESTABLISHED 10311/ceph-mgr      
tcp        0      0 192.168.1.10:33400      192.168.1.10:3300       ESTABLISHED 10311/ceph-mgr      
tcp        0      0 192.168.1.10:6800       192.168.1.10:45598      ESTABLISHED 10311/ceph-mgr      
tcp        0      0 192.168.1.10:6800       192.168.1.10:45596      ESTABLISHED 10311/ceph-mgr      
tcp        0      0 192.168.1.10:6800       192.168.1.12:60672      ESTABLISHED 10311/ceph-mgr      
tcp        0      0 192.168.1.10:6800       192.168.1.10:45592      ESTABLISHED 10311/ceph-mgr      
tcp6       0      0 :::9283                 :::*                    LISTEN      10311/ceph-mgr      
tcp6       0      0 192.168.1.10:9283       192.168.1.15:22202      ESTABLISHED 10311/ceph-mgr  
# curl 192.168.1.10:9283/metrics 测试返回值

技术图片
查看数据已经被prometheus收集到,并显示为UP状态

技术图片

技术图片

五、配置grafana

1)、浏览器登录 grafana 管理界面
2)、添加data sources,点击configuration--》data sources

技术图片

3)、grafana官方提供了很多的模版
https://grafana.com/grafana/dashboards
4)、搜索ceph的dashboard ,这里我选择的是2842这个模版,这个主要是监控集群

5.1、监控Ceph-cluster集群

技术图片

5、import导入

技术图片

这样就监控到我们的ceph集群的状态了,并可以看到ceph的pools、OSD等相关数据

技术图片

5.2、监控OSD,模版编号5336

技术图片

技术图片

技术图片

5.3、监控POOLS ,监控模版编号5342

技术图片

import导入模版
技术图片

技术图片

以上是关于Ceph持久化存储为k8s应用提供存储方案的主要内容,如果未能解决你的问题,请参考以下文章

Ceph持久化存储为k8s应用提供存储方案

Ceph持久化存储为k8s应用提供存储方案

k8s 对接 ceph 实现持久化存储

k8s 对接 ceph 实现持久化存储

k8s 对接 ceph 实现持久化存储

K8S专栏Kubernetes数据持久化管理