分布式文件集群和kubernate
基于 GlusterFS 实现 Docker 集群的分布式存储 基于 Ceph RBD 实现 Docker 集群的分布式存储 使用 Docker 部署 Ceph 集群 ceph工作 原理和安装 docker ceph 使用docker 模式 用ceph/daemon部署 ceph 如合通过与Ceph的整合提升Docker存储性能 使用Ceph RBD为Kubernetes集群提供存储卷
目录
- 1 ceph
- 2 问题处理
- 2.1 [ceph_deploy][ERROR ] RuntimeError: Failed to execute command: rpm -Uvh --replacepkgs http://ceph.com/rpm-hammer/el7/noarch/ceph-release-1-0.el7.noarch.rpm
- 2.2 monitor is not yet in quorum, tries left admin_socket: exception getting command descriptions: [Errno 2] No such file or directory
- 2.3 ERROR: missing keyring, cannot use cephx for authentication
- 2.4 client.admin initialization error (2) No such file or directory
ceph
/etc/hostname /etc/hosts 设置
admin-node, deploy-node(ceph-deploy):106.14.12.142 ling2cn mon.node1,(mds.node1): 106.14.12.142 ling2cn osd.0: 106.14.12.142 ling2cn osd.1: 101.132.191.22 102010top
ling2cn
tee /etc/hostname <<-'EOF'
ling2cn
EOF
tee /etc/hosts <<-'EOF'
127.0.0.1 localhost
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.19.154.195 iZuf658obmsge7tzo8o2ekZ
127.0.0.1 www.ling2.cn
127.0.0.1 master
106.14.12.142 ling2cn
101.132.191.22 102010top
47.254.22.151 102010wang
EOF
102010top
tee /etc/hostname <<-'EOF'
102010top
EOF
tee /etc/hosts <<-'EOF'
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 www.102010.top
101.132.191.22 102010top
106.14.12.142 ling2cn
47.254.22.151 102010wang
EOF
安装ceph-deploy
ling2cn上安装ceph-deploy
yum -y install ceph-deploy
所有主机设置无密码登录用户
- 输入密码这里建议三台服务器密码设为一致
useradd -d /home/cephd -m cephd passwd cephd
userdel -r cephd
- 授予无密码sudo权限
echo "cephd ALL = (root) NOPASSWD:ALL" >> /etc/sudoers.d/cephd chmod 0440 /etc/sudoers.d/cephd
- 在admin node(deploy node)上,登入cephd账号,创建该账号下deploy node到其他各个Node的ssh免密登录设置,密码留空
ssh-keygen
- 将deploy node的公钥copy到其他节点上去:
ssh-copy-id cephd@102010top ssh-copy-id cephd@ling2cn
ssh 'cephd@102010top'
- 最后,在Deploy node上创建并编辑~/.ssh/config,这是Ceph官方doc推荐的步骤,这样做的目的是可以避免每次执行ceph-deploy时都要去指定 –username {username} 参数。
vi ~/.ssh/config
Host node1
Hostname ling2cn
User cephd
Host node2
Hostname 102010top
User cephd
安装ceph
这个环节参考的是Ceph官方doc手工部署一节。
如果之前安装过ceph,可以先执行如下命令以获得一个干净的环境:
在ling2cn使用cephd账号登录,执行
ceph-deploy purgedata ling2cn 102010top ceph-deploy forgetkeys ceph-deploy purge ling2cn 102010top
接下来我们就可以来全新安装Ceph了。在deploy node上,建立cephinstall目录,然后进入cephinstall目录执行相关步骤
mkdir cephinstall cd cephinstall ceph-deploy new ling2cn
new命令执行完后,ceph-deploy会在当前目录下创建一些辅助文件:
ls ceph.conf ceph-deploy-ceph.log ceph.mon.keyring
cat ceph.conf
[global]
fsid = f5166c78-e3b6-4fef-b9e7-1ecf7382fd93
mon_initial_members = ling2cn
mon_host = 106.14.12.142
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
由于我们仅有两个OSD节点,因此我们在进一步安装之前,需要先对ceph.conf文件做一些配置调整: 修改配置以进行后续安装:
在[global]标签下,添加下面一行:
osd pool default size = 2
ceph.conf保存退出。接下来,我们执行下面命令在node1和node2上安装ceph运行所需的各个binary包:
ceph-deploy install ling2cn 102010top
或所有节点
sudo rpm -ivh http://download.ceph.com/rpm-hammer/el7/noarch/ceph-release-1-1.el7.noarch.rpm sudo yum install ceph ceph-radosgw -y
有了ceph启动的各个程序后,我们首先来初始化ceph cluster的monitor node。在deploy node的工作目录cephinstall下,执行:
ceph-deploy --overwrite-conf mon create-initial
在当前目录下,出现了若干*.keyring,这是Ceph组件间进行安全访问时所需要的:
ls -l total 216
在node1(monitor node)上,我们看到ceph-mon已经运行起来了:
ps -ef|grep ceph
如果要手工停止ceph-mon,可以使用stop ceph-mon-all 命令。
stop ceph-mon-all
问题处理
[ceph_deploy][ERROR ] RuntimeError: Failed to execute command: rpm -Uvh --replacepkgs http://ceph.com/rpm-hammer/el7/noarch/ceph-release-1-0.el7.noarch.rpm
https://www.cnblogs.com/yue-hong/p/7170263.html
所有节点
sudo rpm -ivh http://download.ceph.com/rpm-hammer/el7/noarch/ceph-release-1-1.el7.noarch.rpm sudo yum install ceph ceph-radosgw -y