k8s--基础--28.2--ceph--单机安装

k8s–基础–28.2–ceph–单机安装


1、机器

IPhostnameCPU内存硬盘说明
192.168.187.156master1-admin2核2G20G管理节点
192.168.187.157node1-monitor2核2G20G监控节点
192.168.187.158node2-osd2核2G20Gosd节点,也就是对象存储节点

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

  1. 扩展知识点,可不做
  2. 因为我这里没有其他机器,只能选择另外2台机器作为osd,实际生产中,应该要有单独机器作为osd
  3. 操作前,请做好机器快照,必须做,防止接下来安装有问题,可以回滚.

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

  1. 扩展知识点,可不做

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

这个是从认证当中去删除这个节点的信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值