Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化工作负载和服务,有助于声明式配置和自动化,它拥有庞大且快速发展的生态系统,Kubernetes 服务、支持和工具随处可见。
您可以将运行 Linux® 容器的主机组集群在一起,Kubernetes 可帮助您轻松高效地管理这些集群。
Kubernetes 集群 可以跨越本地、公共、 私有或 混合云的主机,因此,Kubernetes 是托管 需要快速扩展的云原生应用程序的理想平台 ,例如通过Apache Kafka的实时数据流 。
Kubernetes 的名字来源于希腊语,意思是舵手或飞行员,K8s 作为缩写的结果来自计算“K”和“s”之间的八个字母,Google 于 2014 年开源了 Kubernetes 项目。Kubernetes 结合了 Google 超过 15 年的大规模运行生产工作负载的经验以及来自社区的最佳创意和实践。
保持容器化应用程序的启动和运行可能很复杂,因为它们通常涉及部署在不同机器上的许多容器,Kubernetes 提供了一种调度和部署这些容器的方法,并将它们扩展到您想要的状态并管理它们的生命周期,使用 Kubernetes 以可移植、可扩展和可扩展的方式实现基于容器的应用程序。
容器是捆绑和运行应用程序的好方法。在生产环境中,您需要管理运行应用程序的容器并确保没有停机,例如,如果一个容器宕机,另一个容器需要启动,如果这种行为由系统处理会不会更容易?
Kubernetes 提供了一个弹性运行分布式系统的框架,负责应用程序的扩展和故障转移,提供部署模式等等,例如,Kubernetes 可以轻松管理系统的金丝雀部署。
Kubernetes 提供:
随着应用程序扩展到跨多个服务器部署的多个容器,操作它们变得更加复杂,为了管理这种复杂性,Kubernetes 提供了一个开源 API,用于控制这些容器的运行方式和位置。
Kubernetes 编排虚拟机集群并根据它们的可用计算资源和每个容器的资源要求安排容器在这些虚拟机上运行,容器被分组为 pod,这是 Kubernetes 的基本操作单元,这些 pod 可以扩展到您想要的状态。
Kubernetes 还自动管理服务发现、整合负载平衡、跟踪资源分配并根据计算利用率进行扩展,而且,它会检查单个资源的健康状况,并通过自动重启或复制容器使应用程序能够自我修复。
Kubernetes pod 是一组容器,是 Kubernetes 管理的最小单元,Pod 有一个 IP 地址,应用于 Pod 内的每个容器。Pod 中的容器共享相同的资源,例如内存和存储,这允许将 pod 内的各个 Linux 容器作为一个应用程序共同处理,就好像所有容器化进程在更传统的工作负载中在同一台主机上一起运行一样。
当应用程序或服务是需要运行的单个进程时,只有一个容器的 pod 是很常见的,但是当事情变得更复杂,多个进程需要使用相同的共享数据卷协同工作才能正确运行时,
例如,如果您正在使用创建 GIF 的图像处理服务,一个 pod 可能有多个容器协同工作来调整图像大小,主容器可能正在运行接收请求的非阻塞微服务应用程序,然后一个或多个辅助(side-car)容器运行批处理后台进程或清理存储卷中的数据工件,作为管理整体应用程序性能的一部分。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。