什么是容器?
容器是包含在任何环境中运行所需的所有元素的软件包。容器可以虚拟化操作系统,并在任何地方运行,不管目标环境是私有数据中心、公有云,还是开发者的个人笔记本电脑。从 Gmail 到 YouTube 和 Google 搜索,Google 的所有产品都是在容器中运行。容器化让我们的开发团队可以快速行动、高效部署软件,并以前所未有的规模运营。我们不但积累了有关如何运行容器化工作负载的丰富知识,而且一直与社区积极分享这些知识:从早期为 Linux 内核贡献 cgroup,到开放我们内部工具所采用的设计源代码作为 Kubernetes 项目,均是如此。
容器的定义
容器是轻量级应用代码包,它还包含依赖项,例如编程语言运行时的特定版本和运行软件服务所需的库。
容器支持在操作系统级别轻松共享 CPU、内存、存储空间和网络资源,并提供了一种逻辑打包机制,以这种机制打包的应用可以脱离其实际运行的环境。
容器有哪些优势?
责任分离
容器化使开发者和 IT 运营团队的责任泾渭分明,开发者专注于应用逻辑和依赖项,而 IT 运营团队可以专注于部署和管理,不必为应用细节分心,例如具体的软件版本和配置。
工作负载可移植性
容器几乎能在任何地方运行,极大减轻了开发和部署工作量:在 Linux、Windows 和 Mac 操作系统中;在虚拟机或物理服务器上;在开发者的机器或本地数据中心的机器上;当然还有在公有云上。
应用隔离
容器会在操作系统级别虚拟化 CPU、内存、存储和网络资源,为开发者提供在逻辑上与其他应用相隔离的操作系统接口。
容器与虚拟机的区别
您可能已经很熟悉虚拟机:一种运行在主机操作系统之上,可以访问底层硬件的客机操作系统,例如Linux 或 Windows。容器常常被拿来和虚拟机 (VM) 比较。与虚拟机相似,容器也可以让您将应用与库和其他依赖项打包,提供独立环境来运行您的软件服务。但是,我们从下方可以看到,两者的相似性仅此而已,因为容器为开发者和 IT 运营团队提供了更加轻型、具有众多优势的运营单元。
- 容器比虚拟机更加轻量化
- 容器在操作系统级别进行虚拟化,而虚拟机在硬件级别进行虚拟化
- 容器共享操作系统内核,其占用的内存与虚拟机相比微乎其微
容器有哪些用途?
敏捷开发
容器使开发者可以更快地移动数据,无需担心依赖项和环境。
高效运营
容器非常轻巧,它允许您仅使用所需的计算资源。这使您可以高效运行应用。
在任何地方运行
容器几乎可以在任何地方运行。无论您希望在什么地方运行软件,都可以使用容器。
相关产品和服务
Google Kubernetes Engine (GKE) 采用与 Kubernetes 相同的开发技术,是第一个可直接在生产环境中运行容器化应用的代管式服务,它可以帮助您为云工作负载实施成功的 Kubernetes 策略。
借助 Anthos,Google 可以在本地和多云环境中为您的应用提供一致的 Kubernetes 体验。您可以使用 Anthos 在任何地方以可靠、高效、安全的方式运行 Kubernetes 集群。