『中级篇』docker-swarm创建一个多节点集群(43)
2018-09-27 01:08:15
李明
  • 访问次数: 379
  • 注册日期: 2018-07-09
  • 最后登录: 2020-03-30

原创文章,欢迎转载。转载请注明:转载自 IT人故事会,谢谢!
原文链接地址: 『中级篇』docker-swarm创建一个多节点集群(43)

docker Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。源码地址: https://github.com/limingios/docker中的No.5

创建3台虚拟机

还是通过vagrant + virtualbox的方式来创建

  • 源码文件夹

16616d98aff421c5?w=861&h=253&f=png&s=257

  • 查看创建虚拟机的源码

# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.require_version ">= 1.6.0" boxes = [     {         :name => "swarm-manager",         :mem => "1024",         :cpu => "1"     },     {         :name => "swarm-worker1",         :mem => "1024",         :cpu => "1"     },     {         :name => "swarm-worker2",         :mem => "1024",         :cpu => "1"     } ] Vagrant.configure(2) do |config|   config.vm.box = "centos/7"   boxes.each do |opts|       config.vm.define opts[:name] do |config|         config.vm.hostname = opts[:name]         config.vm.provider "vmware_fusion" do |v|           v.vmx["memsize"] = opts[:mem]           v.vmx["numvcpus"] = opts[:cpu]         end         config.vm.provider "virtualbox" do |v|           v.customize ["modifyvm", :id, "--memory", opts[:mem]]           v.customize ["modifyvm", :id, "--cpus", opts[:cpu]]         end         config.vm.network :private_network, type: "dhcp"       end   end   config.vm.synced_folder "./labs", "/home/vagrant/labs"   config.vm.provision "shell", privileged: true, path: "./setup.sh" end

16616d98b030b9dc?w=940&h=644&f=png&s=779
16616d98b04b460a?w=1058&h=443&f=png&s=17
16616d98b0c0cd47?w=609&h=169&f=png&s=179
16616d98b10d4263?w=864&h=221&f=png&s=740

用SecureCRT连接着3个虚拟机
  • 查看每个虚拟机的ip地址

vagrant ssh swarm-manager #swarm-manager的ip是172.28.128.3 ip a

16616d98b1590514?w=1157&h=410&f=png&s=25
16616d98dba432a2?w=1099&h=579&f=png&s=55

vagrant ssh swarm-worker1 #swarm-worker1的ip是172.28.128.4 ip a

16616d98dfe50792?w=1240&h=412&f=png&s=28
16616d98e4c08d1b?w=1236&h=590&f=png&s=54

vagrant ssh swarm-worker2 #swarm-worker2的ip是172.28.128.5 ip a

16616d98e5526444?w=1240&h=402&f=png&s=26
16616d98e57630cd?w=1240&h=566&f=png&s=17
16616d98eb4dd156?w=1240&h=424&f=png&s=12

创建docker-swarm集群
  1. swarm-manager 建立manager

 sudo docker swarm init --help  sudo docker swarm init --advertise-addr=172.28.128.3

16616d990e8a4348?w=1240&h=290&f=png&s=63
16616d99101c5da2?w=1240&h=128&f=png&s=30

  1. swarm-worker1 和 swam-worker2 连接manager

sudo service docker restart docker swarm join --token SWMTKN-1-1vafvfucsur6iqd6ba5i2njty6djvzxnhwefsmar4sivcg8isi-dgm1aigtcu1rtotfc8y43j17m 172.28.128.3:2377

image.png
image.png

  1. swarm-manager 查看连接状态

docker node ls

16616d9914bbb37b?w=1240&h=82&f=png&s=184

PS:这样基本上通过docker-swarm完成集群管理。 image