zoukankan      html  css  js  c++  java
  • docker集群之swarm

    1、swarm是什么?

    Swarm是Docker公司自研发的容器集群管理系统,Swarm在早期是作为一个独立服务存在,在Docker Engine v1.12中集成了Swarm的集群管理和编排功能。可以通过初始化Swarm或加入现有Swarm来启用Docker引擎的Swarm模式。
    Docker Engine CLI和API包括了管理Swarm节点命令,比如添加、删除节点,以及在Swarm中部署和编排服务。
    也增加了服务栈(Stack)、服务(Service)、任务(Task)概念。

    2、swarm 角色

    Manager:接收客户端服务定义,将任务发送到worker节点;维护集群期望状态和集群管理功能及Leader选举。默认情况下manager节点也会运行任务,也可以配置只做管理任务。
    Worker:接收并执行从管理节点分配的任务,并报告任务当前状态,以便管理节点维护每个服务期望状态。

    3、swarm特点

    1. Docker Engine集成集群管理
    使用Docker Engine CLI 创建一个Docker Engine的Swarm模式,在集群中部署应用程序服务。
    2. 去中心化设计
    Swarm角色分为Manager和Worker节点,Manager节点故障不影响应用使用。
    3. 扩容缩容
    可以声明每个服务运行的容器数量,通过添加或删除容器数自动调整期望的状态。
    4. 期望状态协调
    Swarm Manager节点不断监视集群状态,并调整当前状态与期望状态之间的差异。
    5. 多主机网络
    可以为服务指定overlay网络。当初始化或更新应用程序时,Swarm manager会自动为overlay网络上的容器分配IP地址。
    6. 服务发现
    Swarm manager节点为集群中的每个服务分配唯一的DNS记录和负载均衡VIP。可以通过Swarm内置的DNS服务器查询集群中每个运行的容器。
    7. 负载均衡
    实现服务副本负载均衡,提供入口访问。
    8. 安全传输
    Swarm中的每个节点使用TLS相互验证和加密,确保安全的其他节点通信。
    9. 滚动更新
    升级时,逐步将应用服务更新到节点,如果出现问题,可以将任务回滚到先前版本。

    4、使用Swarm前提:
    Docker版本1.12+
    集群节点之间保证TCP 2377(集群管理)、TCP/UDP 7946(容器网络发现)和UDP 4789(Overlay网络)端口通信
    节点规划:
    操作系统:CentOS7.4_x64

    manager   192.168.10.220

    node1  192.168.10.221

    node2  192.168.10.222

    5、swarm集群构建

    iptables -I INPUT -s 192.168.10.0/24 -j ACCEPT

    管理节点初始化swarm

    [root@manager ~]# docker swarm init --advertise-addr 192.168.10.220 Swarm initialized: current node (mim9eowsnjlr7e236aiycuxv4) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-3oq7tuvm8rlgqdat1fdqw0i8o56s9h7k3bfcti0tpzocd6hjn1-236s34wk8nyr1sv6pkriwds0p 192.168.10.220:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

    工作节点加入  swarm集群

    [root@node1 ~]# docker swarm join --token SWMTKN-1-3oq7tuvm8rlgqdat1fdqw0i8o56s9h7k3bfcti0tpzocd6hjn1-236s34wk8nyr1sv6pkriwds0p 192.168.10.220:2377
    This node joined a swarm as a worker.

     

    6、查看集群状态

    至此swarm集群构建完成

  • 相关阅读:
    定制一个支持中英文的简单LaTex模板
    汉字hash问题(转)
    算法题之最大回文子串
    算法题之添加回文串
    数据表设计的步骤
    很简单的Java断点续传实现原理
    MongoDB 搭建文件存储的方案
    cron语法
    关于如何使用SVN的一些建议
    无后台应用 Stash Backend
  • 原文地址:https://www.cnblogs.com/hellojackyleon/p/8350986.html
Copyright © 2011-2022 走看看