swarm

部署docker swarm集群监控

不想你离开。 提交于 2020-02-12 02:04:22
前提 Docker 前言 现在Docker Swarm已经彻底输给了K8S,但是现在K8S依然很复杂,上手难度较Docker Swarm高,如果是小规模团队且需要容器编排的话,使用Docker Swarm还是适合的。 目前Docker Swarm有一个问题一直没有解决,如果业务需要知道用户的请求IP,则Docker Swarm满足不了要求。目前部署在Docker Swarm内的服务,无法获取到用户的请求IP。 具体可以看看这个ISSUE-> Unable to retrieve user's IP address in docker swarm mode 整体思路 思路整体来说是使用Influxdb Grafana cadvisor,其中cadvisor负责数据的收集,每一台节点都部署一个cadvisor服务,Influxdb负责数据的存储,Grafana负责数据的可视化。 演示环境 主机 IP master(manager) 192.168.1.60 node1(worker) 192.168.1.61 node2(worker) 192.168.1.62 我这里是将master节点当作监控数据存储以及可视化服务的节点作为演示,一般是拿一个worker节点做这样的工作。 初始化Docker Swarm 在master机器上初始化集群,运行 docker swarm init -

Docker网络 学习笔记

百般思念 提交于 2020-02-05 03:50:35
该文为《深入浅出Docker》的学习笔记,感谢查看,如有错误,欢迎指正 一、基础理论 Docker 网络架构由3个主要部分构成: 容器网络模型(Container Network Model,CNM) Libnetwork 驱动 1.1 容器网络模型(CNM) CNM是设计标准,定义了3个基本要素: 沙盒(Sandbox) , 终端(Endpoint) , 网络(Network) 沙盒是一个独立的网络栈,包括 以太网接口 , 端口 , 路由表 , DNS配置 ; 终端是虚拟网络接口,负责创建连接,在CNM中,负责将沙盒连接到网络,一个终端只能连接到某一个网络,如果容器需要加入网络,就需要多个终端; 网络是802.1d网桥的软件实现,网络是需要交互的终端的集合,并且终端之间相互独立。 1.2 Libnetwork Libnetwork是标准的实现,除了实现了CNM中的3个基本要素外,还实现了 本地服务发现(Service Discovery) , 基于Ingress的容器负载均衡 , 网络控制层和管理层功能 。 1.3 驱动 如果说Libnetwork实现了控制层和管理层,那么驱动就负责实现 数据层 。 Docker封装了若干内置驱动,通常被称为原生驱动或者本地驱动。在Linux中包括 Bridge , Overlay , Macvlan ,在Windows中包括 NAT ,

Docker Swarm 学习笔记

若如初见. 提交于 2020-02-02 21:47:37
Swarm有两个核心组件: 企业级的Docker安全集群 Swarm 将一个或多个Docker节点组织起来,使用户能够以集群方式管理他们,节点分为管理节点( Manager )和工作节点( Worker ); 多个Docker节点中,管理节点可以有多个,用于HA,只有一个节点为 Leader ,剩下的为 Reachable ,工作节点的status展示为空; Swarm 的配置和状态信息,保存在管理节点的etcd数据库中,如果有多个管理节点,那么etcd就是分布式的,即使一个节点挂了,新的管理节点仍然能获取到etcd中的数据。 微服务应用编排引擎 将应用定义在声明式配置文件中,就能使用原生的Docker命令完成部署,滚动升级,回滚,扩缩容; Swarm还可以部署管理 Kubernetes; Swarm集群搭建 要求: 每个节点都需要安装Docker 能够和Swarm 的其它节点通信 开放端口 2377/tcp :用于客户端和 Swarm 进行安全通信 7946/tcp 与 7946/udp :用于控制面gossip分发 4789/udp :用于基于VXLAN的覆盖网络 流程: 初始化第一个管理节点 加入额外的管理节点 加入工作节点 初始化Swarm 不包含在任何Swarm中的Docker节点,称为运行于 单引擎模式 ,一旦加入Swarm集群,则切换为 Swarm模式 [ root

docker可视化集中管理工具shipyard安装部署

本秂侑毒 提交于 2020-01-30 13:31:53
转载自 https://www.cnblogs.com/heyongboke/p/10837503.html Shipyard是在Docker Swarm实现对容器、镜像、docker集群、仓库、节点进行管理的web系统。 1.Shipyard功能 1 Shipyard是一个集成管理docker容器、镜像、Registries的系统,它可以简化对横跨多个主机的Docker容器集群进行管理. 通过Web用户界面,你可以大致浏览相关信息,比如你的容器在使用多少处理器和内存资源、在运行哪些容器,还可以检查所有集群上的事件日志。 2.Shipyard特点: 1 2 3 4 支持多节点的集成管理; 支持镜像、容器、节点管理等功能; 可视化的容器管理和监控管理; 可动态加载节点。 3.Shipyard几个概念 1)engine 1 一个shipyard管理的docker集群可以包含一个或多个engine(引擎),一个engine就是监听tcp端口的dockerdaemon。shipyard管理docker daemon、images、containers完全基于<br>Docker API,不需要做其他的修改。另外,shipyard可以对每个engine做资源限制,包括CPU和内存;因为TCP监听相比Unix socket方式会有一定的安全隐患,所以shipyard还支持通过<br

Kubernetes node Device port (USB) mapping to POD? Or Swarm service --device mapping

爱⌒轻易说出口 提交于 2020-01-21 12:26:06
问题 Is it possible to map, the device port(USB port) of a worker node, to a POD? Similar to docker create --device=/dev/ttyACM0:/dev/ttyACM0 Is it possible? I checked the refence doc, but could not find anything. In Docker service, is it possible to map --device port to service container(if I am running only 1 container)? 回答1: You can actually get this to work. You need to run the container privileged and use a hostPath like this: containers: - name: acm securityContext: privileged: true

Docker 容器网络

孤人 提交于 2020-01-18 07:56:47
默认网络 当安装docker时,它会自动创建3个网络。可以使用docker network ls 来查看。 zane@zane-V:~$ docker network ls NETWORK ID NAME DRIVER SCOPE 4b10534b40ff bridge bridge local 7dbe50e049ea host host local 08bfed547b1e none null local 当运行容器的时候,可以指定容器使用哪个网络,用--network 参数。 bridge网络代表的是出现在ifconfig 中的 docker0. 除非你使用docker run --network=<>来指定使用的网络, 否则都会使用这个默认的bridge网络。 zane@zane-V:~$ ifconfig docker0 Link encap:以太网 硬件地址 02:42:dc:06:cb:3c inet 地址:172.17.0.1 广播:0.0.0.0 掩码:255.255.0.0 inet6 地址: fe80::42:dcff:fe06:cb3c/64 Scope:Link UP BROADCAST MULTICAST MTU:1500 跃点数:1 接收数据包:47395 错误:0 丢弃:0 过载:0 帧数:0 发送数据包:49555 错误:0 丢弃:0 过载:0

Docker Swarm介绍

落爺英雄遲暮 提交于 2020-01-11 16:48:23
1 什么是swarm Swarm是Docker公司推出的docker集群管理平台,它将一群Docker主机变成了一台单一的虚拟Docker主机。 Swarm使用标准的Docker API接口,因此,任何支持Docker API的工具都能使用Swarm,包括Docker Compose、Docker Machine、Jenkins等等。 Docker 1.12版本之后,Swarm已经包含在Docker引擎中了,不需要再手动安装Swarm相关的组件了。 Swarm遵循可插拔原则(swap, plug, and play),它的后台引擎是可替换的,在大规模生产环境中,可以将Swarm后端替换成更强大的后端(比如Mesos)。 2 swarm中的几个概念 (1)Node Swarm节点,是运行Docker引擎的一个实例,通常是一台物理服务器或者是云服务器。节点有两类: worker node:工作节点,接收和执行任务,运行具体的服务。 manager node:管理节点,用于执行集群命令,调度任务等等。默认情况下管理节点同时也具有工作节点的功能,可以接收和执行任务。 (2)Service 集群中具体要运行的容器。 (3)Task 集群中要执行的命令。 3 Swarm常用命令 (1)集群和节点操作 使用以下3台服务器演示swarm命令: ecs-dev-07 ecs-dev-08 ecs

docker使用pxc搭建mysql集群

孤者浪人 提交于 2020-01-08 21:02:41
准备2个linux,分别安装pxc 1、安装pxc镜像 docker pull percona/percona-xtradb-cluster 修改名字(太长了) docker tag percona/percona-xtradb-cluster pxc docker rmi percona/percona-xtradb-cluster 2、创建数据卷 docker volume create v1 docker volume create backup 3、创建共享网络 开通端口 在docker上创建swarm集群 docker swarm init docker swarm join \ --token SWMTKN-1-1860zm5hgjjlxxdbqt8dmg07xcnelqw2gljmthf5iq1y7oj7f5-3a36zsq7w3s5m6dennet31dbm \ 192.168.148.130:2377 基于overlay创建共享网络 3、创建msyql容器 docker中 docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=abc123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=abc123456 -v v1:/var/lib/mysql -v backup:

Docker容器实战(二) -"鲸鱼"公司粉墨登场

江枫思渺然 提交于 2020-01-08 19:18:46
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一天天的,PaaS深入人心,Cloud Foundry为首的传统PaaS,开始蓄力基础设施领域的 平台化 和 PaaS化 ,于是发现了PaaS中的问题 1 如何给应用打包 Cloud Foundry/OpenShift/Clodify都没给出答案,走向碎片化歪路 此时,名不见经传的PaaS创业公司dotCloud,却选择了开源自研的容器项目 Docker 谁也不会料到,就这样一个平淡无奇古天乐一般的技术,开启了名为“Docker”的新时代 这个🐳公司,最重要的战略之一就是:坚持把**“开发者”群体放在至高无上的位置** Docker项目的推广策略从一开始就呈现出一副“憨态可掬”的亲人姿态,把每一位后端技术人员(而不是资本家)作为主要的传播对象。 简洁的UI,有趣的demo,“1分钟部署一个WordPress网站”“3分钟部署一个Nginx集群”,这种同开发者之间与生俱来的亲近关系,使Docker项目迅速成为了全世界会议上最受追捧的新星 > Docker项目,给后端开发者提供了走向聚光灯的机会 > 比如Cgroups和Namespace这种已经存在多年却很少被人们关心的特性,在2014年和2015年竟然频繁入选各大技术会议的分享议题,就因为听众们想要知道Docker这个东西到底是怎么一回事儿。