什么是容器编排?
容器编排是指在容器的整个生命周期内实现部署、管理、扩展和联网自动化的过程。借助容器编排,您可以在不同的环境中部署相同的应用,而无需重新设计它。对于需要部署和管理数百乃至数千个 Linux® 容器和主机的企业而言,这一功能尤显重要。
选择以编排方式来管理容器的生命周期,还有利于 DevOps 团队将容器集成到持续集成和持续交付(CI/CD)工作流中。 容器化 微服务连同 应用编程接口(API)和 DevOps 团队,都是 云原生应用的重要基础。
容器编排具有哪些用途?
容器编排可用于自动执行和管理任务,例如:
- 置备和部署
- 配置和调度
- 分配资源
- 确保容器可用性
- 根据跨基础架构的工作负载平衡来扩展或移除容器
- 负载平衡和流量路由
- 监控容器健康状况
- 根据将要使用的容器来配置应用
- 确保容器之间安全交互
红帽资源
容器编排工具
容器编排工具为大规模管理容器和微服务架构提供了框架。有多种容器编排工具可用于容器生命周期管理。其中一些备受欢迎的工具有:Kubernetes、Docker Swarm 和 Apache Mesos。
Kubernetes 是一种开源的容器编排工具,最初由 Google 的工程师开发和设计。2015 年,Google 将 Kubernetes 项目捐赠给了新成立的云原生计算基金会。
借助 Kubernetes 编排功能,您可以构建跨多个容器的应用服务,跨集群调度容器,扩展这些容器,并长期持续管理其健康状况。
Kubernetes 可以免去在部署和扩展容器化应用过程中涉及的许多手动操作。您可以将运行 Linux 容器的主机群组(无论是物理机还是虚拟机)聚合成集群,而 Kubernetes 可为您提供轻松高效地管理这些集群的平台。
从更广泛的角度来说,它可以帮助您在生产环境中完全实施并依托基于容器的基础架构。
而且,这些集群可部署在跨公共云、私有云或混合云的主机上。因此,对于要求快速扩展的云原生应用而言,Kubernetes 是理想的托管平台。
通过 Kubernetes,您无需重新设计即可移动应用,从而实现工作负载的可移植性和负载平衡。
Kubernetes 的主要组件:
- 集群:由一个控制平面和一个或多个计算器(节点)组成。
- 控制平面:控制 Kubernetes 节点的进程集合,所有任务分配都从这里开始。
- Kubelet:运行在节点上的服务,可读取容器清单,确保指定的容器启动并运行。
- 容器集(Pod):部署在单个节点上的一组一个或多个容器。容器集中的所有容器共享一个 IP 地址、IPC、主机名称和其他资源。
容器编排如何运作?
使用容器编排工具(如 Kubernetes)时,将使用 YAML 或 JSON 文件来描述应用的配置。配置管理工具可以通过配置文件了解在哪里查找容器镜像、如何建立网络以及在哪里存储日志。
部署新容器时,容器管理工具将自动根据任何已设定的需求或限制,将部署任务调度到集群中,并找到合适的主机。随后,容器编排工具会根据在 compose 文件中确定的规范来管理容器生命周期。
对于基于容器的应用和服务,您可以使用 Kubernetes 模式来管理它们的配置、生命周期和扩展。这些可重复使用的模式是 Kubernetes 开发人员构建完整系统时必不可少的工具。
容器编排可以在运行容器的任何环境中使用,包括本地服务器和公共云或私有云环境。
企业容器编排
真正用于生产环境的应用通常会跨多个容器运行。这些容器必须跨多个服务器主机进行部署。这便是红帽® 的用武之地。
红帽 OpenShift® 是企业级的 Kubernetes,而且具备更多功能。OpenShift 额外涵盖了包括镜像仓库、联网、遥测、安全防护、自动化和服务在内的众多技术,从而使 Kubernetes 成为可供企业使用的强大平台。
借助红帽服务互连等工具,可以通过路由器和网关在不同的云、边缘设备、通用 Kubernetes 和 OpenShift 之间建立可靠的服务通信链路。
依托红帽技术,开发人员可以创建新型容器化应用,在云中进行托管和部署,利用高可用性、可扩展性、控制力和编排能力,快速轻松地将出色创意转化为新业务。
红帽官方博客
获取有关我们的客户、合作伙伴和社区生态系统的最新信息。