精华内容
下载资源
问答
  • 容器集群
    千次阅读
    2020-09-08 20:13:16

    目前,Docker容器集群管理主流方案有3种,分别是Swarm、Kubernetes、Mesos。

    Swarm是Docker公司自研发的集群管理系统。

    Kubernetes是Google开源的一个容器集群管理系统,用于自动化部署、扩展和管理容器应用。也称为K8S。

    Mesos是一个集群资源调度系统,对集群中的资源进行分配和管理。Marathon是运行在Mesos之上的一个服务管理框架,可管
    理容器生命周期。
     
    Swarm、Kubernetes和Mesos简单比较:
    复杂性
    Swarm使用标准Docker接口,集成于Docker Engine,内置Overlay网络、服务发现、负载均衡,很容易上手,学习成本低。
    K8S成熟且复杂,自己的管理体系,服务发现,负载均衡等功能,学习成本高。
    Mesos是一个成熟分布式资源管理框架,一个通用的集群管理系统。
    功能
    Swarm支持Docker Compose v3来实现服务编排。
    K8S强大的功能,有着一套整体容器解决方案,使用起来更轻松。
    社区活跃度
    K8S社区相比Swarm和Mesos活跃度都高
    更多相关内容
  • Kubernetes容器集群管理系统-随堂笔记.
  • 注:本文作者张磊将在8月28日~29日的CNUT全球容器技术峰会上分享题为《从0到1:Kubernetes实战》的演讲,演讲中他将重点剖析Kubernetes的核心原理和实践经验,并分享大规模容器集群管理所面临的问题和解决思路。...
  • Fig00-Kubernetes日志系统中涉及的技术评估容器云平台日志系统的标准:易扩展:能够支撑集群规模的增长开销低:尽量占用较少的系统资源入侵小:尽量不需要改动应用容器和云平台系统大集中:将所有分布在各个主机节点...
  • 一种基于机器学习的Spark容器集群性能提升方法.pdf
  • Kubernetes是Google开源的容器集群管理系统,其提供应用部署、维护、 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用,其主要功能如下: 使用Docker对应用程序进行包装(package)、实例化...
  • k8s容器集群讲义.zip

    2021-11-29 10:37:14
    k8s容器集群讲义十分详尽,从基础知识到搭建整个过程,黑马讲义
  • Docker背后的容器集群管理.pdfDocker背后的容器集群管理.pdfDocker背后的容器集群管理.pdfDocker背后的容器集群管理.pdfDocker背后的容器集群管理.pdfDocker背后的容器集群管理.pdfDocker背后的容器集群管理....
  • Docker背后的容器集群管理.docxDocker背后的容器集群管理.docxDocker背后的容器集群管理.docxDocker背后的容器集群管理.docxDocker背后的容器集群管理.docxDocker背后的容器集群管理.docxDocker背后的容器集群管理....
  • 容器集群技术-Kubernetes简介

    千次阅读 2018-11-16 13:56:41
    随着Docker技术的发展和广泛流行,云原生应用和容器调度管理系统也成为IT领域大热的词汇。事实上,云原生应用的思想,在Docker技术火爆之前,已经由云计算技术的领导者和分布式系统架构的推广者广泛传播,例如云原生...

    随着Docker技术的发展和广泛流行,云原生应用和容器调度管理系统也成为IT领域大热的词汇。事实上,云原生应用的思想,在Docker技术火爆之前,已经由云计算技术的领导者和分布式系统架构的推广者广泛传播,例如云原生应用的12要素早在2011年就由Heroku的工程师提出了;只不过以虚拟机技术作为云原生应用的基础实施,由于虚拟机镜像大、镜像标准不统一以及打包流程和工具不统一,无法业界广泛接受的云原生应用标准,限制了云原生应用的流行。而Docker的出现正好解决了这些限制云原生应用构建、交付和运行的瓶颈,使得构建云原生应用成为了使用Docker的开发者自然而然的选择。

    单机的Docker引擎和单一的容器镜像只能解决单一服务的打包和测试问题。而要运行生产级的企业级应用,就需要容器调度管理系统。在这里面,Docker技术就仿佛运送系统零件的集装箱,把云原生应用的各个标准化零件交付到各个企业的不同码头,而容器调度管理系统就是企业应用的运行车间,把不同的零件组装、运行、维护起来。

    Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg)。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。

    Kubernetes是为生产环境而设计的容器调度管理系统,对于负载均衡、服务发现、高可用、滚动升级、自动伸缩等容器云平台的功能要求有原生支持。由于Kubernetes在K和s间有8个字母,因此常简称K8s。

    Kubernetes的系统架构

    一个K8s集群是由分布式存储(etcd)、服务节点(Minion,etcd现在称为Node)和控制节点(Master)构成的。所有的集群状态都保存在etcd中,Master节点上则运行集群的管理控制模块。Node节点是真正运行应用容器的主机节点,在每个Minion节点上都会运行一个Kubelet代理,控制该节点上的容器、镜像和存储卷等。

     

    •Kubernetes的核心概念

    1.Master

      k8s集群的管理节点,负责管理集群,提供集群的资源数据访问入口。拥有Etcd存储服务(可选),运行Api Server进程,Controller Manager服务进程及Scheduler服务进程,关联工作节点Node。Kubernetes API server提供HTTP Rest接口的关键服务进程,是Kubernetes里所有资源的增、删、改、查等操作的唯一入口。也是集群控制的入口进程;Kubernetes Controller Manager是Kubernetes所有资源对象的自动化控制中心;Kubernetes Schedule是负责资源调度(Pod调度)的进程

     

    2.Node

      Node是Kubernetes集群架构中运行Pod的服务节点(亦叫agent或minion)。Node是Kubernetes集群操作的单元,用来承载被分配Pod的运行,是Pod运行的宿主机。关联Master管理节点,拥有名称和IP、系统资源信息。运行docker eninge服务,守护进程kunelet及负载均衡器kube-proxy.

    • 每个Node节点都运行着以下一组关键进程
    • kubelet:负责对Pod对于的容器的创建、启停等任务
    • kube-proxy:实现Kubernetes Service的通信与负载均衡机制的重要组件
    • Docker Engine(Docker):Docker引擎,负责本机容器的创建和管理工作

      Node节点可以在运行期间动态增加到Kubernetes集群中,默认情况下,kubelet会想master注册自己,这也是Kubernetes推荐的Node管理方式,kubelet进程会定时向Master汇报自身情报,如操作系统、Docker版本、CPU和内存,以及有哪些Pod在运行等等,这样Master可以获知每个Node节点的资源使用情况,冰实现高效均衡的资源调度策略。、

     

    3.Pod

      运行于Node节点上,若干相关容器的组合。Pod内包含的容器运行在同一宿主机上,使用相同的网络命名空间、IP地址和端口,能够通过localhost进行通。Pod是Kurbernetes进行创建、调度和管理的最小单位,它提供了比容器更高层次的抽象,使得部署和管理更加灵活。一个Pod可以包含一个容器或者多个相关容器。

      Pod其实有两种类型:普通Pod和静态Pod,后者比较特殊,它并不存在Kubernetes的etcd存储中,而是存放在某个具体的Node上的一个具体文件中,并且只在此Node上启动。普通Pod一旦被创建,就会被放入etcd存储中,随后会被Kubernetes Master调度到摸个具体的Node上进行绑定,随后该Pod被对应的Node上的kubelet进程实例化成一组相关的Docker容器冰启动起来,在。在默认情况下,当Pod里的某个容器停止时,Kubernetes会自动检测到这个问起并且重启这个Pod(重启Pod里的所有容器),如果Pod所在的Node宕机,则会将这个Node上的所有Pod重新调度到其他节点上。

     

    4.Replication Controller

      Replication Controller用来管理Pod的副本,保证集群中存在指定数量的Pod副本。集群中副本的数量大于指定数量,则会停止指定数量之外的多余容器数量,反之,则会启动少于指定数量个数的容器,保证数量不变。Replication Controller是实现弹性伸缩、动态扩容和滚动升级的核心。

     

    5.Service

      Service定义了Pod的逻辑集合和访问该集合的策略,是真实服务的抽象。Service提供了一个统一的服务访问入口以及服务代理和发现机制,关联多个相同Label的Pod,用户不需要了解后台Pod是如何运行。

    外部系统访问Service的问题

      首先需要弄明白Kubernetes的三种IP这个问题

        Node IP:Node节点的IP地址

        Pod IP: Pod的IP地址

        Cluster IP:Service的IP地址

      首先,Node IP是Kubernetes集群中节点的物理网卡IP地址,所有属于这个网络的服务器之间都能通过这个网络直接通信。这也表明Kubernetes集群之外的节点访问Kubernetes集群之内的某个节点或者TCP/IP服务的时候,必须通过Node IP进行通信

      其次,Pod IP是每个Pod的IP地址,他是Docker Engine根据docker0网桥的IP地址段进行分配的,通常是一个虚拟的二层网络。

      最后Cluster IP是一个虚拟的IP,但更像是一个伪造的IP网络,原因有以下几点

    • Cluster IP仅仅作用于Kubernetes Service这个对象,并由Kubernetes管理和分配P地址
    • Cluster IP无法被ping,他没有一个“实体网络对象”来响应
    • Cluster IP只能结合Service Port组成一个具体的通信端口,单独的Cluster IP不具备通信的基础,并且他们属于Kubernetes集群这样一个封闭的空间。

    Kubernetes集群之内,Node IP网、Pod IP网于Cluster IP网之间的通信,采用的是Kubernetes自己设计的一种编程方式的特殊路由规则。

     

    6.Label

     Kubernetes中的任意API对象都是通过Label进行标识,Label的实质是一系列的Key/Value键值对,其中key于value由用户自己指定。Label可以附加在各种资源对象上,如Node、Pod、Service、RC等,一个资源对象可以定义任意数量的Label,同一个Label也可以被添加到任意数量的资源对象上去。Label是Replication Controller和Service运行的基础,二者通过Label来进行关联Node上运行的Pod。

    我们可以通过给指定的资源对象捆绑一个或者多个不同的Label来实现多维度的资源分组管理功能,以便于灵活、方便的进行资源分配、调度、配置等管理工作。

    一些常用的Label如下:

    • 版本标签:"release":"stable","release":"canary"......
    • 环境标签:"environment":"dev","environment":"qa","environment":"production"
    • 架构标签:"tier":"frontend","tier":"backend","tier":"middleware"
    • 分区标签:"partition":"customerA","partition":"customerB"
    • 质量管控标签:"track":"daily","track":"weekly"

      Label相当于我们熟悉的标签,给某个资源对象定义一个Label就相当于给它大了一个标签,随后可以通过Label Selector(标签选择器)查询和筛选拥有某些Label的资源对象,Kubernetes通过这种方式实现了类似SQL的简单又通用的对象查询机制。

     

      Label Selector在Kubernetes中重要使用场景如下:

      •   kube-Controller进程通过资源对象RC上定义Label Selector来筛选要监控的Pod副本的数量,从而实现副本数量始终符合预期设定的全自动控制流程
      •   kube-proxy进程通过Service的Label Selector来选择对应的Pod,自动建立起每个Service岛对应Pod的请求转发路由表,从而实现Service的智能负载均衡
      •   通过对某些Node定义特定的Label,并且在Pod定义文件中使用Nodeselector这种标签调度策略,kuber-scheduler进程可以实现Pod”定向调度“的特性

     

    Kubernetes架构和组件

    •Kubernetes 组件:

      Kubernetes Master控制组件,调度管理整个系统(集群),包含如下组件:

      1.Kubernetes API Server

        作为Kubernetes系统的入口,其封装了核心对象的增删改查操作,以RESTful API接口方式提供给外部客户和内部组件调用。维护的REST对象持久化到Etcd中存储。

      2.Kubernetes Scheduler

        为新建立的Pod进行节点(node)选择(即分配机器),负责集群的资源调度。组件抽离,可以方便替换成其他调度器。

      3.Kubernetes Controller

        负责执行各种控制器,目前已经提供了很多控制器来保证Kubernetes的正常运行。

      4. Replication Controller

        管理维护Replication Controller,关联Replication Controller和Pod,保证Replication Controller定义的副本数量与实际运行Pod数量一致。

      5. Node Controller

        管理维护Node,定期检查Node的健康状态,标识出(失效|未失效)的Node节点。

      6. Namespace Controller

        管理维护Namespace,定期清理无效的Namespace,包括Namesapce下的API对象,比如Pod、Service等。

      7. Service Controller

        管理维护Service,提供负载以及服务代理。

      8.EndPoints Controller

        管理维护Endpoints,关联Service和Pod,创建Endpoints为Service的后端,当Pod发生变化时,实时更新Endpoints。

      9. Service Account Controller

        管理维护Service Account,为每个Namespace创建默认的Service Account,同时为Service Account创建Service Account Secret。

      10. Persistent Volume Controller

        管理维护Persistent Volume和Persistent Volume Claim,为新的Persistent Volume Claim分配Persistent Volume进行绑定,为释放的Persistent Volume执行清理回收。

      11. Daemon Set Controller

        管理维护Daemon Set,负责创建Daemon Pod,保证指定的Node上正常的运行Daemon Pod。

      12. Deployment Controller

        管理维护Deployment,关联Deployment和Replication Controller,保证运行指定数量的Pod。当Deployment更新时,控制实现Replication Controller和 Pod的更新。

      13.Job Controller

        管理维护Job,为Jod创建一次性任务Pod,保证完成Job指定完成的任务数目

      14. Pod Autoscaler Controller

        实现Pod的自动伸缩,定时获取监控数据,进行策略匹配,当满足条件时执行Pod的伸缩动作。

     

    •Kubernetes Node运行节点,运行管理业务容器,包含如下组件:

      1.Kubelet

        负责管控容器,Kubelet会从Kubernetes API Server接收Pod的创建请求,启动和停止容器,监控容器运行状态并汇报给Kubernetes API Server。

      2.Kubernetes Proxy

        负责为Pod创建代理服务,Kubernetes Proxy会从Kubernetes API Server获取所有的Service信息,并根据Service的信息创建代理服务,实现Service到Pod的请求路由和转发,从而实现Kubernetes层级的虚拟转发网络。

      3.Docker

        Node上需要运行容器服务

    展开全文
  • 这文档我教新手如何部署k8s开源项目,里面详细给到大家。
  • 文章目录系列文章目录前言一、本文要点二、开发环境三、创建容器集群四、修改项目五、测试一下六、小结 前言 在前面的系列文章,我们介绍了怎样去部署各种中间件去搭建开发环境,也介绍了怎样用SpringBoot去整合...

    系列文章目录



    前言

    在前面的系列文章,我们介绍了怎样去部署各种中间件去搭建开发环境,也介绍了怎样用SpringBoot去整合这些组件。那当我们把一个应用或者服务开发好了后,怎样去部署呢?本文将介绍怎样将一个微服务部署到腾讯云容器集群上。有些同学可能会问,发布部署这些东西不是运维做的事情么?我一个业务开发为什么要去了解这些?其实去了解一个服务的设计、开发、测试、交付乃至一个产品/业务流水线及生命周期也是你从一个普通开发-高级开发-架构师甚至总负责人蜕变过程,技多不压身,如果你把自己定位为一个业务开发,格局就小了。


    一、本文要点

    接前文,我们已经在项目里集成了Caffeine。本文将介绍把服务部署到腾讯云上。由于在实际生产环境,服务上云不是个简单事情,需要开通账号、充值等财务问题,子账号协助者等权限分配问题,甚至可能需要打通腾讯云和你公司机房网络等等,所以这里通过示例的方式,简单介绍一下服务上云过程,给大家有个感性的认知,具体还需要咨询腾讯官方腾讯云助手。
    系列文章完整目录

    • 创建腾讯云容器集群
    • TKE集群
    • K8S容器集群
    • 云原生集群

    二、开发环境

    • jdk 1.8
    • maven 3.6.2
    • springboot 2.4.3
    • idea 2020
    • 腾讯云tke

    三、创建容器集群

    1、新建VPC网络,注意IPV4 CIDR需要根据实际情况分配,下图是随便配置的。
    在这里插入图片描述
    2、购买CVM机器资源,也可以在创建集群时候再购买。
    在这里插入图片描述
    3、创建容器集群可以使用自行购买的CVM集群来创建标准集群,这里创建Demo集群来举例。
    在这里插入图片描述
    创建集群前,可能需要分配账号权限等,这里忽略不展开介绍。
    在这里插入图片描述
    例如同意授权容器集群权限在这里插入图片描述4、设置集群配置在这里插入图片描述
    预览配置,可以根据需求新增节点。
    在这里插入图片描述
    完成CVM配置。
    在这里插入图片描述
    5、下一步,选择需要的组件,最后确认配置。
    在这里插入图片描述
    确认支付后可以看到创建进度
    在这里插入图片描述
    这里继续等待集群创建完成即可。最后在容器服务-集群页里可以看到创建完整的集群。
    在这里插入图片描述

    四、小结

    至此,我们就成功创建容器TKE集群了,集群创建成功后还可以调整资源,例如扩缩容等。下一步,我们就可以部署应用到容器集群了,下一篇《搭建大型分布式服务(二十五)如何部署应用到TKE容器集群

    加我加群一起交流学习!更多干货下载、项目源码和大厂内推等着你

    展开全文
  • 多云容器集群服务的设计与实现.docx
  • 容器集群管理云平台.pdf
  • 主题:Kubernetes:Google开源的容器集群管理系统 演讲人:孙长明,Yahoo北京研发中心技术专家 演讲简介:kubernetes是google开源的一个docker container管理容器。本演讲介绍一下它的concepts、基本安装与使用、...
  • 容器集群统一管理实践.pdf
  • AWS容器集群部署最佳实践.pptx
  • 云端部署Kubernetes与容器集群方案.pptx
  • 容器即服务: 从零构建企业级容器集群, 只有一部分
  • 腾讯云容器集群实践

    2017-09-19 21:00:35
    基于腾讯云,搭建通用的容器集群,采用K8S自托管技术实习:支持任何linux应用 负载均衡、服务发现、监控、 log服务支持 用户更少地关心基础设施,更多地关心自己的业务 服务之间独立,依赖关系由用户自定义 安全:...
  • 10个最佳的Docker容器集群编排工具

    千次阅读 2021-07-18 16:28:46
    docker毫无疑问是一个优秀的开源工具。但是,仅靠docker引擎和容器就不能进行复杂的应用程序部署。对于部署复杂的应用程序体系...Kubernetes是一个开源的,开箱即用的容器集群管理器和业务流程。它具有出色的构建 调度.

    docker毫无疑问是一个优秀的开源工具。但是,仅靠docker引擎和容器就不能进行复杂的应用程序部署。对于部署复杂的应用程序体系结构的容器群集,必须进行适当的配置。容器化的应用程序应该能够根据应用程序资源需求进行扩展和缩小。

    我们需要一个有效管理容器的良好框架。容器的生命周期很短,在进行容器编排时,要考虑的主要因素是

    1. 联网

    2. 高可用性

    3. 易于部署

    4. 良好的服务发现。

    1.Kubernetes
    Kubernetes是一个开源的,开箱即用的容器集群管理器和业务流程。它具有出色的构建 调度器 和资源管理器,用于以更有效和高度可用的方式部署容器。Kubernetes已成为许多组织事实上的容器编排工具。kubernetes项目由google与世界各地的贡献者维护。它提供了本机Docker工具不提供的许多功能。而且,使用kubernetes很容易上手。

    在这里插入图片描述

    2.OpenShift
    Openshift建立在kubernetes之上。Openshift项目由Redhat维护。它同时具有开源(openshift orgin)和企业版(openshift容器平台)。连同核心的Kubernetes功能,它提供了用于容器管理和编排的开箱即用组件。

    3.Docker Swarm
    Docker生态系统包括从开发到生产部署框架的工具。在该列表中,docker swarm适用于集群管理。可以使用docker-compose,swarm,overlay网络和良好的服务发现工具(例如etcd或consul)的组合来管理Docker容器集群。

    与其他开源容器集群管理工具相比,Docker swarm在功能方面仍日趋成熟。考虑到庞大的Docker贡献者,Docker swarm拥有其他工具拥有的所有最佳功能不会太久。Docker记录了在生产中使用docker swarm 的良好生产计划。

    在这里插入图片描述

    4. Mesos
    Mesos是另一个可以非常有效地管理容器编排的群集管理工具。它是由Twitter为其基础架构创建的,然后获得了开源。它已被eBay,Airbnb等公司使用。Mesos并不是用于容器的专用工具,

    Mesos不是用于容器的专用工具,相反,您可以将其用于VM或物理机群集,以运行容器以外的工作负载(大数据等)。它具有一个称为Marathon的有效框架,用于在Mesos群集上部署和管理容器。

    您实际上可以在Mesos群集上运行Kubernetes群集。查看本指南以了解相同的内容

    在这里插入图片描述

    5.Google Container Engine
    GKE 是Google云上的托管容器服务。在后端,GKE使用了kubernetes。您可以在GKE上使用所有kubernetes功能。

    6.AWS EKS服务
    EKS是AWS的一项托管Kubernetes集群服务。

    7.Amazon EC2容器服务
    ECS是AWS提供的用于管理容器集群的服务。ECS并非与云无关,因为它在后端使用其专有的群集管理和调度技术。您唯一需要担心的是供应商锁定。

    8.Azure AKS服务
    Azure Kubernetes服务是Azure的托管高可用性kubernetes服务。

    9.Digital Ocean Kubernetes服务
    Digital Ocean提供了托管的kubernetes服务以进行部署 基于容器应用程序。您可以从Digital Ocean获得$ 100的免费积分

    10.Red Hat OpenShift在线
    Openshift在线是Redhat的PaaS产品之一。您可以使用此服务通过openshift在云上部署应用程序。您不必管理群集,因为它是纯PaaS服务。

    选择工具或服务完全取决于您的需求和应用程序的复杂性。毫无疑问,许多组织将上述工具和服务用于其生产工作负载。

    展开全文
  • kubernetes for windows是来自于google云平台最新推出的一款功能强大的开源容器集群管理助手。kubernetes for windows基于docker构建一个容器的调度服务,该系统可以自动在一个容器集群中选择一个工作容器供使用,其...
  • Kubernetes容器集群管理.pdf,写的很好,很完善,值得阅读
  • - 容器网段:选择集群所在 VPC 内不与黑石节点所在子网冲突的任意网段,自动为集群内每台黑石节点分配一个25位的网段用于该节点分配 Pod 的 IP 地址。-
  • 容器集群k8s从入门到精通导学大纲资料.pdf
  • 人工智能-深度学习-面向深度学习应用的容器集群管理系统研究.pdf
  • 一种面向多租户的Linux容器集群组网方法.pdf
  • KubeTelecom:一种面向5G网络切片的多云多容器集群管理与运维引擎.docx
  • 1章绪论. 1 系 统开发背 景. 2国 内 外研究现状分析. 1Kubem etes 资源调度研究现状.2 Kubemetes 应用 容器集群管 理系 统研究

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 200,593
精华内容 80,237
关键字:

容器集群

友情链接: faq.zip