Kubernetes 的官方定义为:Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications.It groups containers that make up an application into logical units for easy management and discovery.
Kubernetes [koo-ber-nay‘-tice] 是支持多种底层容器虚拟化技术的分布式容器编排架构,具有完备的功能用于支撑分布式系统以及微服务架构,同时具备超强的横向扩容能力;它提供了自动化容器的部署和复制,随时扩展或收缩容器规模,将容器组织成组,并且提供容器间的负载均衡,提供容器弹性等特性。Kubernetes 是 Google 基于 Borg 开源的容器编排调度引擎,作为 CNCF(Cloud Native Computing Foundation)最重要的组件之一,它的目标不仅仅是一个编排系统,而是提供一个规范,可以让你来描述集群的架构,定义服务的最终状态;以正确的方式使用 Kubernetes 可帮助 DevOps 即服务团队自动扩展应用程序并以零停机时间进行更新。Kubernetes 作为云原生应用的基石,相当于一个云操作系统,其重要性不言而喻。
服务发现和负载平衡:Kubernetes 可以使用 DNS 名称或使用自己的 IP 地址暴露容器。如果容器的流量很高,Kubernetes 能够负载均衡并分配网络流量,以便部署稳定。
存储编排: Kubernetes 允许您自动安装您选择的存储系统,例如本地存储,公共云提供商等。
自动部署和回滚:您可以使用 Kubernetes 描述已部署容器的所需状态,并且可以以受控速率将实际状态更改为所需状态。例如,您可以自动化 Kubernetes 为您的部署创建新容器,删除现有容器并将所有资源用于新容器。
自动装箱:Kubernetes 允许您指定每个容器需要多少 CPU 和内存(RAM)。当容器指定了资源请求时,Kubernetes 可以更好地决定管理容器的资源。
自我修复:Kubernetes 重新启动失败的容器,替换容器,杀死不响应用户定义的运行状况检查的容器,并且在它们准备好服务之前不会将它们通告给客户端。
密钥和配置管理:Kubernetes 允许您存储和管理敏感信息,例如密码,OAuth 令牌和 ssh 密钥。您可以部署和更新机密和应用程序配置,而无需重建容器映像,也不会在堆栈配置中暴露机密。
它的速度很快:在不停机的情况下持续部署新功能时,Kubernetes 是一个完美的选择。Kubernetes 的目标是以恒定的正常运行时间更新应用程序。它的速度通过您每小时可以运送的许多功能来衡量,同时保持可用的服务。
遵循不可变基础架构的原则:以传统方式,如果多个更新出现任何问题,您就没有任何记录显示您部署了多少更新以及发生了哪个错误。在不可变基础结构中,如果您希望更新任何应用程序,则需要使用新标记构建容器映像并进行部署,从而使用旧映像版本终止旧容器。通过这种方式,您将获得一份记录,并了解您所做的事情以及是否有任何错误; 您可以轻松回滚到上一个图像。
提供声明性配置:用户可以知道系统应该处于什么状态以避免错误。作为传统工具的源代码控制,单元测试等不能与命令式配置一起使用,但可以与声明性配置一起使用。
大规模部署和更新软件:由于 Kubernetes 具有不可变的声明性,因此扩展很容易。Kubernetes 提供了一些用于扩展目的的有用功能:
处理应用程序的可用性:Kubernetes 检查节点和容器的运行状况,并在由于错误导致的盒中崩溃时提供自我修复和自动替换。此外,它在多个 Pod 之间分配负载,以便在意外流量期间快速平衡资源。
存储卷:在 Kubernetes 中,数据在容器之间共享,但如果 Pod 被杀死,则会自动删除卷。此外,数据是远程存储的,因此如果将 Pod 移动到另一个节点,数据将保留,直到用户删除为止。
原文:https://www.cnblogs.com/jacksonxiao/p/11298874.html