Docker Swarm

docker learn :services docker-compose.yml

喜夏-厌秋 提交于 2019-12-25 23:23:38
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> docker-compose.yml定义了服务的运行参数 version: "3" services: web: # replace username/repo:tag with your name and image details image: hub.c.163.com/dog948453219/friendlyhello deploy: replicas: 8 resources: limits: cpus: "0.1" memory: 50M restart_policy: condition: on-failure ports: - "4000:80" networks: - webnet networks: webnet: ~ ~ 文件中做的事情有 从hub中拉取镜像 运行5个web实例,限制每个使用10%cpu,50mb RAM 如果有失败的实例立即重启 映射访问端口4000到web80端口 访问时负载均衡 1.运行web实例 docker swarm init docker stack deploy -c docker-compose.yml getstartedlab docker service ls docker service ps getstartedlab_web docker

6个K8s日志系统建设中的典型问题,你遇到过几个?

寵の児 提交于 2019-12-10 01:42:09
作者 | 元乙 阿里云日志服务数据采集客户端负责人,目前采集客户端 logtail 在集团百万规模部署,每天采集上万应用数 PB 数据,经历多次双 11、双 12 考验。 导读: 随着 K8s 不断更新迭代,使用 K8s 日志系统建设的开发者,逐渐遇到了各种复杂的问题和挑战。本篇文章中,作者结合自己多年经验,分析 K8s 日志系统建设难点,期待为读者提供有益参考。 在 Logging 这块做了几年,最近 1 年来越来越多的同学来咨询如何为 Kubernetes 构建一个日志系统,或者是来求助在这过程中遇到一系列问题如何解决,授人以鱼不如授人以渔,于是想把我们这些年积累的经验以文章的形式发出来,让看到这篇文章的同学能少走弯路。这个系列文章定位为长篇连载,内容偏向落地实操以及经验分享,且内容会随着技术的迭代而不定期更新。 前言 第一次听到 Kubernetes 的名字是在 2016 年,那个时候 Kubernetes 还处于和 Docker Swarm、Mesos 方案的“三国鼎立时代”,Kubernetes 由于一系列优势(可扩展、声明式接口、云友好)在这一竞争中崭露头角,最终获得统治地位。 Kubernetes 作为 CNCF 最核心的项目(没有之一),是 Cloud Native(云原生)落地的底座,目前阿里已经全面基于 Kubernetes 在开展全站的云原生改造,在 1-2

6 个 K8s 日志系统建设中的典型问题,你遇到过几个?

纵饮孤独 提交于 2019-12-10 01:35:19
作者 | 元乙 阿里云日志服务数据采集客户端负责人,目前采集客户端 logtail 在集团百万规模部署,每天采集上万应用数 PB 数据,经历多次双 11、双 12 考验。 **导读:**随着 K8s 不断更新迭代,使用 K8s 日志系统建设的开发者,逐渐遇到了各种复杂的问题和挑战。本篇文章中,作者结合自己多年经验,分析 K8s 日志系统建设难点,期待为读者提供有益参考。 在 Logging 这块做了几年,最近 1 年来越来越多的同学来咨询如何为 Kubernetes 构建一个日志系统,或者是来求助在这过程中遇到一系列问题如何解决,授人以鱼不如授人以渔,于是想把我们这些年积累的经验以文章的形式发出来,让看到这篇文章的同学能少走弯路。这个系列文章定位为长篇连载,内容偏向落地实操以及经验分享,且内容会随着技术的迭代而不定期更新。 前言 第一次听到 Kubernetes 的名字是在 2016 年,那个时候 Kubernetes 还处于和 Docker Swarm、Mesos 方案的“三国鼎立时代”,Kubernetes 由于一系列优势(可扩展、声明式接口、云友好)在这一竞争中崭露头角,最终获得统治地位。 Kubernetes 作为 CNCF 最核心的项目(没有之一),是 Cloud Native(云原生)落地的底座,目前阿里已经全面基于 Kubernetes 在开展全站的云原生改造,在 1

docker swarm 修改集群ip

て烟熏妆下的殇ゞ 提交于 2019-12-06 07:20:56
概述 事情是这样的,我在树梅派上运行着docker swarm的集群原来的ip是192.168.0.113,之后因为搬家,然后ip变成了192.168.11.113,接着的事情大家肯定可以想出来,就是node和manager肯定连接不上了。所以我直接把node移出集群,然后重新加入,但是那时候的join token的命令是下面这样子的 ╰─➤ docker swarm join-token worker To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-0shhd0b7uwajhgymxgpp1nv5u17jvcup9vvmhnqkg77ds57e5h-57e7hvjaxaagxtxddz416q5z2 192.168.0.113:2377 当时我就直接把最后的ip修改为192.168.11.113这样把node加入集群,没错,的确可以加入,但是不知道为什么,node还是往192.168.0.113去连接,导致报错 ╰─➤ tail -f daemon.log 1 ↵ Jul 4 08:07:16 pi-slave dockerd[21221]: time="2018-07-04T08:07:16.316088897Z" level=info

docker swarm 集群安装Visualizer

六月ゝ 毕业季﹏ 提交于 2019-12-05 10:48:02
概述 对于docker swarm集群的监控来说,这个东西是比较容易入手的一个监控系统,而且比较简单,不是特别的复杂 什么是Visualizer 首先Visualizer是一个图形化显示docker swarm集群中各个节点状态以及运行了什么容器和负载情况的监控工具 接着Visualizer只支持docker 1.12以上的版本,因为1.12之后的docker支持了swarmkit 安装 在此之前你要拥有一个swarm集群,之后运行下面命令创建这个容器 docker run --name visualizer-arm -it -d -p 8081:8080 -v /var/run/docker.sock:/var/run/docker.sock alexellis2/visualizer-arm 因为我是在树梅派上,所以用的是arm的版本,在创建的时候要注意下面几个点,容器的名字我觉得是必须要指定的,还有就是docker.sock这个文件必须要挂载到容器里面去,不然读取不到集群的状态,之后就是端口最好不要使用8080,因为可能未来部署的某些服务需要这个端口,所以能不使用这个端口就不要使用,还有就是最好不要创建service的形式去创建服务,因为第一个,仪表盘里面就会找到你创建的这个service,还有就是没有这个必要和意义 欢迎关注Bboysoul的博客 www.bboysoul

Docker SwarmMode笔记

懵懂的女人 提交于 2019-12-05 05:11:53
swarm基本概念 Swarm是去中心化的,并集成进了Docker Engine,通过Docker CLI管理。 swarm 集群包含两类节点 Manager Node —— 负责调度Task(不推荐超过7个,其有两种状态:leader、reachable,集群操作需在管理节点) Worker Node —— 接受Manager Node调度并指派的Task 每个 swarm node 的 availability 包括: Active:接受task Pause:不接受task,已有task仍运转 Drain:不接受task,已有task被交接 通过routing mesh策略(基于lvs),swarm集群所有节点都会监听服务端口(没有启动服务的节点会自动将流量路由到服务驻留节点) 集群内服务开放到外部端口后,节点由preparing转为running状态 一个集群节点上可以驻留多个重复服务 swarm变迁 Docker1.6引入Swarm 独立于Docker engine 使用Docker CLI Docker 1.12前几周发布了Swarm Kit 使用自己的CLI(swarmd负责管理,swarmctl用于控制) 是Swarm mode的基础 Docker 1.12发布了Swarm Mode(功能较完整的容器编排工具) 集成到了Docker engine中(docker

利用K8S技术栈打造个人私有云(连载之:初章)

邮差的信 提交于 2019-12-04 13:43:33
注: 本文首发于 My 公众号 CodeSheep ,可 长按 或 扫描 下面的 小心心 来订阅 ↓ ↓ ↓ 我的想法是什么 最近在学习Docker技术,相信Docker技术大家都有所了解,Docker类似于虚拟机(但与虚拟机又有本质不同),提供进程级别的隔离。我们可以利用Docker来方便地来做很多事情,比如搭建一个翻墙VPN、搞一个爬虫、弄一个私人博客,部署一个裸机上比较难以安装的环境等等……可以说几乎没有什么目的办不到,这简直是宅男老铁们的福利啊! 但话又说回来,单个Docker所能发挥的作用毕竟有限,也不便于批量管理,更满足不了各种量比较大的业务场景所需的高可用、弹性伸缩等特性,所以Docker得组集群来并赋予各种完善的调度机制才能发挥强大的技术优势。既然要组集群那就涉及诸如Docker的资源调度、管理等等一系列问题。Docker集群技术发展得很火热, 目前涉及Docker集群的三个主要的技术无外乎Docker Swarm、Kubernetes、Mesos三种主流方案。 Docker Swarm是Docker提供的原生集群技术,我只做过一些初步实践( Docker Swarm集群初探 ),发现还比较容易上手,大家也可以自行去深入学习一下,我就不多说了。 Kubernetes(以下简称K8S)源自于Google,是一个为容器化应用提供自动部署、扩容和管理的开源项目

安装docker并运行docker swarm模式

风格不统一 提交于 2019-12-01 12:54:39
概要 docker 1.12版本最大的改变在于集成了docker swarm,在docker engine下提供了 swarm 模式,这里主要说一下docker swarm。 docker engine本身只提供了容器技术,没有解决集群环境下的容器编排和通信。docker swarm是一个容器编排管理工具,docker-engine在1.12版本之后集成了docker swarm,不需要再单独安装。 docker swarm的功能,举个例子,有3台机器都安装了docker环境,称为3台docker节点。那么如何管理这3台docker节点,并把容器以类似于负载均衡的模式分别部署到这3台节点上,并让这些分布在不同节点上的容器之间互相通信呢。这时候需要用到容器编排工具,常用的编排工具有Google开源的kubernetes、apache的mesos、docker公司的swarm。 kubernetes作为Google开源的工具,已经在Google的生产环境运行了多年,功能丰富并且稳定可靠,目前有很多公司都在使用。docker在1.12版本之后内置了swarm模式,把容器编排以核心组件的模式集成到了docker engine中,并借鉴了kubernetes的成功经验。 安装docker 以centos7为例,这里附上官网的安装文档,docker官网实在太慢了。 使用yum安装 更新yum源

Docker Swarm资源管理

ぃ、小莉子 提交于 2019-12-01 06:43:44
Docker Swarm是docker官方三剑客项目之一,提供docker容器集群服务,是docker官方对容器云生态进行支持 的核心方案。使用它,用户可以将多个docker主机封装为单个大型的虚拟docker主机,快速打造一套容器云平台。 注意:docker 1.12.0+Swarm mode已经内嵌入docker引擎,成为了docker子命令docker swarm,绝大多数用户已经开始使用swarm mode,docker引擎API已经删除Docker Swarm。 基本概念 Swarm是使用SwarmKit构建的docker引擎内置(原生)的集群管理和编排工具。使用Swarm集群执勤啊需要了解如下几个概念: 节点 运行docker的主机可以主动初始化一个swarm集群或者加入一个已存在的swarm集群,这样这个运行docker的主机就称为一个swarm集群的节点。 节点分为管理节点和工作节点。管理节点用于swarm集群的管理,docker swarm命令基本只能在管理节点执行。工作节点是任务执行节点,管理节点将服务下发至工作节点执行。 集群中管理节点与工作节点的关系: 服务和任务 任务(Task)是swarm中的最小的调度单位,目前来说就是一个单一的容器。服务(Services)是指一组任务的集合,服务定义了任务的属性。 服务有两种模式: replicated

从零开始学习docker(十六)Swarm mode 创建集群

时间秒杀一切 提交于 2019-11-30 23:45:46
这一节我们介绍如何搭建一个三节点的swarm集群。安装docker的同时,swarm已经内置了。所以不需要额外安装 准备环境: 三台安装了docker的服务器。 swarm manager: 192.168.0.109 swarm worker1: 192.168.0.107 swarm worker2: 192.168.0.110 docker swarm init --advertise-addr 表示我们要初始化一个swarm就要宣告一个地址,因为他是一个cluster,必须有多个节点。如何让别的节点知道我们的存在呢?需要advertise-addr 我们本地的地址。 我们现在swarm manager上运行: vincent@192:~$ docker swarm init --advertise-addr=192.168.0.109 Swarm initialized: current node (u6bj8diva2g7yn0y0x1h7lrff) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-0csi5bbc0dazkq3yrqrzv09aatddo5iq9e3dal5anzvbsv46r5