docker swarm的应用----docker集群的构建

一、docker安装

这里我们安装docker-ce 的18.03版本

yum    -y remove docker  删除原有版本

#安装依赖包

[root@Docker ~]# yum -y install yum-utils device-mapper-persistent-data lvm2

#添加docker的CE版本的yum源配置文件

[root@Docker ~]# curl   https://download.docker.com/linux/centos/docker-ce.repo    -o      /etc/yum.repos.d/docker-ce.repo

安装CE版本的docker

#yum -y install docker-ce

#启动docker

# systemctl start docker

# systemctl enable docker   #添加开机启动

# docker version #查看docker版本

二、镜像操作

我们查看镜像公有仓库中的镜像,

docker  search  --filter-stars=50  tomcat    #查看镜像仓库中星级在50 以上的tomcat镜像

因为本项目,要用到tomcat镜像,我们下载镜像

docker  pull   tomcat   #tomcat  为镜像地址及仓库和标签

下载后查看一下,docker   images

三、创建容器集群

docker-swarm是基于docker平台实现的集群技术,他可以通过几条简单的指令快速的创建一个docker集群,接着在集群的共享网络上部署应用,最终实现分布式的服务。相比起zookeeper等集群管理框架来说,swarm显得十分轻量,作为一个工具,它把节点的加入、管理、发现等复杂的操作都浓缩为几句简单的命令,并且具有自动发现节点和调度的算法,还支持自定制。使用 Swarm 操作集群,会使用户感觉就像是在一台主机上进行操作。
SwarmKit 将节点分为两类:

工作节点(Worker ):负责通过执行容器运行任务。SwarmKit 的默认执行器为 Docker 容器执行器(Docker Container Executor)。

(1)内建分布式存储,不要额外的数据库

(2)支持 Rolling update

(3 容器高可用

(4)通过 TLS 保证了节点之间通讯的安全

管理节点(Manager ):负责接收和响应用户请求,将集群状态调节到最终状态。在 SwarmKit

中,用户可以动态调整节点的角色,即在 Manager 和 Worker 之间转换。

实验环境:

这里选择三台主机运行 Swarm,依次为:

node1 192.168.1.23

node2 192.168.1.27

node3 192.168.1.28

基本环境配置

3 台主机确保时间一致 ntp

3 台主机均关闭 selinux,开启路由转发。

3 台主机根据上面的实验环境描述修改主机名和 ip 地址

系统环境准备

准备系统环境, 配置 host 列表

3 台主机均修改/etc/hosts 文件,添加所有主机的 ip 地址和主机名的映射记录

以 master 为例子,其他节点同

vim  /etc/hosts

192.168.1.23  master

192.168.1.27  slave1

192.168.1.28  slave2

主要使用三个新的命令行工具创建一个 swarm 集群:

docker swarm 开启 swarm 模式; 加入 Swarm 集群; 配置集群参数

docker node 查询集群节点信息; 提升/移除一个管理节点; 管理 swarm 节点主机

docker service 创建管理 service

在 master 上初始化 swram 集群:

注意:你只需要在一个 master 上初始化 swarm 集群,其他 node 加入这个集群就行了, 所以运行.

docker   swarm  init  --advertise-addr  192.168.1.23:2377

根据命令的提示:

以manager服务器角色加入 swarm 集群需要运行如下命令:

先docker  swarm join-token  manager  获取manager的token,再执行以下命令:

docker swarm  join 加入到 master创建的集群

我们以其他节点服务器,以 worker 角色加入 swarm 集群需要运行如下命令:

先docker  swarm join-token  worker  获取worker的token,再执行以下命令:

docker swarm  join 加入到 master创建的集群

查看 swarm 集群 node 列表

我们一共要加入两台,然后我们再看节点情况
docker   node  ls

一共是三个,一个master, 两个从节点

集群创建完毕

四、在 swarm 集群上运行 docker 应用

概念解释:service

Docker swarm 引入了服务的概念,一个服务由多个任务组成,一个任务即一个运行的容器。

下面我们可以使用之前 pull的 tomcat 镜像启动服务,

docker service create --replicas 2 --name judge_swarm -p 8080:8080 --network=swarm_test   tomcat

docker service create 命令创建一个 service.

--name 标签命名 service 为 judge_swarm

--replicas 标签来声明 2 个运行实体(即容器副本数)

 使用 docker service ls 查看服务

 我们到各个节点上去看,docker  ps -a

可以看到

 每个节点上启动了一个容器实例,我们更改容器内 tomcat 服务的主页

docker  exec  -it  21b   /bin/bash

docker cp    index.jsp   21b:/usr/local/tomcat/webapps/web

docker  cp  server.xml   21b:/usr/local/tomcat/conf/

让每个tomcat容器实例显示不同的网页,在浏览器上输入 http://master  ip:8080/web

 刷新界面可以看到服务是轮询显示页面的,也就是该集群实现了负载均衡。

同时,如果负载过大,我们还可以拓展该服务上的容器实例,本例拓展为4个,

docker  service  scale   judge_swarm=4

管理器会根据节点情况,在不同节点另外启动两个实例

本案例是在master 上启动了两个容器实例

 

 docker   swarm  的应用,器群部署完毕。

 

 

转载于:https://www.cnblogs.com/mushou/p/9508450.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/279558.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序 fire_如何在Fire TV和Fire TV Stick上侧面加载应用程序

微信小程序 fireAmazon’s Fire TV and Fire TV stick technically runs Android…but you wouldn’t know it from looking. Amazon has a wall of content for its set-top box, and doesn’t want Google (with its own competing platform) to crash the party. But even t…

PS 技巧

1. 钢笔的使用: 扣完一圈以后,按Ctrl回车键,会出现蚂蚁线,然后按CtrlJ 是复制扣出来的图层,右下角的框里会出现一个新图层,注意每个图层前边有一个小框,点一下是出现眼睛就可以显示该图层在中央…

Ibatis - Open quote is expected for attribute {1} associated with an element type '

昨天晚上提交的代码,今天运行起来,始终报错: Open quote is expected for attribute "{1}" associated with an element type id,查了半天,觉得很奇怪。 回滚到昨天的代码,运行正常。经过compare代码&#…

Linux系统运维之路

九月份开始,半年内搞定运维,博客会慢慢的更新,vim编辑器,Nginx配置文件优化 运维基础 运维基础-Linux发展史、安装、基本操作 运维基础-用户和组管理 运维基础-文件权限管理 运维基础-进程管理 运维基础-IO 管道 运维基础-查找压…

设备无法获得谷歌运行怎么办_因此,您刚刚获得了Google主页。 怎么办?

设备无法获得谷歌运行怎么办So you scored a Google Home for Christmas. That’s awesome because this is a killer little smart speaker that can do a lot of different things—in fact, it can be a little overwhelming. The good news is that we’ve got you covered…

IDEA Maven创建多个Module相互依赖

1、前言 在大型企业项目中,系统架构复杂多变,一个项目根本无法支撑起所有业务。为了提高项目扩展性、灵活性、重用性,封装性,将项目分为多个Module是非常必要的。 这里就不说IDEA如何安装了,安装好IDEA后需要修改maven…

速达5000出现计算成本数据溢出的问题

算成本提示某货品成本溢出处理方法,该问题是由于货品成本异常,成本上亿或者负亿造成的; 1.首先通过语句:select * into tmp_goods from l_goods where ABS(aprice)>100000,把成本价格超过10万的货品资料取出&#x…

Win32页上的所有控件属性与方法

Win32页上的所有控件。该页控件是在32位Win系统中的一些基本控件,如果你选择开发CLX程序,则在控件面板上不会显示该页TTabControl属性DisplayRect:只定该控件客户区的一个矩形HotTrack:设置当鼠标经过页标签时,它的字是…

收银员英文缩写_如何在没有收银员的苹果商店购买东西

收银员英文缩写If you visit an Apple Store in the hopes of buying a new iPhone, iPad, or MacBook, you have to talk to an Apple employee, since all the expensive products are kept in the back. However, if it’s just an accessory you want, you can buy it with…

上传文件 connection reset

适用于:Windows 7,Windows Server 2003,Windows Server 2008,Windows Server 2008 R2,Windows Vista 由于FTP的工作方式,在防火墙后面的服务器上使用文件传输协议(FTP)服务会产生一系…

分区表备份工具下载

分区表一般很少被破坏,然而一旦出问题,想要恢复卷上的数据就非常麻烦。这个工具软件是我以前经常用的,卷分区被误删除后可在几分钟内得到恢复,非常方便。使用说明请参见:[url]http://www.sansky.net/html/2007-05-23-4…

【PaddlePaddle系列】报错解决方法合集 (不定时更新)

1、PaddlePaddle使用CPU时正常运行&#xff0c;但是使用GPU时却报出一堆错误信息&#xff0c;节选如下&#xff1a; paddle.fluid.core.EnforceNotMet: enforce allocating < available failed, 1835602936 > 1651048192at [/paddle/paddle/fluid/platform/gpu_info.cc:1…

算法:前K个最大的元素

前几天&#xff0c;阮一峰 和 winter 在前端九部组织了一个互面小组&#xff0c;目的是为了分享和解答面试遇到的面试题&#xff0c;感兴趣的可以了解一下。 下面我就把我回答的一个问题整理出来分享给大家。 问题描述 题目是&#xff1a;算法&#xff0c;前 K 个最大的元素。 …

php表单提交完返回,表单内容不清空解决方法

2019独角兽企业重金招聘Python工程师标准>>> 我们经常在注册的时候&#xff0c;填写一大推信息以后在提交注册的时候&#xff0c;因为某一项信息不正确&#xff0c;在返回的时候之前的填写的内容全部没有了&#xff0c;这样会导致用户丧失再次填写的信息&#xff0c…

es6拼接字符串的方式。

文章&#xff1a;es6拼接字符串的方式。转载于:https://www.cnblogs.com/Tpf386/p/9519007.html

word标尺灰色_如何在Microsoft Word中使用标尺

word标尺灰色Word’s rulers let you control the margins of your page and the indentation of paragraphs. They’re great for precisely lining up images, text, and other elements. If you’re printing a document, the rulers can help ensure that what you see on …

drools简单应用

当某个服务的需求经常变的时候&#xff0c;如果使用了硬编码的方式进行开发会是一件非常麻烦的事。 最近在对项目的积分模块进行改造的时候想到了规则引擎&#xff0c;使用规则引擎处理复杂而且多变的业务逻辑有其非常大的优势&#xff0c;包括实时更新、性能等方面。 不多说&a…

31 天重构学习笔记28. 为布尔方法命名

摘要&#xff1a;由于最近在做重构的项目&#xff0c;所以对重构又重新进行了一遍学习和整理&#xff0c;对31天重构最早接触是在2009年 10月份&#xff0c;由于当时没有订阅Sean Chambers的blog&#xff0c;所以是在国外的社区上闲逛的时候链接过去的。记得当时一口气看完了整…

Matplotlib学习---用matplotlib画误差线(errorbar)

误差线用于显示数据的不确定程度&#xff0c;误差一般使用标准差&#xff08;Standard Deviation&#xff09;或标准误差&#xff08;Standard Error&#xff09;。 标准差&#xff08;SD&#xff09;&#xff1a;是方差的算术平方根。如果是总体标准差&#xff0c;那么用σ表示…

关于自增id 你可能还不知道

导读&#xff1a;在使用MySQL建表时&#xff0c;我们通常会创建一个自增字段(AUTO_INCREMENT)&#xff0c;并以此字段作为主键。本篇文章将以问答的形式讲述关于自增id的一切。 注&#xff1a; 本文所讲的都是基于Innodb存储引擎。 1.MySQL为什么建议将自增列id设为主键&#x…