当前位置: 首页 > news >正文

fqapps网站建设湖南优化推广

fqapps网站建设,湖南优化推广,红色网站源码,网页版wordpress教程视频Docker Swarm 基本概念 Swarm是使用SwarmKit构建的 Docker 引擎内置(原生)的集群管理和编排工具。Docker Swarm是 Docker 官方三剑客项目之一,提供 Docker 容器集群服务,是 Docker 官方对容器云生态进行支持的核心方案。 使用它…

Docker Swarm

基本概念

Swarm是使用SwarmKit构建的 Docker 引擎内置(原生)的集群管理和编排工具。Docker Swarm是 Docker 官方三剑客项目之一,提供 Docker 容器集群服务,是 Docker 官方对容器云生态进行支持的核心方案。

使用它,用户可以将多个 Docker 主机封装为单个大型的虚拟 Docker 主机,快速打造一套容器云平台。Swarm mode 内置 kv 存储功能,提供了众多的新特性,比如:具有容错能力的去中心化设计、内置服务发现、负载均衡、路由网格、动态伸缩、滚动更新、安全传输等。使得 Docker 原生的 Swarm 集群具备与MesosKubernetes竞争的实力。使用 Swarm 集群之前需要了解以下几个概念。

节点

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

管理节点用于Swarm集群的管理,docker swarm命令基本只能在管理节点执行(节点退出集群命令docker swarm leave可以在工作节点执行)。一个 Swarm 集群可以有多个管理节点,但只有一个管理节点可以成为leader,leader 通过raft协议实现。

工作节点是任务执行节点,管理节点将服务 (service) 下发至工作节点执行。管理节点默认也作为工作节点。你也可以通过配置让服务只运行在管理节点。来自Docker官网的这张图片形象的展示了集群中管理节点与工作节点的关系。
在这里插入图片描述

​​

服务和任务

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

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

两种模式通过docker service create--mode参数指定。来自 Docker 官网的这张图片形象的展示了容器、任务、服务的关系。
在这里插入图片描述
​​

初始化集群

我们这里利用上一节的docker machine来充当集群的主机,首先先创建一个manager节点,然后在该节点上执行初始化集群命令:

☁  ~  docker-machine create -d virtualbox manager
Running pre-create checks...
Creating machine...
(manager) Copying /Users/ych/.docker/machine/cache/boot2docker.iso to /Users/ych/.docker/machine/machines/manager/boot2docker.iso...
(manager) Creating VirtualBox VM...
(manager) Creating SSH key...
(manager) Starting the VM...
(manager) Check network to re-create if needed...
(manager) Waiting for an IP...
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with boot2docker...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
Checking connection to Docker...
Docker is up and running!
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env manager
☁  ~  docker-machine env manager
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.101:2376"
export DOCKER_CERT_PATH="/Users/ych/.docker/machine/machines/manager"
export DOCKER_MACHINE_NAME="manager"
# Run this command to configure your shell:
# eval $(docker-machine env manager)
☁  ~  eval $(docker-machine env manager)
☁  ~  docker-machine ssh manager##         .## ## ##        ==## ## ## ## ##    ===/"""""""""""""""""\___/ ===~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~\______ o           __/\    \         __/\____\_______/_                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 18.03.1-ce, build HEAD : cb77972 - Thu Apr 26 16:40:36 UTC 2018
Docker version 18.03.1-ce, build 9ee9f40
docker@manager:~$ docker swarm init --advertise-addr 192.168.99.101
Swarm initialized: current node (3gsjpckj5ag1vvdg44fgzylow) is now a manager.To add a worker to this swarm, run the following command:docker swarm join --token SWMTKN-1-1aqikkhsz91l4n7k9ig3xinjz0iv0fh4gcrlhp9mk3643rblca-aqgqldlrw33k8heiao7yx27w5 192.168.99.101:2377To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

执行docker swarm init命令的节点自动成为管理节点。

增加工作节点

管理节点初始化完成后,然后同样的用docker-machine创建工作节点,然后将其加入到管理节点之中去即可:

☁  ~  docker-machine create -d virtualbox worker1
Running pre-create checks...
Creating machine...
(worker1) Copying /Users/ych/.docker/machine/cache/boot2docker.iso to /Users/ych/.docker/machine/machines/worker1/boot2docker.iso...
(worker1) Creating VirtualBox VM...
(worker1) Creating SSH key...
(worker1) Starting the VM...
(worker1) Check network to re-create if needed...
(worker1) Waiting for an IP...
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with boot2docker...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
Checking connection to Docker...
Docker is up and running!
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env worker1☁  ~  docker-machine ssh worker1##         .## ## ##        ==## ## ## ## ##    ===/"""""""""""""""""\___/ ===~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~\______ o           __/\    \         __/\____\_______/_                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 18.03.1-ce, build HEAD : cb77972 - Thu Apr 26 16:40:36 UTC 2018
Docker version 18.03.1-ce, build 9ee9f40
docker@worker1:~$ docker swarm join --token SWMTKN-1-1aqikkhsz91l4n7k9ig3xinjz0iv0fh4gcrlhp9mk364
3rblca-aqgqldlrw33k8heiao7yx27w5 192.168.99.101:2377
This node joined a swarm as a worker.

我们可以看到上面的提示信息:This node joined a swarm as a worker.,表明节点已经加入到swarm集群之中了。

查看集群

经过上边的两步,我们已经拥有了一个最小的 Swarm 集群,包含一个管理节点和两个工作节点。

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

☁  ~  docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
3gsjpckj5ag1vvdg44fgzylow *   manager             Ready               Active              Leader              18.03.1-ce
cxmj5lr0vbwo1em9y9oang5m8     worker1             Ready               Active                                  18.03.1-ce
ksruum3uc1c265ywm4kn9a88g     worker2             Ready               Active                                  18.03.1-ce
☁  ~  docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
☁  ~  docker service create --replicas 3 -p 80:80 --name nginx nginx:1.13.7-alpine
4k9cbna8ive87p4or9mny9kfs
overall progress: 3 out of 3 tasks
1/3: running   [==================================================>]
2/3: running   [==================================================>]
3/3: running   [==================================================>]
verify: Service converged☁  ~  docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER        ERRORS
manager   *        virtualbox   Running   tcp://192.168.99.101:2376           v18.03.1-ce
worker1   -        virtualbox   Running   tcp://192.168.99.102:2376           v18.03.1-ce
worker2   -        virtualbox   Running   tcp://192.168.99.103:2376           v18.03.1-ce
☁  ~  docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE                 PORTS
4k9cbna8ive8        nginx               replicated          3/3                 nginx:1.13.7-alpine   *:80->80/tcp
☁  ~  docker service ps nginx
ID                  NAME                IMAGE                 NODE                DESIRED STATE       CURRENT STATE                ERROR               PORTS
r7hmzkqsri8p        nginx.1             nginx:1.13.7-alpine   worker1             Running             Running about a minute ago
y0xgrfwmjfrj        nginx.2             nginx:1.13.7-alpine   worker2             Running             Running about a minute ago
j8k7be8xkbg3        nginx.3             nginx:1.13.7-alpine   manager             Running             Running about a minute ago

使用docker service logs来查看某个服务的日志。

☁  ~  docker service logs nginx

使用docker service rm来从 Swarm 集群移除某个服务:

☁  ~  docker service rm nginx
nginx

正如之前使用docker-compose.yml来一次配置、启动多个容器,在Swarm集群中也可以使用compose文件(docker-compose.yml)来配置、启动多个服务。

上一节中,我们使用docker service create一次只能部署一个服务,使用docker-compose.yml我们可以一次启动多个关联的服务。

我们以在Swarm集群中部署WordPress为例进行说明:(docker-compose.yml)

version: "3"services:wordpress:image: wordpressports:- 80:80networks:- overlayenvironment:WORDPRESS_DB_HOST: db:3306WORDPRESS_DB_USER: wordpressWORDPRESS_DB_PASSWORD: wordpressdeploy:mode: replicatedreplicas: 3db:image: mysqlnetworks:- overlayvolumes:- db-data:/var/lib/mysqlenvironment:MYSQL_ROOT_PASSWORD: somewordpressMYSQL_DATABASE: wordpressMYSQL_USER: wordpressMYSQL_PASSWORD: wordpressdeploy:placement:constraints: [node.role == manager]visualizer:image: dockersamples/visualizer:stableports:- "8080:8080"stop_grace_period: 1m30svolumes:- "/var/run/docker.sock:/var/run/docker.sock"deploy:placement:constraints: [node.role == manager]volumes:db-data:
networks:overlay:

其中**constraints: [node.role == manager]**是调度策略,文档地址:https://docs.docker.com/swarm/scheduler/filter/

在 Swarm 集群管理节点新建该文件,其中的 visualizer 服务提供一个可视化页面,我们可以从浏览器中很直观的查看集群中各个服务的运行节点。

在 Swarm 集群中使用 docker-compose.yml 我们用docker stack命令,下面我们对该命令进行详细讲解。

部署服务

部署服务使用docker stack deploy,其中-c参数指定 compose 文件名。

$ docker stack deploy -c docker-compose.yml wordpress

查看服务

$ docker stack ls
NAME                SERVICES
wordpress           3

移除服务

要移除服务,使用docker stack down:

$ docker stack down wordpress
Removing service wordpress_db
Removing service wordpress_visualizer
Removing service wordpress_wordpress
Removing network wordpress_overlay
Removing network wordpress_default

该命令不会移除服务所使用的数据卷,如果你想移除数据卷请使用docker volume rm


http://www.hrbkazy.com/news/52637.html

相关文章:

  • 室内设计好的大学排名个人网站seo
  • 做的好的食用菌公司网站有网络营销专业是干嘛的
  • 如何创建游戏网站百度识图在线
  • 王爷的醋坛子又翻了免费阅读seo技术顾问阿亮
  • 什么网站做电脑系统好设计网站的公司
  • 常见的网站建设技术有哪些哈尔滨seo优化培训
  • 网站如何做点击链接衡阳百度推广
  • 南宁制作营销型网站提高关键词排名的软文案例
  • 简单网页制作源代码网站站长seo推广
  • 怎么看小企业网站建设怎么创建自己的网站
  • 南京品牌网站设计网站建设seo优化培训
  • wordpress插件自定义字段seo网站诊断
  • 现在最好的企业网站管理系统东莞百度seo
  • 汽车网站建设流程360搜索引擎网址
  • 淘宝联盟推广可以做网站吗seo是一种利用搜索引擎
  • 做网站UI工具最近的头条新闻
  • 苏州企业建站程序下载百度导航app
  • 做网站推广托管注意百度关键词指数查询
  • 移动互联网应用程序和网络工作群整治组网站怎么优化关键词
  • app开发和维护费用百度seo排名优化如何
  • 电子商务网站的设计工具链接买卖平台
  • 懂做网站怎么赚钱nba球队排名
  • 猎聘做简历的网站收费靠谱深圳网络推广案例
  • wordpress the7.5seo与sem的区别
  • 公司做网站的法律依据做网站好的网站建设公司
  • 株洲网站定制外链推广论坛
  • 上海地区网站开发公司aso关键词覆盖优化
  • 做网站 怎么谈什么是网站推广
  • 专做兼职的网站百度网盘电脑版登录入口
  • 天元建设集团有限公司第八分公司上海seo优化服务公司