coreos集群搭建,以及flannel服务安装和mpi应用测试

本文介绍如何使用Vagrant和VirtualBox搭建CoreOS集群,并安装Flannel服务以支持MPI程序测试。文中详细记录了配置过程及运行MPI应用的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

容器技术已经成为了当前技术的潮流,学习容器技术已经刻不容缓。除了原始的warden容器,docker容器之外,coreos也在发展自己的容器技术,rocket,就连之前不看好容器技术的microsoft也开始创建自己的容器技术,nano server。我们这里尝试搭建coreos集群,并安装了flannel服务,用来实现mpi程序的测试。

  1. 需要的软件支持
    我们采用的是使用vagrant + virtualbox的方式来搭建coreos集群,所以,这两个软件的正确安装是必不可少的。

  2. coreos集群安装
    使用vagrant搭建coreos集群官网,官网上有coreos集群通过vagrant搭建的具体步骤,因为官网是英文的,可能有些同学不习惯看英文,我们这里就简单赘述一下。
    首先,在宿主机目录下,下载coreos-vagrant的git代码,并进入代码目录。
    git clone https://github.com/coreos/coreos-vagrant.git
    cd coreos-vagrant

    接着,我们就可以修改其中的某些参数,来搭建我们的集群了。
    首先,把实例代码拷贝一下,我们这里直接重命名了。
    mv user-data.sample user-data
    mv config.ruby.sample config.ruby

    接着,修改两个文件的参数。打开config.ruby,把里面的
    #$num_instance=1
    改成
    $num_instance=3
    因为我们搭建的集群如果只有一台机器,是没有意义的。
    还有把
    #$update_channel='alpha'
    改成
    $update_channel='stable'
    我们还是使用比较稳定的版本较好,免得出现乱起八糟的问题。
    打开user-data,把里面的
    #discovery: https://discovery.etcd.io/<token>
    改成
    discovery: https://discovery.etcd.io/<token>
    至于是怎么来的,你可以访问这个网址,这个网址可以自动生成一个唯一的,用来达到建立集群的目的。至于这个东西有什么用,可以去查etcd的文档,简单来说,就是每个启动的机器都会去找这个token,找到了,就连接到这个集群中,从而实现集群的建立。
    打开Vagrantfile,修改
    config.vm.box_version ">= 308.0.1"

    #config.vm.box_version ">= 308.0.1"
    就是把他删掉,因为后面可能会报这个错误,这个又不是必须的,我们就直接删掉。
    好了,该修改的都修改了,这个时候,就可以大胆的启动了。
    vagrant up

  3. flannel搭建
    vagrant搭建完成后,我们就可以进入搭建好的coreos主机了。
    vagrant ssh core-01 -- -A
    分别进入三个主机,三个主机的名字分别为core-01,core-02,core-03。现在假如我们进入了core-01。我们可以在里面看到集群中所有的机器。
    fleetctl list-machines
    这里写图片描述
    可以看到,集群中一共有三台机器,ip也都是知道的。接着,让我们来安装flanne服务。
    cd /
    git clone https://github.com/coreos/flannel.git
    mv /flannel /opt
    cd opt
    sudo docker run -v /opt:/opt/flannel -ti google/golang /bin/bash -c "cd /opt/flannel && ./build"

    然后,采用etcd的键值对服务,设置全局子网域。
    etcdctl rm /coreos.com/network --recursive
    etcdctl mk /coreos.com/network/config '{"Network":"10.0.0.0/16"}'

    然后启动flannel服务。注意,我们在启动集群的时候,eth0网卡是通过nat方式和host主机连在一起的,但是,eth1是和别的host主机在同一个局域网的网卡,所以我们在启动flannel服务的时候,要制定eth1网卡。
    sudo /opt/bin/flanneld -iface=eth1 &
    flannel启动。在core-02和core-03上运行相同的过程。但是我们的docker并没有使用指定的子网,所以,我们还要重新运行docker,让他使用我们指定的子网。
    source /run/flannel/subnet.env
    sudo rm /var/run/docker.pid
    sudo ifconfig docker0 ${FLANNEL_SUBNET}
    sudo docker -d --bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU}

    大功告成,检验一下,ifconfig
    这里写图片描述
    这里可以看到,我们的flannel0已经建成。同时
    这里写图片描述
    docker0也已经是我们指定的ip了。

  4. 运行mpi应用测试
    我在dockerhub上上传了一个关于mpi的镜像,我们这里可以下载下来运行一下。
    在core-01上,运行
    sudo docker run -ti --name master hmonkey/openmpi14.04:v3 /bin/bash
    在core-02上运行
    sudo docker run -ti --name slave1 hmonkey/openmpi14.04:v3 /bin/bash
    在core-01上运行
    sudo docker run -ti --name slave2 hmonkey/openmpi14.04:v3 /bin/bash
    然后在core-01上,
    cd /mpi
    touch hostfile
    vi hostfile //在里面添加slave1和slave2的ip地址。
    mpirun -n 3 -hostfile hostfile mpi_hello

    大功告成,结果如下。
    这里写图片描述
    还有就是我的mpi镜像忘记默认启动ssh服务了。如果运行mpi应用的时候包connect refused,把ssh服务打开就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值