`
huangyongxing310
  • 浏览: 490691 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Docker集群

 
阅读更多
Docker集群的两种模式K8s和swarm的两种模式K8s和swarm




Docker Swarm 是 Docker 的集群管理工具, Docker Swarm 提供了标准的 Docker API

swarm 集群由管理节点(manager)和工作节点(work node)构成。
swarm mananger:负责整个集群的管理工作包括集群配置、服务管理等所有跟集群有关的工作。
work node:即图中的 available node,主要负责运行相应的服务来执行任务(task)。


Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。


Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。

docker-compose是基于docker的编排工具,使容器的操作能够批量的,可视的执行,是一个管理多个容器的工具,比如可以解决容器之间的依赖关系,当在宿主机启动较多的容器时候,如果都是手动操作会觉得比较麻烦而且容器出错,这个时候推荐使用 dockerd的单机编排工具 docker-compose。

docker-compose是基于docker的开源项目,托管于github上,由python实现,调用 docker服务的API负责实现对docker容器集群的快速编排,即通过一个单独的yaml文件,来定义一组相关的容器来为一个项目服务。

所以,docker-compose默认的管理对象是项目,通过子命令的方式对项目中的一组容器进行生命周期的管理。

docker-compose,  就是一次启动多个容器,方便对一个项目相关的容器进行集中管理,不用一个个启动或者关闭





Docker Machine 是一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机。

 Docker Machine 是Docker官方编排项目之一,使用go语言编写的,使用不同引擎在多种平台上快速的安装Docker环境,

Docker Machine 是一个工具,它允许你在虚拟宿主机上安装Docker,并使用docker-machine命令管理这个宿主机,可以使用Docker Machine在本地的MAC或者windows box、公司网络,数据中心或者AWS这样的云提供商上创建docker。

使用docker-machine命令,可以启动、审查、停止、重启托管的docker 也可以升级Docker客户端和守护程序并配置docker客户端和宿主机通信。

Docker Machine 也可以集中管理所以得docker主机。

Docker Machine 使你能够在各种 Linux 上配置多个远程 Docker 宿主机。

无论你的主系统是 Mac、Windows 还是 Linux,你都可以在其上安装 Docker Machine,并使用 docker-machine 命令来配置和管理大量的 Docker 宿主机。它会自动创建宿主机、在其上安装 Docker Engine 、然后配置 docker 客户端。每个被管理的宿主机(“machine”)是 Docker 宿主机和配置好的客户端的结合。

当人们说“Docker”时,他们通常是指 Docker Engine,它是一个客户端 - 服务器应用程序,由 Docker 守护进程、一个REST API指定与守护进程交互的接口、和一个命令行接口(CLI)与守护进程通信(通过封装REST API)。Docker Engine 从 CLI 中接受docker 命令,例如 docker run <image>、docker ps 来列出正在运行的容器、docker images 来列出镜像,等等。

Docker Machine 是一个用于配置和管理你的宿主机(上面具有 Docker Engine 的主机)的工具。通常,你在你的本地系统上安装 Docker Machine。Docker Machine有自己的命令行客户端 docker-machine 和 Docker Engine 客户端 docker。你可以使用 Machine 在一个或多个虚拟系统上安装 Docker Engine。

Docker Machine发布之前,你可能会遇到以下问题:
①你需要登录主机,按照主机及操作系统特有的安装以及配置步骤安装Docker,使其能运行Docker容器
②你需要研发一套工具管理多个Docker主机并监控其状态
③你在本地开发,产品部署在公有云平台,你希望能尽可能的减小两个环境的差异性

Docker Machine的出现解决了以上问题。
①Docker Machine简化了部署的复杂度,无论是在本机的虚拟机上还是在公有云平台,只需要一条命令便可搭建好Docker主机
②Docker Machine提供了多平台多Docker主机的集中管理
③Docker Machine 使应用由本地迁移到云端变得简单,只需要修改一下环境变量即可和任意Docker主机通信部署应用

Docker Machine说是用于管理宿主机用的,方便进行在多个宿主机上安装docker环境,与进行宿主机的统一管理,就是方便进行环境搭建的

总之docker-machine就是帮助你快速去创建安装docker环境的工具。

对于 Docker Machine 来说,术语 Machine 就是运行 docker daemon 的主机。“创建 Machine” 指的就是在 host 上安装和部署 docker。



LVS简介
LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器,

LVS是一种叫基于TCP/IP的负载均衡技术,转发效率极高,具有处理百万计并发连接请求的能力。

LVS的IP负载均衡技术是通过IPVS模块实现的。

IPVS模块是LVS集群的核心软件模块,它安装在LVS集群作为负载均衡的主节点上,虚拟出一个IP地址和端口对外提供服务。用户通过访问这个虚拟服务(VS),然后访问请求由负载均衡器(LB)调度到后端真实服务器(RS)中,由RS实际处理用户的请求给返回响应。

IPVS的转发模式分为三种:NAT,DR,FULLNAT。(还有一种IP TUNNEL模式,IP通道技术,接触比较少)
https://www.cnblogs.com/lipengxiang2009/p/7349271.html


Docker 使用了 Linux 内核 iptables 和 IPVS 的功能来实现服务发现和负载均衡。
iptables 是 Linux 内核中可用的包过滤技术,它可用于根据数据包的内容进行分类、修改和转发决策。
IPVS 是 Linux 内核中可用的传输级负载均衡器。

在四层负载均衡实现当中,由于是在客户端和服务集群节点之间直接建立连接进行数据传输的,负载均衡器只是在连接建立阶段进行一个中转,不需要处理该连接之后的请求和响应的相关数据,所以该负载均衡器的负载较低,性能较高,可以处理更多请求的转发。
其中四层负载均衡的典型实现是LVS,具体可以查阅相关资料了解LVS的详细设计与使用。














































分享到:
评论

相关推荐

    docker集群部署.txt

    docker集群部署,导出导入镜像,各自集群部署的知识。docker集群部署,导出导入镜像,各自集群部署的知识。docker集群部署,导出导入镜像,各自集群部署的知识。docker集群部署,导出导入镜像,各自集群部署的知识。

    k8s docker集群搭建

    通过以上介绍,我们可以看到Kubernetes在云计算环境下构建可伸缩的Docker集群方面所展现出的强大功能和灵活性。无论是对于开发人员还是运维团队来说,掌握Kubernetes都将有助于提升工作效率和系统的稳定性。

    SpringBoot + maven + Jenkins + docker 实现docker集群一键自动化部署

    项目基本结构是SpringBoot,集成了docker-maven插件实现build完的镜像上传到私服,然后用 Jenkins构建实现docker集群一键自动化部署

    docker 集群安装nacos.doc

    "基于Docker的Nacos集群安装配置详解" Nacos是阿里巴巴开源的配置管理系统,提供了强大的配置管理能力,能够对微服务应用进行配置管理。随着微服务架构的普及,Nacos的使用也变得越来越广泛。然而,在实际应用中,...

    基于遗传算法的docker集群调度策略的模拟源码.zip

    【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、...基于遗传算法的docker集群调度策略的模拟源码.zip

    Shipyard 支持多主机 Docker 集群管理 它使用 Docker Swarm 进行集群资源和调度

    Shipyard 是一个强大的工具,专为管理和操作多主机 Docker 集群而设计。它提供了一个用户友好的界面,使得 Docker 集群的管理变得简单直观,尤其适合那些需要在分布式环境中部署和协调容器的应用场景。Docker Swarm ...

    ansible-swarm-playbook, 创建/管理 Docker 集群集群的脚本.zip

    ansible-swarm-playbook, 创建/管理 Docker 集群集群的脚本 Ansible Swarm创建/管理 Docker 集群( 要求 Docker&gt; = 1.12 )的脚本。以下帖子的附带文件: https://thisendout.com/2016/09/13/deploying-docker

    Docker集群规划指南.pdf

    Docker集群规划指南.pdf

    基于Docker集群的分布式动作教学平台设计.pdf

    本文提出了一个基于Docker集群的分布式动作教学平台设计方案,该方案融合了人工智能技术与分布式技术,重点应用了姿态估计算法,从而支持如太极拳、广播体操、健身动作等动作教学。 首先,分布式系统的概念在此背景...

    基于遗传算法的docker集群调度策略的模拟_docker-schedule-simula.zip

    基于遗传算法的docker集群调度策略的模拟_docker-schedule-simula

    使用Docker构建持续集成与自动部署的Docker集群

    1.从我个人使用的角度讲的话部署来的更方便2.只要构建过一次环境推送到镜像仓库迁移起来也是分分钟的...Ubuntu其他版本可能需要先升级一下内核详细可参考这里下来开始我们今天的主题构建持续集成与自动部署的Docker集群

    Docker集群的创建与管理实例详解

    本文详细讲述了Docker集群的创建与管理。分享给大家供大家参考,具体如下: 在《Docker简单安装与应用入门教程》中编写一个应用程序,并将其转化为服务,在《Docker分布式应用教程》中,使应用程序在生产过程中扩展5...

    docker swarm 集群搭建和试验

    ### Docker Swarm 集群搭建和试验 #### Docker Swarm 概述 Docker Swarm 是一个由 Docker 官方提供的用于创建 Docker 主机集群的工具。它具有多项关键特性,包括但不限于服务发现、负载均衡、任务分发与调度、服务...

    Kubernetes(K8S)集群管理Docker容器(部署篇)

    环境说明:操作系统:Ubuntu16.04orCentOS7Kubernetes版本:v1.8.3Docker版本:v17.09-ce均采用当前最新稳定版本。关闭selinux。打开下面网址,下载下面两个红色框框的包。...kubernetes-node-linux-amd64.tar.gz上传到...

    Docker构建ELK Docker集群日志收集系统

    为了在Docker集群中更好的管理查看日志 我们使用Docker 来搭建集群的ELK日志收集系统,这篇文章介绍了Docker构建ELK Docker集群日志收集系统的相关资料,需要的朋友可以参考下

    docker spark 集群在Ubuntu下的部署

    描述如何在单个Ubuntu机器或服务器搭建docker spark 集群环境

Global site tag (gtag.js) - Google Analytics