We couldn't find a match for given <KEYWORD>, please try again.

什么是容器?

容器是一种轻量级独立软件包,可封装完整的运行时环境,包括应用及其依赖项(库、二进制文件和任何其他配置文件),从而提高应用的移动性、可扩展性、安全性和敏捷性。

容器深受开发人员和运维人员的欢迎,因为它们提供了一种简单的方法来部署和管理应用,而无需考虑目标环境。容器改进了开发和运维团队之间的交接,从而促进了 DevOpsDevSecOps 实践。

容器可有效使用资源,从而实现高密度和高资源利用率。尽管容器几乎可以与任何应用配合使用,但它们通常与微服务相关联,多个容器会在微服务中运行单独的应用组件或服务。组成应用的容器通常使用容器编排平台(如 Kubernetes)进行协调和管理。

容器是通过将一个或多个存储库中的多个镜像组成的应用,以及任何库或其他应用依赖关系打包来创建的,从而消除了移动性和兼容性问题。

构建 Kubernetes 容器的新方法

构建 Kubernetes 容器的新方法

容器和虚拟机之间的协同效应

容器与虚拟机

每个虚拟机 (VM) 运行一个操作系统的完整或部分实例,而多个容器共享一个操作系统实例。容器中包含运行应用所需的一切,使多个容器化应用能够在单个主机系统中独立运行。由于可以在一个虚拟机中运行多个容器,因此可以同时使用这两种技术

使用容器有哪些优势?

使用容器构建应用可加快新功能的交付速度,并营造持续创新的环境。其优势包括:

敏捷性。提升开发人员的敏捷性可以提高工作效率,加快应用开发速度。容器可精简 CI/CD 流水线,非常适合 DevOps 团队和微服务部署。

可扩展性和高可用性。使用 Kubernetes,可以随着工作负载要求的变化自动扩展或缩减容器部署,提高应用可用性。

移动性。与虚拟机相比,容器消耗的资源更少,体量更轻。容器化应用与基础架构无关,无论部署在何处,它们的运行方式都是一样的。

恢复能力。容器化应用与操作系统和其他容器隔离并抽象化;一个容器发生故障时不会影响其他正在运行的容器。

容器标准

容器格式化和运行时环境的标准由开放容器计划 (OCI) 控制,该项目于 2015 年成立,其明确目的是制定开放的行业标准。OCI 目前提供两种规范:运行时规范 (runtime-spec) 和镜像规范 (image-spec)。

容器安全性

容器需要改变实施和管理安全策略的方式。应尽可能使用 DevSecOps 方法将安全性内置于容器生命周期中。安全团队与开发和运维团队合作,调整现有的监管和合规策略,以适应新工具和应用生命周期的变化。

容器自动化

手动工作会减慢开发团队的开发速度。容器自动化使开发人员能够专注于代码而不是打包。容器镜像是分层构建的。使用自动化的容器构建方法,如果某一层发生变化,只需更新该层。例如,如果只需要更新系统库,则只需重建包含库的层。由于其他层保持不变,因此减轻了测试和验证负担,更新后的容器能够更快、更频繁地投入生产。

Docker

自 2013 年推出以来,Docker 几乎就是容器的同义词,目前仍用于构建容器镜像。Docker 环境包括容器运行时,还能进行容器构建和镜像管理。由于 Docker 版本是符合 OCI 标准的容器镜像,因此 Docker 镜像可以在任何符合 OCI 标准的容器运行时上运行。

Kubernetes

Kubernetes 是一种开源容器编排工具,已成为事实上的标准。Kubernetes 通过声明性配置和自动化自动为容器执行部署、负载均衡、资源分配,并确保安全性。它使容器化应用保持在理想状态下运行,确保它们具有可扩展性和恢复能力。容器编排有助于管理容器生命周期的复杂性。这对于包含大量容器的分布式应用尤为重要。
Kubernetes 正在转向容器运行时接口 (CRI),该接口支持更广泛的容器运行时,可在不同运行时之间实现顺畅的互操作性。已于 2020 年 12 月宣布弃用与 Kubernetes 配合使用的 Docker 运行时

容器应用场景

面向开发人员

  • 提高应用跨不同平台和配置的移动性,这样在语言编译器或解释器的某个版本上开发的代码就可以在后续版本上完美运行,无需修订。
  • 使开发人员不必在同一基础架构上进行开发、测试和部署,在自己的笔记本电脑上编写代码的开发人员可以确信,应用将在任何其他基础架构(无论是本地部署服务器还是云端虚拟机)上正常运行。
  • 促进 CI/CD 等敏捷开发流程,加快代码验收和部署。

面向 IT 运维

  • 以轻型方式与其他应用隔离,提高应用安全性。
  • 跨不同的操作系统版本、网络拓扑或存储配置以及云平台顺畅迁移容器化应用。
  • 在单个操作系统实例上运行多个应用容器,提高 IT 效率。由于容器的大小通常为数十 MB,而虚拟机的大小通常为 10 GB 或更大,因此可以在单个服务器实例上运行大量容器。

可在几毫秒内启动额外的容器实例(而启动虚拟机需要几分钟),可提供极高的按需可扩展性。

相关解决方案和产品

采用 Kubernetes 进行应用现代化改造

在数据中心或云环境中提供开发人员就绪型 Kubernetes

由源代码构建 Kubernetes 容器

VMware Tanzu Build Service 可自动创建、管理和监管容器,适用于大型企业。

多云 Kubernetes 管理

VMware Tanzu Mission Control 是多云 Kubernetes 管理平台,可提供基于 Kubernetes 的一致平台,以实现云虚拟化,该平台支持在任何云上大规模管理、运维和分发应用。