什么是容器编排?容器编排 是运行容器化工作负载和服务所需的大部分操作工作的自动化。这包括软件团队管理容器生命周期所需的大量内容,包括配置、部署、扩展(向上和向下)、网络、负载平衡等。
为什么我们需要容器编排?
因为容器本质上是轻量级和短暂的,所以在生产中运行它们很快就会变成一项巨大的工作。特别是当与微服务(通常每个都在自己的容器中运行)配对时, 容器化应用程序可能会转化为运行数百或数千个容器,尤其是在构建和运行任何大型系统时。
如果手动管理,这可能会带来很大的复杂性。容器编排是使开发和运营(或 DevOps )可管理操作复杂性的原因,因为它提供了一种自动化大部分工作的声明方式。这使其非常适合 DevOps 团队和文化,这些团队通常努力以比传统软件团队更快的速度和敏捷性运行。
容器编排有什么好处?
容器编排是使用容器的关键,它使组织能够充分发挥其优势。它还为容器化环境提供了自己的优势,包括:
- 简化操作: 这是容器编排最重要的好处,也是采用它的主要原因。容器引入了大量的复杂性,如果没有容器编排来管理它,它会很快失去控制。
- 弹性: 容器编排工具可以自动重启或扩展容器或集群,提高弹性。
- 增加安全性: 容器编排的自动化方法通过减少或消除人为错误的机会来帮助保持容器化应用程序的安全。
什么是容器及其好处?
容器 是一种构建、打包和部署软件的方法。它们与虚拟机 (VM)相似但不相同 。主要区别之一是容器与它们运行的底层操作系统和基础设施隔离或抽象出来。用最简单的术语来说,容器既包括应用程序的代码,也包括代码正常运行所需的一切。
正因为如此,容器提供了许多好处,包括:
- 可移植性: 容器的最大好处之一是它们可以在任何环境中运行。这使得容器化工作负载更容易在不同的云平台之间移动,例如,无需重写大量代码以确保其能够正确执行,而不管底层操作系统或其他因素如何。这也提高了开发人员的生产力,因为他们可以以一致的方式编写代码,而不必担心部署到不同环境(从本地机器到本地服务器再到 公共云)时的执行。
- 应用程序开发: 容器可以加快应用程序的开发和部署,包括随时间的变化或更新。对于容器化微服务尤其如此。这是一种软件架构方法,需要将较大的解决方案分解为较小的部分。然后可以独立部署、更新或停用这些离散组件(或微服务),而无需更新和重新部署整个应用程序。
- 资源利用和优化: 容器是轻量级和短暂的,因此它们消耗的资源更少。例如,您可以在一台机器上运行多个容器。
什么是 Kubernetes 容器编排?
Kubernetes 是一个流行的容器编排开源平台。它使开发人员能够轻松构建容器化应用程序和服务,以及扩展、调度和监控这些容器。虽然容器编排还有其他选项,例如 Apache Mesos 或 Docker Swarm,但 Kubernetes 已成为行业标准。Kubernetes 提供了广泛的容器功能、动态的贡献者社区、云原生应用程序开发的增长以及商业和托管 Kubernetes 工具的广泛可用性。Kubernetes 还具有高度可扩展性和可移植性,这意味着它可以在广泛的环境中运行并与其他技术(例如 服务网格)结合使用。
除了启用容器编排的自动化基础之外,Kubernetes 还被认为是高度声明性的。这意味着开发人员和管理员使用它来本质上描述他们希望系统如何运行,然后 Kubernetes 以动态方式执行所需的状态。
什么是多云容器编排?
在最基本的意义上,“多云”一词是指使用来自两个或多个提供商的两个或多个云服务的 IT 策略。在容器和编排的上下文中,多云通常是指使用两个或多个云基础设施平台(包括公共云和私有云)来运行应用程序。因此,多云容器编排是指使用编排工具跨多云基础设施环境操作容器,而不是在单个云环境中运行容器。
软件团队出于不同的原因追求多云战略,但好处可能包括基础设施成本优化、灵活性和可移植性(包括减少供应商锁定)和可扩展性(例如在必要时从本地环境动态扩展云.) 多云环境和容器齐头并进,因为后者具有便携、“随处运行”的特性。
容器编排与 Docker
Docker 是用于构建容器的特定平台,包括 Docker Engine 容器运行时,而容器编排是一个更广泛的术语,指的是任何容器生命周期的自动化。Docker还包括Docker Swarm,这是平台自带的容器编排工具,可以自动启动Docker容器。