服务部署到Swarm Cluster中
对于已存在的镜像,将其部署到服务器中并开始对外服务,便是它的职责,而我们要做的便是帮助它完成职责,前两个应用环节都已产生了相应的镜像,在这一环节,将完成服务部署到容器集群的工作,对于这一过程,实际执行中有很多种方式,毕竟一山比一山高,整个过程比较简单,镜像以任务形式下发到各容器主机即可,本次部署过程较为简单,只作为示例来讲,无需太多复杂过程,更强调过程实现。
一、选用部署方式
在之前的一篇文章:约定Service构建方式(https://www.cnblogs.com/CKExp/p/9940469.html)中提到了几种部署方式,对于我来讲,比较喜欢"借助工具手动交付"这种形式,一来,无需要面对命令行,借助工具去调用Docker Api,这样对于不太熟练使用的人也可以快速完成服务部署。
这里涉及到Portainer工具的安装,以及Portainer集群管理的安装:
1、单节点安装:Manager节点上安装Portainer,Swarm Cluster中没有Worker节点时直接使用这个即可,访问9000端口,配置账号密码即可管理。
$ docker volume create portainer_data
$ docker run -d -p : --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
2、集群模式下安装,采用docker stack形式,完成所有节点的安装,这样一来可以在Manager节点中统一管理整个集群(推荐)
$ curl -L https://downloads.portainer.io/portainer-agent-stack.yml -o portainer-agent-stack.yml
$ docker stack deploy --compose-file=portainer-agent-stack.yml portainer
Portainer文档:https://portainer.readthedocs.io/en/stable/index.html
配置镜像仓库地址:选中左侧菜单:Registries->Add registry选择Custom registry,添加一个镜像仓库地址,本次我使用的是腾讯云镜像仓库,因此仓库地址填写腾讯云仓库地址,同时使用身份认证,打开Authentication选项,输入腾讯云提供的账号密码:
腾讯云镜像仓库教程:https://cloud.tencent.com/document/product/457/9117
二、完成部署工作
1、创建Service
左侧菜单选择Service,点击增加一个Service,来开始服务部署工作。
然后填写一系列信息,如服务名称、镜像名称及版本号、选择镜像仓库地址,在Scheduling mode处如果选择Relicated则填写实例数量,可用于动态控制,如果选择Global则一台容器主机生成一个容器,填写对外端口(推荐填写),不填则会被默认分配端口,开启钩子,当镜像版本进行更新后,通过生成的Url地址可以控制自动更新服务(重点),镜像仓库大多提供触发器功能,通过镜像仓库中版本的更新,触发服务对新版本的获取从而达到持续部署功能,在腾讯云镜像仓库中提供了这一功能,通过webhook,可以帮我们实现持续部署,因此,当开启了钩子功能后,从代码的更改到镜像的更新再到服务的更新这一整个环节便能很流畅的进行了,当然这个前提是,需要容器集群在腾讯云中部署,如果是混合云等或是没有在腾讯云中建立容器集群,则这一功能是用不了的,只能另想其它办法触发服务更新。
创建完毕,服务部署便完成了,点击左侧Swarm菜单可以查看集群及服务运行情况。通过其它操作,如动态扩容、版本更新、版本回滚等操作,完成对服务的控制。
2、使用WebHook完成镜像更新则立马更新服务
本次我使用腾讯提供的TencentHub中的WebHook功能,腾讯云镜像仓库中的WebHook仅限把服务部署到腾讯云容器服务中,有点局限性,因此将镜像仓库转移到TencentHub中,在Service创建完毕后,得到提供的WebHook回调地址
然后在TencentHub中新增加一个WebHook通知,填写相应的信息和回调地址,选择镜像更新时则触发回调,便可以达到镜像更新则服务更新功能了
至此,服务部署到容器集群中算是完成了,操作过程较为简单,或许对于现有出色的生成流水线,如Azure DevOps等来讲,遥不可及,算是完成了一定的功能,旨在掌握整个生成流水线的过程,重在学习!
本文地址:https://www.cnblogs.com/CKExp/p/10158970.html
欢迎关注微信订阅号,有新的文章将同步到订阅号中
2018-12-23,望技术有成后能回来看见自己的脚步
服务部署到Swarm Cluster中的更多相关文章
- docker微服务部署之:六、Rancher管理部署微服务
docker微服务部署之:五.利用DockerMaven插件自动构建镜像 一. 什么是Rancher Rancher是一个开源的企业级容器管理平台.通过Rancher,企业再也不必自己使用一系列的开源 ...
- Shell脚本实现---Swarm集群部署实例(Swarm Cluster)
Shell脚本实现---Swarm集群部署实例(Swarm Cluster) 一.机器环境(均是centos7.8) IP hostname 角色 192.168.10.200 manager-swa ...
- docker swarm overlay stack 服务部署记录
项目xxx(后端),xxx-ui前端(前后端分离的项目) 依赖mysql,elasticsearch.分别制作了四个镜像来做这件事.希望可以制作跨主机的部署,使用了swarm,以下是学习记录. 参考 ...
- Docker Swarm 集群环境搭建及弹性服务部署
上一篇文章<Docker Swarm 集群管理利器核心概念扫盲>中我们把 Swarm 重要的概念性知识给大家讲解了一波,理论完事就该实战了,这篇文章带大家从零开始,搭建 Docker Sw ...
- SharePoint2010 部署步骤“激活功能”中出现错误:无法启动计算机“PCName”上的服务SPUserCodeV4
在SharePoint2010开发中,选择部署类型为“部署为沙盒解决方案”,在部署代码是出现如下错误提示: 部署步骤“激活功能”中出现错误:无法启动计算机“PCName”上的服务SPUserCodeV ...
- docker微服务部署之:四、安装docker、docker中安装mysql和jdk1.8、手动构建镜像、部署项目
docker微服务部署之:三,搭建Zuul微服务项目 1.Centos7安装Docker 详见:Centos7安装Docker 2.Docker中安装jdk1.8 详见:使用Docker构建jdk1. ...
- 在IIS中部署好WCF服务站点后,本机访问服务无问题,局域网中其他电脑访问不到
1.问题描述 在IIS中部署好WCF服务站点后,本机访问服务无问题,局域网中其他电脑访问不到. 2.解决方法 (1)控制面板 -> Windows防火墙 -> 高级设置 (2)属性 (3) ...
- 基于ArcGIS for Server的服务部署分析 分类: ArcGIS for server 云计算 2015-07-26 21:28 11人阅读 评论(0) 收藏
谨以此纪念去年在学海争锋上的演讲. ---------------------------------------------------- 基于ArcGIS for Server的服务部署分析 -- ...
- Linux服务部署Yapi项目(安装Node Mongdb Git Nginx等)
Linux服务部署Yapi 一,介绍与需求 1,我的安装环境:CentOS7+Node10.13.0+MongoDB4.0.10. 2,首先安装wget,用于下载node等其他工具 yum insta ...
随机推荐
- 从一个微型例子看“C/C++的内存分配机制”和“数组变量名与指针变量名”(转)
C++的内存有五大分区:堆区.栈区.自由存储区.全局/静态存储区.常量存储区. 五个数据段:数据段.代码段.BSS段.堆.栈 内存分配方式有三种: 从静态存储区域分配.内存在程序编译的时候就已经分配好 ...
- [CVPR2017] Deep Self-Taught Learning for Weakly Supervised Object Localization 论文笔记
http://openaccess.thecvf.com/content_cvpr_2017/papers/Jie_Deep_Self-Taught_Learning_CVPR_2017_paper. ...
- [Mysql]——通过例子理解事务的4种隔离级别(转)
SQL标准定义了4种隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的. 低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销. 一.事务隔离级别分类 第1级别:R ...
- mysql 从一个表中查数据,插入另一个表
其实很简单,只是为了忘记,做个记录,用的时候方便. 不管是在网站开发还是在应用程序开发中,我们经常会碰到需要将MySQL或MS SQLServer某个表的数据批量导入到另一个表的情况,甚至有时还需要指 ...
- 使用WampServer和DVWA在Windows10上搭建渗透测试环境
前言: DVWA是一个具有脆弱性的Web测试应用,需要PHP和MySQL的环境支持.我们可以手动配置DVWA所需的运行环境,也可以使用WampServer进行搭建.WampServer是集成了Apac ...
- 聊聊 Spring Boot 2.x 那些事儿
本文目录: 即将的 Spring 2.0 - Spring 2.0 是什么 - 开发环境和 IDE - 使用 Spring Initializr 快速入门 Starter 组件 - Web:REST ...
- 浏览器中缓存Cache
在请求服务器资源时,服务器会将图片.网页文件等资源保存在客户端的临时文件夹中,称为缓存,当浏览器向服务器请求相同的资源时,如果与服务器版本一致,则从缓存读取 Cookie:服务器存放在 ...
- CentOS 6.2+Nginx+Nagios,手机短信和qq邮箱提醒
http://chenhao6.blog.51cto.com/6228054/1323192 标签:软件包 配置文件 nagios 服务端 监控 原创作品,允许转载,转载时请务必以超链接形式标明文章 ...
- Python 文件读写的三种模式和区别
#coding=utf-8 #__author:Administrator #__time:2018/5/9 13:14 #__file_name:text1 import io #能调用方法的一定是 ...
- 【BZOJ 3534】: [Sdoi2014]重建
题目大意:(略) 题解: 相对误差……我好方. 考虑答案应该为所有合法答案概率之和.对于一个合法的生成树,其出现概率应为所有选取边的概率出现的积 乘以 所有未选取边不出现概率的积. 即: $\;\pr ...