阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Docker进阶-资源管理Swarm+Portainer

149次阅读
没有评论

共计 2000 个字符,预计需要花费 5 分钟才能阅读完成。

Docker Swarm 资源管理

Docker Swarm 是 Docker 官方三剑客项目之一,提供 Docker 容器集群服务,是 Docker 官方对容器云生态进行支持的核心方案。

使用它,用户可以将多个 Docker 主机封装为单个大型的虚拟 Docker 主机,快速打造一套容器云平台。

注意:Docker1.12.0 之后版本,Swarm 模块已经内嵌入 Docker 引擎,成为 Docker 子命令 docker swarm, 绝大多用户已经开始使用 Swarm 模块,Docker 引擎 API 已经删除 Docker Swarm。

基本概念

Swarm 是使用 SwarmKit 构建的 Docker 引擎内置 (原生) 的集群管理和编排工具。使用 Swarm 集群之前需要了解以下几个概念。

节点

运行 Docker 的主机可以主动初始化一个 Swarm 集群或者加入一个已存在的 Swarm 集群,这样运行 Docker 的主机就成为一个 Swarm 集群的节点(node)。

节点分为管理 (manager) 节点和工作 (worker) 节点。

  • 管理节点用于 Swarm 集群的管理,docker swarm 集合基本只能在管理节点执行。
  • 工作节点是任务执行节点,管理节点将服务 (service) 下发至工作节点执行。

集群中管理节点与工作节点的关系

Docker 进阶 - 资源管理 Swarm+Portainer

服务和任务

任务 (Task) 是 Swarm 中的最小的调度单位,目前来说就是一个单一的容器。
服务 (Services) 是指一组任务的集合,服务定义了任务的属性。

服务有两种模式:

  • replicated services 按照一定规则在各个工作节点上运行指定个数的任务。
  • global services 每个工作节点运行一个任务

两个模式通过 docker service create 的 –mode 参数指定

容器、任务、服务的关系

Docker 进阶 - 资源管理 Swarm+Portainer

创建 Swarm 集群

了解 Swarm 集群由管理节点和工作节点组成后,我们创建一个包含一个管理节点和两个工作节点的最小 Swarm 集群。

初始化集群

使用 docker swarm init 在本地初始化一个 Swarm 集群。

docker swarm init --advertise-addr 192.168.1.1

如果你的 Docker 主机有多个网段,拥有多个 IP,必须使用 –advertise-addr 指定 IP。执行 docker swarm init 命令的节点自动成为管理节点。

注意:使用 docker swarm init

Docker 进阶 - 资源管理 Swarm+Portainer

增加工作节点

在另外两台服务器上执行上一步创建管理节点时候的输出的加入 swarm 集群的全集

docker swarm join \
--token SWMTKN-1-3pu6hszjas19xyp7ghgosyx9k8atbfcr8p2is99znpy26u2lkl-1awxwuwd3z9j1z3puu7rcgdbx \ 
192.168.1.1:2377

查看集群

在管理节点使用 docker node ls 查看集群。

docker node ls

Docker 进阶 - 资源管理 Swarm+Portainer

部署服务

使用 docker service 命令来管理 Swarm 集群中的服务,该命令只能在管理节点运行。

新建服务

在创建好的 Swarm 集群中运行 nginx 服务

docker service create --replicas 3 -p 80:80 --name nginx nginx:latest

Docker 进阶 - 资源管理 Swarm+Portainer

Docker 进阶 - 资源管理 Swarm+Portainer

现在我们使用浏览器,输入任意节点 IP,即可看到 nginx 默认页面。

Docker 进阶 - 资源管理 Swarm+Portainer

查看服务

查看当前 Swarm 集群运行的服务

docker service ls

查看某个服务的详情

docker service ps nginx

查看某个服务的日志

docker service logs nginx

删除服务

从 Swarm 集群中移除某个服务

docker service rm nginx

资源管理

前面利用 Docker Swarm 快速搭建一个最小集群,也可以在集群上部署服务,但是会发现 swarm 中并没有提供统一入口查看节点的资源使用情况。这时我们可以用图形化管理工具 Portainer 帮我们管理 swarm 集群。

Portainer 是 Docker 的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像、创建容器等操作)、事件日志显示、容器控制台操作、Swarm 集群和服务等集中管理和操作、登陆用户管理和控制等功能。功能十分全面,基本能满足小型单位对容器管理的全部需求。

Portainer 集群运行

下载 Portainer 镜像

# 查询当前有哪些 Portainer 镜像
docker search portainer
docker pull portainer/portainer

安装 Portainer(管理节点)

docker run  -d -p 9000:9000 \
--name portainer --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
portainer/portainer

Docker 进阶 - 资源管理 Swarm+Portainer

Portainer 配置

设置管理员帐号密码

Docker 进阶 - 资源管理 Swarm+Portainer

Portainer 界面内容

Docker 进阶 - 资源管理 Swarm+Portainer

Docker 进阶 - 资源管理 Swarm+Portainer

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2000字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中