对于已存在的镜像, 将其部署到服务器中并开始对外服务, 便是它的职责, 而我们要做的便是帮助它完成职责, 前两个应用环节都已产生了相应的镜像, 在这一环节, 将完成服务部署到容器集群的工作, 对于这一过程, 实际执行中有很多种方式, 毕竟一山比一山高, 整个过程比较简单, 镜像以任务形式下发到各容器主机即可, 本次部署过程较为简单, 只作为示例来讲, 无需太多复杂过程, 更强调过程实现.
一, 选用部署方式
在之前的一篇文章: 约定 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 9000:9000 --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.YAML
- $ docker stack deploy --compose-file=portainer-agent-stack.YAML portainer
Portainer 文档:
配置镜像仓库地址: 选中左侧菜单: Registries->Add registry 选择 Custom registry, 添加一个镜像仓库地址, 本次我使用的是腾讯云镜像仓库, 因此仓库地址填写腾讯云仓库地址, 同时使用身份认证, 打开 Authentication 选项, 输入腾讯云提供的账号密码:
腾讯云镜像仓库教程:
二, 完成部署工作
左侧菜单选择 Service, 点击增加一个 Service, 来开始服务部署工作.
然后填写一系列信息, 如服务名称, 镜像名称及版本号, 选择镜像仓库地址, 在 Scheduling mode 处如果选择 Relicated 则填写实例数量, 可用于动态控制, 如果选择 Global 则一台容器主机生成一个容器, 填写对外端口 (推荐填写), 不填则会被默认分配端口, 开启钩子, 当镜像版本进行更新后, 通过生成的 Url 地址可以控制自动更新服务, 对于访问可以控制.
创建完毕, 服务部署便完成了, 点击左侧 Swarm 菜单可以查看集群及服务运行情况. 通过其它操作, 如动态扩容, 版本更新, 版本回滚等操作, 完成对服务的控制.
至此, 服务部署到容器集群中算是完成了, 操作过程较为简单, 或许对于现有出色的生成流水线, 如 Azure DevOps 等来讲, 遥不可及, 算是完成了一定的功能, 旨在掌握整个生成流水线的过程, 重在学习!.
本文地址: https://www.cnblogs.com/CKExp/p/10158970.html
来源: http://www.bubuko.com/infodetail-2894285.html