k8s--基础--28.2--ceph--单机安装
集群这种状态,如果进行数据的存储和操作,会发现集群卡死,无法响应IO,同时会大面积down。这个一步是告诉mon,这个节点已经不能服务了,需要在其他的osd上进行数据的恢复了。除非你要用iptables,否则可以不用装,我这里是没有安装。HEALTH_OK,说明ceph osd添加成功,可以正常使用。目的: 让我们可以安装ceph-deploy。目的: 让我们可以安装ceph-deploy。目的:
·
k8s–基础–28.2–ceph–单机安装
1、机器
IP | hostname | CPU | 内存 | 硬盘 | 说明 |
---|---|---|---|---|---|
192.168.187.156 | master1-admin | 2核 | 2G | 20G | 管理节点 |
192.168.187.157 | node1-monitor | 2核 | 2G | 20G | 监控节点 |
192.168.187.158 | node2-osd | 2核 | 2G | 20G | osd节点,也就是对象存储节点 |
2、公共操作
各个节点都要操作
2.1、修改主机名
hostnamectl set-hostname master1-admin
hostnamectl set-hostname node1-monitor
hostnamectl set-hostname node2-osd
2.2、修改host文件
cat >> /etc/hosts <<EOF
192.168.187.156 master1-admin
192.168.187.157 node1-monitor
192.168.187.158 node2-osd
EOF
2.3、配置master1-admin到其他节点无密码登陆
在 master1-admin上操作
2.3.1、生成加密信息
cd
ssh-keygen -t rsa
一直回车就可以
2.3.2、将公钥复制到对应的节点上
ssh-copy-id -i .ssh/id_rsa.pub root@node1-monitor
ssh-copy-id -i .ssh/id_rsa.pub root@node2-osd
2.4、安装基础软件包
yum install -y wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release lrzsz openssh-server
yum install -y deltarpm
2.5、关闭firewalld防火墙(三个节点操作)
2.5.1、停止firewalld服务,并禁用
# 停止firewalld服务
systemctl stop firewalld.service
# 禁用firewalld服务
systemctl disable firewalld.service
# 查看状态
systemctl status firewalld.service
2.5.2、安装iptables
除非你要用iptables,否则可以不用装,我这里是没有安装。
2.5.2.1、安装
yum install -y iptables-services
2.5.2.2、禁用iptables
# 停止iptables服务 并 禁用这个服务
service iptables stop && systemctl disable iptables
# 查看状态
service iptables status
2.6、时间同步
2.6.1、在master1-admin上
ntpdate cn.pool.ntp.org
# 启动ntpd,并且设置开机自启动
systemctl start ntpd && systemctl enable ntpd
2.6.2、node1-monitor和node2-osd 同步时间
2.6.2.1、同步master1-admin时间
ntpdate master1-admin
2.6.2.2、定时同步时间
crontab -e
* */1 * * * /usr/sbin/ntpdate master1-admin
2.7、安装epel源
目的: 让我们可以安装ceph-deploy
yum install -y yum-utils
sudo yum-config-manager --add-repo https://dl.fedoraproject.org/pub/epel/7/x86_64/
sudo yum install --nogpgcheck -y epel-release
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
sudo rm /etc/yum.repos.d/dl.fedoraproject.org*
2.8、配置ceph的yum源
目的: 让我们可以安装ceph-deploy
vi /etc/yum.repos.d/ceph.repo
内容
[Ceph]
name=Ceph packages for $basearch
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
[ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/SRPMS/
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
2.9、更新yum源
目的: 让我们可以安装ceph-deploy
yum update -y
3、安装ceph-deploy
3.1、master1-admin
yum install -y ceph-deploy
yum install -y yum-plugin-priorities
3.2、node1-monitor和node2-osd
yum install -y ceph
4、搭建集群
在master1-admin上操作
4.1、创建目录
用于保存ceph-deploy生成的配置文件信息
mkdir -p /root/ceph-deploy
4.2、创建集群和monitor节点
# 进入目录
cd /root/ceph-deploy
# 执行ceph-deploy,生成的配置文件信息
ceph-deploy new node1-monitor
4.3、修改ceph配置文件
vi ceph.conf
内容
[global]
fsid = ea867289-05b7-45e4-8b6b-8be3876859bb
mon_initial_members = node1-monitor
mon_host = 192.168.187.157
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
# 新增,把默认副本数从3改成1,也就是只有1个osd
osd pool default size = 1
4.4、安装ceph集群
# 进入目录
cd /root/ceph-deploy
ceph-deploy install master1-admin node1-monitor node2-osd
4.5、部署初始监视器并收集密钥
ceph-deploy mon create-initial
ll
可以看到生成很多密钥
ceph.bootstrap-mds.keyring # MDS启动key
ceph.bootstrap-mgr.keyring
ceph.bootstrap-osd.keyring # OSD启动key
ceph.bootstrap-rgw.keyring
ceph.client.admin.keyring # 管理员key
ceph.conf
ceph-deploy-ceph.log
ceph.mon.keyring
5、给ceph添加osd,并完成激活
5.1、在node2-osd上操作(对象存储节点)
mkdir /var/local/osd1
chmod 777 /var/local/osd1/
5.2、master1-admin上操作
5.2.1、准备osd
# 进入目录
cd /root/ceph-deploy
ceph-deploy osd prepare node2-osd:/var/local/osd1
5.2.2、激活osd
# 进入目录
cd /root/ceph-deploy
ceph-deploy osd activate node2-osd:/var/local/osd1
6、将配置文件和管理密钥分发到各个ceph节点
6.1、在master1-admin上操作
# 进入目录
cd /root/ceph-deploy
# 把秘钥文件拷贝到管理节点和ceph节点
ceph-deploy admin master1-admin node1-monitor node2-osd
6.2、在 master1-admin node1-monitor node2-osd 上操作
# 给秘钥文件 设置读权限
chmod +r /etc/ceph/ceph.client.admin.keyring
6.3、查看集群健康状态
ceph health
HEALTH_OK,说明ceph osd添加成功,可以正常使用
7、扩容osd,添加两个osd
- 扩展知识点,可不做
- 因为我这里没有其他机器,只能选择另外2台机器作为osd,实际生产中,应该要有单独机器作为osd
- 操作前,请做好机器快照,必须做,防止接下来安装有问题,可以回滚.
7.1、在master1-admin,node1-monitor上操作
# 创建目录
mkdir /var/local/osd1
chmod 777 /var/local/osd1/
7.2、在master1-admin上操作
# 进入目录
cd /root/ceph-deploy
# 准备osd
ceph-deploy osd prepare master1-admin:/var/local/osd1
ceph-deploy osd prepare node1-monitor:/var/local/osd1
# 激活osd
ceph-deploy osd activate master1-admin:/var/local/osd1
ceph-deploy osd activate node1-monitor:/var/local/osd1
7.3、查看集群健康状态
ceph health
7.4、问题
7.4.1、too few PGs per OSD (21 < min 30)
集群这种状态,如果进行数据的存储和操作,会发现集群卡死,无法响应IO,同时会大面积down。
解决
可以回滚快照,所有osd节点执行下面命令
ceph osd pool set rbd pg_num 64
8、缩容osd,删除两个osd
- 扩展知识点,可不做
8.1、查看osd
ceph osd tree
8.2、停掉osd进程
systemctl stop ceph-osd@1
systemctl stop ceph-osd@2
8.3、将节点标记成out,down
ceph osd out 1
ceph osd out 2
ceph osd down 1
ceph osd down 2
这个一步是告诉mon,这个节点已经不能服务了,需要在其他的osd上进行数据的恢复了
8.4、从crush移除节点
ceph osd crush remove osd.1
ceph osd crush remove osd.2
8.5、删除节点
ceph osd rm 1
ceph osd rm 2
8.6、删除节点认证
ceph auth del 1
ceph auth del 2
这个是从认证当中去删除这个节点的信息
更多推荐
已为社区贡献55条内容
所有评论(0)