centos7 ceph 12.X部署

Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统,对k8s兼容性较好

部署逻辑架构


IP地址                   主机名(Hostname)
192.168.1.21                    node1(osd.0节点和用该主机同时作为管理和监控节点)
192.168.1.22                    node2 (osd.1 节点)
192.168.1.23                    node3 (osd.2 节点)
因主机资源限制还是部署在同这三台上面
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

基础环境ssh配置

分别这三个节点上存储创建用户且赋予它root权限(本人这里用 ceph)
执行
# sudo useradd -d /home/ceph  -m  ceph
# sudo passwd ceph( 输入密码这里建议三台服务器密码设为一致)
  
//授予无密码sudo权限
#echo " ceph ALL = (root) NOPASSWD:ALL" >> /etc/sudoers.d/ceph
#sudo chmod 0440 /etc/sudoers.d/ceph
 
 
允许无密码 SSH 登录 因为 ceph-deploy 不支持输入密码,你必须在管理节点上生成 SSH 密钥并把其公钥分发到各 Ceph 节点。 ceph-deploy 会尝试给初始 monitors 生成 SSH 密钥对。生成 SSH 密钥对,使用创建的用户不要用 sudo 或 root 。
# ssh-keygen(提示 “Enter passphrase” 时,直接回车,口令即为空)
//把公钥拷贝到各 Ceph 节点上
ssh-copy-id  ceph@k8s1
ssh-copy-id  ceph@k8s2
ssh-copy-id  ceph@k8s3
在管理节点node1 上修改~/.ssh/config文件(若没有则创建)增加一下内容:
Host            k8s1
Hostname  192.168.1.21
User              ceph
Host            k8s2
Hostname  192.168.1.22
User              ceph
Host            k8s3
Hostname  192.168.1.23
User              ceph
 

Ntp时间配置

在各节点上安装ntp(防止时钟偏移导致故障)、openssh
sudo yum install ntp ntpdate ntp-doc
sudo yum install openssh-server
 

防火墙配置

在各节点上配置防火墙开放所需要的端口和selinux,更新系统(此步因在k8s上省略)
#sudo firewall-cmd --zone=public --add-port=6789/tcp --permanent
//或者关闭防火墙
#sudo systemctl stop firewalld
#sudo systemctl disable firewalld
//关闭selinux
#sudo vim /etc/selinux/config
修改 SELINUX=disabled
 
在各节点上创建ceph 源(本人这里选择的luminous版本)
cat > /etc/yum.repos.d/ceph.repo  << EOF
[ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/$basearch
enabled=1
gpgcheck=1
priority=1
type=rpm-md
gpgkey=http://mirrors.163.com/ceph/keys/release.asc
 
[ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/noarch
enabled=1
gpgcheck=1
priority=1
type=rpm-md
gpgkey=http://mirrors.163.com/ceph/keys/release.asc
 
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.163.com/ceph/rpm-luminous/el7/SRPMS
enabled=0
gpgcheck=1
type=rpm-md
gpgkey=http://mirrors.163.com/ceph/keys/release.asc
priority=1
EOF
 
在管理节点nod1上进行安装准备(使用ceph用户)
//新建文件夹ceph-cluster
cd
mkdir ceph-cluster
cd ceph-cluster

安装 ceph-deploy

yum install -y ceph-deploy 或ceph-deploy install k8s1 k8s2 k8s3   ###所有节点
 

ceph-deploy的工作添加国内镜像

这一步很重要,是官网上所没有的。
简单来说,ceph-deploy会参考2个环境变量的值来填写ceph.repo
export CEPH_DEPLOY_REPO_URL=http://mirrors.163.com/ceph/rpm-luminous/el7 export CEPH_DEPLOY_GPG_URL=http://mirrors.163.com/ceph/keys/release.asc
可直接放入变量

清除

ceph-deploy purge k8s1 k8s2 k8s3
ceph-deploy purgedata k8s1 k8s2 k8s3
ceph-deploy forgetkeys
rm ceph.*
 

创建一个集群

ceph-deploy new 所有节点  #建议是奇数
 
配置初始 monitor(s)、并收集所有密钥
ceph-deploy mon create-initial
 

赋予管理员权限

使用ceph-deploy拷贝配置文件和admin key到ceph nodes.
ceph-deploy admin k8s1 k8s2 k8s3   ###所有节点
 
确保你对 ceph.client.admin.keyring 有正确的操作权限。
sudo chmod +r /etc/ceph/ceph.client.admin.keyring

部署一个manager daemon. (Luminous开始要求的) 集群

ceph-deploy mgr create k8s1 k8s2 k8s3   ###指定的管理节点或所有节点

创建osd

创建osd有两种方式
1、使用系统裸盘,作为存储空间;
2、使用现有文件系统,以目录或分区作为存储空间,官方建议为 OSD 及其日志使用独立硬盘或分区作为存储空间
 
使用空磁盘创建
可先格式如
ceph-deploy disk zap k8s1 /dev/sdb
ceph-deploy disk zap k8s2 /dev/sdb
ceph-deploy disk zap k8s3 /dev/sdb
 
ceph-deploy osd create k8s1 --data /dev/sdb
ceph-deploy osd create k8s2 --data /dev/sdb
ceph-deploy osd create k8s3 --data /dev/sdb
 
使用目录创建
ssh ceph-k8s1 “mkdir /datal/osd0;chown -R ceph:ceph /data/osd0"
ssh ceph-k8s2 “mkdir /datal/osd1;chown -R ceph:ceph /data/osd1"
ssh ceph-k8s3 “mkdir /datal/osd2;chown -R ceph:ceph /data/osd2"
ceph-deploy osd prepare ceph-k8s1:/data/osd0 ceph-k8s2:/data/osd1 ceph-k8s3:/data/osd2
ceph-deploy osd acivate ceph- k8s1:/data/osd0 ceph-k8s2:/data/osd1 ceph-k8s3:/data/osd2
 
检查集群的健康状况
ceph health等 peering 完成后,集群应该达到 active + clean 状态

开启dashboard(在指定的管理主机上开启)

ceph mgr module enable dashboard

设置dashboardip和端口

ceph config-key put mgr/dashboard/server_addr 192.168.1.21
ceph config-key put mgr/dashboard/server_port 7000