美文网首页程序员Docker容器技术
容器编排的作用和要实现的内容

容器编排的作用和要实现的内容

作者: RaiseHead | 来源:发表于2018-06-13 15:19 被阅读27次

Docker平台以及周边生态系统包含很多工具来管理容器的生命周期。例如,Docker Command Line Interface(CLI)满足在单个主机上管理容器的需求,但是面对部署在多个主机上的容器时就无所适从了。为了超越单个容器管理,我们必须转向编排工具。容器编排工具将生命周期管理能力扩展到部署在大量机器集群上部署的复杂的、多容器工作负载。

容器编排工具为开发人员和基础设施团队提供了一个抽象层来处理大规模的容器化部署。容器编排工具提供的特征在众多提供者之间有所不同,然而常见的公共特征包含准备、发现、资源管理、监视和部署。

由于微服务将应用程序分解为不同的微应用程序,许多开发人员会请求更多的服务器节点进行部署。为了正确地管理微服务,开发者倾向于在每个VM中部署一个微服务,这进一步降低了资源利用率。在许多情况下,这会导致CPU和内存的过度分配。

在许多部署中,微服务的高可用性需求迫使工程师添加越来越多的服务实例来进行冗余。实际上,尽管它提供了所需的高可用性,但这将导致出现一些未充分利用的服务器实例。一般而言,与单一应用程序部署相比,微服务部署需要更多的基础设施。由于基础设施成本的增加,许多组织未能看到微服务的价值。

为了解决上面提到的问题,我们需要一个工具能做到以下几点:

  • 活动自动化。例如有效地向基础设施分配容器,这一行为对开发人员和管理员都是透明的。
  • 为开发人员提供一个抽象层,以便他们可以在不知道使用哪个机器托管他们的应用程序的情况下,将应用程序部署到数据中心。
  • 对部署设置规则或约束。
  • 提供更高的敏捷性,为开发人员和管理员提供最小的管理开销和最少的人为交互。
  • 通过最大限度地利用可用资源,有效地构建、部署和管理应用程序。

典型的容器编排工具有助于虚拟化一组机器并将它们作为单个集群管理。容器编排工具也有助于将机器上的工作负载或容器移动到消费者透明的位置。很多工具目前既支持基于DOCKER的容器,也支持非容器化二进制文件部署,例如独立的Spring Boot应用程序。这些容器编排工具的基本功能是从应用程序中抽象出实际的服务器实例。

容器编排工具的一些关键能力概括如下:

  • 集群管理:将虚拟机和物理机器的集群管理为一台大型机器。这些机器在资源能力方面可能有些差异,但大体上都是以Linux作为操作系统的机器。这些虚拟集群可以建立在云上、本地或两者的混合。
  • 部署:能处理有大量机器的应用程序和容器的自动部署。支持多个版本的应用程序容器,并且还支持跨越大量集群机器的滚动升级。这些工具还能够处理故障回滚。
  • 可伸缩性:支持应用实例的自动和手动伸缩,以性能优化为主要目标。
  • 健康:它管理集群、节点和应用程序的健康。可以从集群中移除异常的机器和应用程序实例。
  • 基础结构抽象化:开发人员不必担心机器、容量等问题。完全是容器编排工具来决定如何调度和运行应用程序。这些工具也抽象化机器的细节、能力、使用和位置。对于应用程序所有者来说,它们相当于一个容量几乎无限的大型机器。
  • 资源优化:这些工具以有效的方式在一组可用机器上分配容器工作负载,从而降低成本,通过从简单的到复杂的算法可有效地提高利用率。
  • 资源分配:基于应用程序开发人员设置的资源可用性和约束来分配服务器。资源分配将基于约束、规则、端口要求、应用依赖性、健康等等。
  • 服务可用性:确保服务在集群中正常运行。在机器故障的情况下,容器编排会自动通过在集群中的其他机器上重新启动这些服务来处理故障。
  • 敏捷性:敏捷性工具能够快速分配工作负载到可用资源,或者在资源需求发生变化时跨机器移动工作量。此外,可以根据业务临界性、业务优先级等来设置约束重新调整资源。
  • 隔离:一些工具提供了资源隔离。因此,即使应用程序不是容器化的,也可以实现资源隔离。

相关文章

  • 容器编排的作用和要实现的内容

    Docker平台以及周边生态系统包含很多工具来管理容器的生命周期。例如,Docker Command Line I...

  • docker-compose 一键构建LNMP

    lnmp lnmp的容器编排。 实现对多个容器的编排:nginx、mysql、php-fpm。支持一键构建启动和销...

  • docker隔离升级版容器实现 kata-containers一

    简介 kata-containers是新的虚拟机实现,可以实现和现在容器生态无缝连接,与时下最流行的容器编排工具k...

  • SKIL/安装/Kubernetes

    Kubernetes Kubernetes是一个用于容器编排的开源工具。它在管理容器工作负载和实现集群及其部署的自...

  • (一)初识Docker与容器

    Docker 是基于 Go 语言实现的开源容器项目,主要用于创建、管理和编排容器。 它诞生于 2013 年年初,最...

  • 知识点

    知识点 容器本身没有价值,有价值的是“容器编排”。 容器,其实是一种特殊的进程而已。 Linux 容器的具体实现方...

  • K8S部署应用的个人心得

    前言 关于 dockerK8S 是编排容器的技术平台, 容器技术的代表实现即为 docker, 因此, 操作 K8...

  • docker1--基础学习

    容器本身是没有价值的,有价值的是容器编排 容器是通过'边界'的方式实现的沙盒技术。容器技术的核心功能,就是通过约束...

  • K8S 基础概念

    了解什么是容器编排? 容器编排就是有关管理容器生命周期的全部工作,特别是在大型动态环境中。 软件团队使用容器编排来...

  • k8s+mysql+pv+pvc+NFS实现mysql容器编排

    k8s+mysql+pv+pvc+NFS实现mysql容器编排 首先需要介绍概念:pv和pvc PV 是集群提供的...

网友评论

    本文标题:容器编排的作用和要实现的内容

    本文链接:https://www.haomeiwen.com/subject/rmbjeftx.html