安装ceph集群
环境
# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
# uname -a
Linux k8s-node01 6.2.5-1.el7.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Sat Mar 11 13:24:31 EST 2023 x86_64 x86_64 x86_64 GNU/Linux
主机名 | IP地址 | 部署进程 | 数据盘 |
---|---|---|---|
k8s-node01 | 192.168.1.23 | MON+mgr+OSD | /dev/sdb |
k8s-node02 | 192.168.1.24 | MON+mgr+OSD | /dev/sdb |
k8s-node03 | 192.168.1.25 | MON+mgr+OSD | /dev/sdb |
每个MON都兼职做OSD,所以安装三个ceph节点时需要在上面添加一块磁盘sdb。
系统优化
- 关闭防火墙 selinux
- 配置国内yum源
- 配置hosts文件
# cat /etc/hosts
···
192.168.1.23 k8s-node01
192.168.1.24 k8s-node02
192.168.1.25 k8s-node03
- 配置时钟同步 chrony/ntp
- 配置三台节点双向免密登陆
- 配置ceph使用的yum源
vim /etc/yum.repos.d/ceph.repo
[Ceph]
name=Ceph packages for x86_64
baseurl=http://mirrors.aliyun.com/ceph/rpm-mimic/el7/x86_64/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
[ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS/
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
为防止后续python支持环境出现问题,可以在三个节点上分别运行:
yum install -y python-pip
部署ceph集群
安装部署软件
ceph-deploy是个部署工具,使用它可以实现所有节点同步安装,如果这个工具无法使用,必须在每个节点上分别进行安装过程。
以下仅在 k8s-node01
上执行操作
yum -y install ceph-deploy
创建工作目录
后续进行创建集群、安装软件包、初始化服务、创建OSD等操作时,必须创建工作目录。
mkdir ceph-cluster && cd ceph-cluster
创建群集并安装软件
ceph-deploy new k8s-node01 k8s-node02 k8s-node03
ceph-deploy install k8s-node01 k8s-node02 k8s-node03
初始化部署 monitor
ceph-deploy mon create k8s-node01 k8s-node02 k8s-node03
ceph-deploy mon create-initial
cp ./* /etc/ceph/
ceph mon_status 检查部署情况
共享管理密钥
用 ceph-deploy
把配置文件和 admin
密钥复制到管理节点和 Ceph
节点,这样每次执行 Ceph
命令行时就无须指定 monitor
地址和 ceph.client.admin.keyring
。
ceph-deploy admin k8s-node01 k8s-node02 k8s-node03
修改密钥权限
sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
创建OSD
以下都在k8s-node01上执行
ceph-deploy osd create k8s-node01 --data /dev/sdb
ceph-deploy osd create k8s-node02 --data /dev/sdb
ceph-deploy osd create k8s-node03 --data /dev/sdb
创建完成可以查看OSD
ceph-deploy osd list k8s-node01 k8s-node02 k8s-node03
创建mgr
ceph-deploy mgr create k8s-node01 k8s-node02 k8s-node03
验证测试
ceph health
ceph -s
显示详细信息。如果该简化命令提示错误,则使用ceph-status
时钟同步问题
如果ceph-s显示如下信息。
# ceph -s
health HEALTH WARN
clock skew detected on mon. node2, mon. node 3
Monitor clock skew detected
往往是各节点时钟同步出错。修改ceph1节点的配置文件/etc/ceph/ceph.conf,添加如下内容,将同步时间由默认的0.05s改为1s(或2s)。
[mon]
mon clock drift allowed =1
mon clock drift warn backoff = 30
开启Dashboard
Ceph从 Luminous开始,提供了原生的 Dashboard功能,通过Dashboard可以获取Ceph集群的各种状态信息,从Mimic里实现了Dashboard V2版本,提供了更全面的Ceph展示和管理功能。
- 查看ceph状态
首先查看ceph
状态,找出active
的mgr
,这里active mgr
是k8s-node01
- 启用 dashboard 插件
ceph mgr module disable dashboard
ceph mgr module enable dashboard
- 配置 dashboard 地址和端口
ceph config set mgr mgr/dashboard/server_addr 192.168.1.23
ceph config set mgr mgr/dashboard/server_port 8888
- 关闭HTTPS
ceph config set mgr mgr/dashboard/ssl false
- 查看 dashboard服务
ceph mgr services
- 配置 dashboard 认证密码
# 方式如下:
ceph dashboard set-login-credentials admin 123456 and password updated
# 例:
ceph dashboard set-login-credentials admin 123456
访问ceph的dashboard
生成自签名证书和秘钥
# 未启用 SSL ,查看当前 dashboard 访问 URL
[root@k8s-node01 ~]# ceph mgr services
{
"dashboard": "http://192.168.1.23:8888/"
}
------------------------------------------------------------
# 生成证书
# 生成key pair,并配置给ceph mgr
ceph dashboard create-self-signed-cert
mkdir mgr-dashboard
cd mgr-dashboard/
openssl req -new -nodes -x509 -subj "/O=IT/CN=ceph-mgr-dashboard" -days 3650 -keyout dashboard.key -out dashboard.crt -extensions v3_ca
# 启用 SSL
ceph config set mgr mgr/dashboard/ssl true
# 重启 mgr 服务
systemctl restart ceph-mgr@ceph-mgr1
------------------------------------------------------------
# 启用 SSL ,查看当前 dashboard 访问 URL
[root@k8s-node01 mgr-dashboard]# ceph mgr services
{
"dashboard": "https://192.168.1.23:8888/"
}
列出 ceph 所有模块
ceph mgr module ls
kubernetes部署cephcsi链接外部ceph
https://cloud.tencent.com/developer/article/1927694
https://zhuanlan.zhihu.com/p/585415183?utm_id=0
https://imszz.com/