什么是 Kubernetes?
Kubernetes 是一个开源项目,已成为广泛使用的容器编排工具,可以大规模部署和管理多容器应用程序。虽然它通常与领先的容器化平台 Docker 一起使用,但它与任何遵守容器映像格式和运行时开放容器倡议 (OCI) 标准的容器系统兼容。由于其开源性质和最小的使用限制,任何想要在任何位置(本地、公共云或两者的组合)运行容器的人都可以免费使用它。
Kubernetes 有什么好处?
自动化操作:
Kubernetes 具有内置命令,可处理应用程序管理所需的大部分工作,实现日常操作的自动化并确保应用程序按预期运行。
基础设施抽象:
Kubernetes 处理您的工作负载的计算、网络和存储,让开发人员可以专注于应用程序,而不必担心底层环境。
服务健康监控:
Kubernetes 持续监控服务的健康状况,重启失败或停滞的容器,并仅在确认服务正在运行时才向用户提供服务。
谷歌和 Kubernetes
Kubernetes 起源于 Google 的一个项目,它是 Google Borg 的继任者,Google Borg 是内部使用的早期容器管理工具。谷歌在 2014 年开源了 Kubernetes,因为 Kubernetes 促进的分布式微服务架构使得在云中运行应用程序变得容易。谷歌将容器、微服务和 Kubernetes 的采用视为客户使用其云服务的潜在驱动力。但是,它也适用于 Azure 和 AWS。 Kubernetes 目前由 Linux 基金会下的 Cloud Native Computing Foundation 维护。
Kubernetes 与 Docker
Kubernetes 和 Docker 通常被错误地认为是相互排斥的替代方案,因为它们是运行容器化应用程序的不同但互补的技术。
Docker 允许将运行应用程序所需的一切打包到一个可以存储和打开的容器中。一旦开始打包应用程序,就需要一种方法来管理它们;这就是 Kubernetes 的用武之地。
Kubernetes,希腊语中的“船长”,就像船长一样,负责将这些容器安全地运输和运送到需要的地方。
- Kubernetes 可以独立使用,也可以与 Docker 结合使用
- Docker 不是替代方案,而是通常与 Kubernetes 一起使用以大规模容器化和运行应用程序,从而减少了“Kubernetes 与 Docker”的比较。
- Docker 和 Kubernetes 之间的区别在于它们各自在容器化和运行应用程序方面的作用。
- Docker 是一个开放的行业标准,用于在容器中打包和分发应用程序。
- Kubernetes 使用 Docker 来部署、管理和扩展容器化应用程序。
Kubernetes 有什么用?
Kubernetes 用于创建可部署在任何地方的可管理应用程序。 当作为托管服务提供时,Kubernetes 提供了多种选项来满足您的需求。一些常见的用例包括:
提高开发速度
Kubernetes 有助于构建基于云原生微服务的应用程序,并支持现有应用程序的容器化,成为实现应用程序现代化和加快开发速度的基础。
在任何地方部署应用程序
Kubernetes 旨在随处使用,使应用程序可以跨本地、公有云和混合部署运行,从而可以在需要的地方运行应用程序。
运行高效的服务
Kubernetes 可以自动调整运行服务所需的集群大小,允许应用程序根据需求自动扩展并高效运行。
Kubernetes 架构及其工作原理?
容器以易于部署和随处移植的形式封装应用程序。 Kubernetes 架构旨在运行容器化应用程序。一个 Kubernetes 集群包括至少一个控制平面和至少一个工作节点(通常是物理或虚拟服务器)。
控制平面的主要职责是通过 API 服务器公开 Kubernetes API 并管理组成集群的节点。控制平面做出有关集群管理的决策,并检测和响应集群事件。在 Kubernetes 中运行的应用程序的最小执行单元是 Kubernetes Pod,它包含一个或多个容器。 Kubernetes Pod 在工作节点上运行。