分布式文件集群和kubernate

来自ling
跳转至: 导航搜索

基于 GlusterFS 实现 Docker 集群的分布式存储 基于 Ceph RBD 实现 Docker 集群的分布式存储 使用 Docker 部署 Ceph 集群 ceph工作 原理和安装 docker ceph 使用docker 模式 用ceph/daemon部署 ceph 如合通过与Ceph的整合提升Docker存储性能 使用Ceph RBD为Kubernetes集群提供存储卷

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

monitor is not yet in quorum, tries left admin_socket: exception getting command descriptions: [Errno 2] No such file or directory

ERROR: missing keyring, cannot use cephx for authentication

client.admin initialization error (2) No such file or directory