CentOS7下安装Ceph供Kubernetes使用

作者: ygqygq2 分类: 系统/运维 发布时间: 2018-08-20 14:17

CentOS7下安装Ceph供Kubernetes使用

1. 环境说明

系统:CentOS7,一个非系统分区分配给ceph
docker:1.13.1
kubernetes:1.11.2
ceph:luminous

2. Ceph部署准备

2.1 节点规划

监控节点:lab1、lab2、lab3
OSD节点:lab4、lab5、lab6、lab7
MDS节点:lab4

2.2 添加yum源

我们使用阿里云yum源:(CeontOS和epel也是阿里云yum源)

vim /etc/yum.repos.d/ceph.repo

注意:
ceph集群中节点都需要添加该yum源

2.3 安装Ceph部署工具

以下操作在lab1上root用户操作

  • 安装 ceph-deploy

yum -y install ceph-deploy

2.4 安装时间同步工具chrony

以下操作在所有ceph节点root用户操作

修改/etc/chrony.conf前面的server段为如下

2.5 安装SSH服务

默认已正常运行,略

2.6 创建部署 CEPH 的用户

以下操作在所有ceph节点root用户操作

ceph-deploy 工具必须以普通用户登录 Ceph 节点,且此用户拥有无密码使用 sudo 的权限,因为它需要在安装软件及配置文件的过程中,不必输入密码。

较新版的 ceph-deploy 支持用 --username 选项提供可无密码使用 sudo 的用户名(包括 root ,虽然不建议这样做)。使用 ceph-deploy --username {username} 命令时,指定的用户必须能够通过无密码 SSH 连接到 Ceph 节点,因为 ceph-deploy 中途不会提示输入密码。

建议在集群内的所有 Ceph 节点上给 ceph-deploy 创建一个特定的用户,但不要用 “ceph” 这个名字。全集群统一的用户名可简化操作(非必需),然而你应该避免使用知名用户名,因为黑客们会用它做暴力破解(如 rootadmin{productname} )。后续步骤描述了如何创建无 sudo 密码的用户,你要用自己取的名字替换 {username}

注意
从 Infernalis 版起,用户名 “ceph” 保留给了 Ceph 守护进程。如果 Ceph 节点上已经有了 “ceph” 用户,升级前必须先删掉这个用户。

我们使用用户名ceph-admin

2.7 允许无密码 SSH 登录

以下操作在lab1节点ceph-admin用户操作

正因为 ceph-deploy 不支持输入密码,你必须在管理节点上生成 SSH 密钥并把其公钥分发到各 Ceph 节点。 ceph-deploy 会尝试给初始 monitors 生成 SSH 密钥对。

生成 SSH 密钥对,但不要用 sudoroot 用户。提示 “Enter passphrase” 时,直接回车,口令即为空:

把公钥拷贝到各 Ceph 节点,把下列命令中的 {username} 替换成前面创建部署 Ceph 的用户里的用户名。

(推荐做法)修改 ceph-deploy 管理节点上的 ~/.ssh/config 文件,这样 ceph-deploy 就能用你所建的用户名登录 Ceph 节点了,而无需每次执行 ceph-deploy 都要指定 –username {username} 。这样做同时也简化了 ssh 和 scp 的用法。

需要用chmod 600 ~/.ssh/config解决。

2.8 开放所需端口

以下操作在所有监视器节点root用户操作

Ceph Monitors 之间默认使用 6789 端口通信, OSD 之间默认用 6800:7300 这个范围内的端口通信。

firewall-cmd --zone=public --add-port=6789/tcp --permanent && firewall-cmd --reload

2.9 终端( TTY )

以下操作在所有ceph节点root用户操作

在 CentOS 和 RHEL 上执行 ceph-deploy 命令时可能会报错。如果你的 Ceph 节点默认设置了 requiretty ,执行 sudo visudo 禁用它,并找到 Defaults requiretty 选项,把它改为 Defaults:ceph !requiretty 或者直接注释掉,这样 ceph-deploy 就可以用之前创建的用户(创建部署 Ceph 的用户 )连接了。

2.10 SELINUX

以下操作在所有ceph节点root用户操作

如果原来是开启的,需要重启生效。

2.11 整理以上所有ceph节点操作

3. 存储集群部署

以下操作在lab节点ceph-admin用户操作

我们创建一个 Ceph 存储集群,它有一个 Monitor 和两个 OSD 守护进程。一旦集群达到 active + clean 状态,再扩展它:增加第三个 OSD 、增加元数据服务器和两个 Ceph Monitors。


如果在某些地方碰到麻烦,想从头再来,可以用下列命令清除配置:


3.1 创建集群并准备配置

把 Ceph 配置文件里的默认副本数从 3 改成 2 ,这样只有两个 OSD 也可以达到 active + clean 状态。把下面这行加入 [global] 段:

osd pool default size = 2

再把 public network 写入 Ceph 配置文件的 [global] 段下

public network = 192.168.105.0/24

安装 Ceph

ceph-deploy install lab1 lab4 lab5 --no-adjust-repos

配置寝monitor(s)、并收集所有密钥:

ceph-deploy mon create-initial

完成上述操作后,当前目录里应该会出现这些密钥环:

用 ceph-deploy 把配置文件和 admin 密钥拷贝到管理节点和 Ceph 节点,这样你每次执行 Ceph 命令行时就无需指定 monitor 地址和 ceph.client.admin.keyring 了。

ceph-deploy admin lab1 lab4 lab5

注意
ceph-deploy 和本地管理主机( admin-node )通信时,必须通过主机名可达。必要时可修改 /etc/hosts ,加入管理主机的名字。

确保你对 ceph.client.admin.keyring 有正确的操作权限。

sudo chmod +r /etc/ceph/ceph.client.admin.keyring

安装mrg

检查集群的健康状况。

3.2 增加OSD

列举磁盘并擦净

同理,lab5sdb也一样。

创建pv、vg、lv,略。

创建 OSD

ceph-deploy osd create lab5 --fs-type btrfs --data vg1/lvol0

4. 扩展集群

一个基本的集群启动并开始运行后,下一步就是扩展集群。在 lab6lab7 各上添加一个 OSD 守护进程和一个元数据服务器。然后分别在 lab2lab3 上添加 Ceph Monitor ,以形成 Monitors 的法定人数。

添加 MONITORS

过程:

添加元数据服务器

至少需要一个元数据服务器才能使用 CephFS ,执行下列命令创建元数据服务器:

ceph-deploy mds create lab4

到此,可以创建RBD和cephFS的ceph集群搭建完成。

5. Ceph使用技巧

推送配置文件:

查看状态的常用命令

开启Dashbord管理界面

RBD常用命令

OSD常用命令

参考资料:
[1] http://docs.ceph.com/docs/master/start/
[2] http://docs.ceph.org.cn/start/
[3] http://docs.ceph.org.cn/install/manual-deployment/
[4] http://www.cnblogs.com/freedom314/p/9247602.html
[5] http://docs.ceph.org.cn/rados/operations/monitoring/

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注