Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1730718
  • 博文数量: 150
  • 博客积分: 660
  • 博客等级: 上士
  • 技术积分: 2480
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-08 11:39
文章分类

全部博文(150)

文章存档

2019年(4)

2018年(36)

2017年(53)

2016年(7)

2015年(3)

2014年(3)

2013年(27)

2012年(2)

2011年(1)

2006年(1)

2005年(13)

分类: 系统运维

2017-03-27 17:17:49

docker swarm mode 安装及使用

硬件

3台 Dell R610 2*2.4G cpu、32G RAM  raid10 500G disk

系统

cobbler 安装  centos7.2  升级到7.3
192.168.1.171       swarm1
192.168.1.172       swarm2
192.168.1.173       swarm3

软件版本

docker版本: 1.13
存储模式:overlay 
本地数据挂载目录:/docker

后端存储

采用ceph作为存储,所有docker node都挂载 cephfs,关于ceph的安装配置,另外介绍
统一挂载点 /mnt/cephfs

3台manager+worker

安装过程

删除自带centos自带docker

yum remove docker  -y 
yum remove docker-selinux -y
yum remove docker-common -y

安装yum工具

yum install yum-utils  -y

安装docker

yum-config-manager  --add-repo  \   engine/installation/linux/repo_files/centos/docker.repo

yum -y check-update

yum -y install docker-engine

salt安装

rpm --import 
vi /etc/yum.repos.d/saltstack.repo 保存下面配置内容
[saltstack-repo]
name=SaltStack repo for RHEL/CentOS $releasever
baseurl=
enabled=1
gpgcheck=1
gpgkey=/SALTSTACK-GPG-KEY.pub 

yum clean expire-cache
yum update
yum install -y salt-master  #只有master需要安装
yum install -y salt-minion
systemctl enable salt-master.service #只有master需要
systemctl enable salt-minion.service
systemctl start salt-master
systemctl start slat-minion

salt master 配置

默认配置

salt minion 配置

增加本地dns一条 salt的项目 
192.168.1.171 salt

在172 和173 上执行上述salt的安装和配置

master接受minion的key

salt-key -A

master测试minion的连通性

salt '*' test.ping

三台机器之间免密码登录

ssh-keygen 生成公钥和秘钥;
三台id_rsa.pub 生成authorized_keys文件内容

配置docker存储方式为overlay

创建独立的逻辑卷来存储docker数据

ssm create -s 200g -n docker /docker   --fstype xfs   -p centos

修改docker服务文件使用逻辑卷

vi /usr/lib/systemd/system/docker.service
[Service]
Type=notify
将 ExecStart=/usr/bin/dockerd
替换成 ExecStart=/usr/bin/dockerd --graph=/docker --storage-driver=overlay

重启docker

systemctl stop docker
systemctl daemon-reload
systemctl start docker

使用slat执行swarm2和swarm3的修改

swarm集群创建

swarm1上初始化集群

[root@swarm1 .ssh]# docker swarm init --advertise-addr 192.168.1.171
Swarm initialized: current node (ntn0366tqmhz04214rmcc4896) is now a manager.

To add a worker to this swarm, run the following command:

docker swarm join \
--token     SWMTKN-1-1q6hll9aryxj6cqqfl9xtfuosbk9w6myqb2jgvuyh5e6oxd291-21fuwop90otqxtyb2rb7gv0mr \
192.168.1.171:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

增加第二台manager

[root@swarm1 ~]# docker swarm join-token manager
To add a manager to this swarm, run the following command:

docker swarm join \
--token SWMTKN-1-1q6hll9aryxj6cqqfl9xtfuosbk9w6myqb2jgvuyh5e6oxd291-3m6r907ahq8afs4y4wop018je \
192.168.1.171:2377

swarm2上运行

[root@swarm2 ~]# docker swarm join \
> --token SWMTKN-1-1q6hll9aryxj6cqqfl9xtfuosbk9w6myqb2jgvuyh5e6oxd291-3m6r907ahq8afs4y4wop018je \
> 192.168.1.171:2377
This node joined a swarm as a manager.

swarm3上运行

[root@swarm3 ~]#  docker swarm join \
>     --token SWMTKN-1-1q6hll9aryxj6cqqfl9xtfuosbk9w6myqb2jgvuyh5e6oxd291-3m6r907ahq8afs4y4wop018je \
>     192.168.1.171:2377
This node joined a swarm as a manager.

验证创建的swarm集群

[root@swarm3 ~]# docker node ls
ID                           HOSTNAME  STATUS                   AVAILABILITY  MANAGER STATUS
2m1kjdmptp9lj2rd3wm7zsl8w    swarm2    Ready                    Active        Reachable
9l849vnfolhehp951j1c47sh5 *  swarm3    Ready                    Active        Reachable
ntn0366tqmhz04214rmcc4896    swarm1    Ready                    Active  Leader 

集群node降级和删除

docker node demote 0puoe15gsxgu70hrtv79iue07   ## 降级
docker node rm 0puoe15gsxgu70hrtv79iue07       ## 删除
docker swarm join-token manager               ## 显示加入集群命令

需要重新加入集群

docker swarm leave --force   ## 强制离开集群
docker swarm join     --token SWMTKN-1-5s26ikmhftoc15wx2lbo7nhyq0vk4pofyr5iehf453l8qtr5yb-7twhezpnslnhefl54eo68lk35     192.168.1.171:2377   ## 重新加入集群

阅读(2018) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

missing-cn2017-05-15 16:09:48

cubzsd:应该说下架构,操作一定是按架构表达的

说的??,下次会注意:)

回复 | 举报

cubzsd2017-05-13 21:46:24

应该说下架构,操作一定是按架构表达的