分布式
分布式就是把一个系统拆分开来部署到不同机器,与集群相同的是,两者都需要多台服务器,不同点是分布式并不强调实现相同的业务。
貌似网上大多数资料,对于集群和分布式的区分,都执着于两者是否实现相同的业务,即不同服务器运行同一份功能就是集群,运行不同功能就是分布式。
个人看法是,集群强调的是“集”、“统一的概念”,是物理上的、环境上的概念,只要是多台计算机搞在一起就是集群;
而分布式,更多的是描述应用系统的部署方式,把一个系统拆开部署到不同服务器,就是分布式。
🍑 微服务
有必要提一下微服务,使用 kubernetes 可以更加便捷地部署微服务应用。
微服务和分布式都强调 “拆”、“分”,但微服务描述的是应用系统的架构,即怎么样把系统拆分,拆成多 “微”,这是微服务需要考虑的;
而分布式,强调的是 “分布”,即系统的部署方式,该怎么把系统的模块分布好,从而提高容灾能力、高可用性。
当 “微服务” 应用部署到一台服务器上,它就是 “微服务应用”,当把 “微服务” 应用的模块分开来部署到不同服务器,那么它也成了“分布式应用”
- 什么是Kubernetes
Kubernetes 这个词比较长,常简写成 k8s," 8 " 表示中间的 8 个字母。
Kubernetes(k8s) 是 Google 开源由 CNCF 基金会管理的容器集群管理系统,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能。
Kubernetes 被称为现在化的数据中心操作系统,大家都知道,操作系统是用来管理硬件资源比如 CPU、内存、磁盘、输入输出设备等资源的,并完成对这些资源的调度,而 Kubernetes 是将数据中心里的物理节点作为管理对象,并对物理节点上的资源进行调度完成编排任务。
操作系统的另一个特性就是容易扩展,比如,当 GPU 这种硬件出现后,操作系统应该很容扩展去管理这种资源,Kubernetes 作为数据中心操作系统同样也有这样的特性,它也非常容易扩展。
🍑 Kubernetes的特点
Kubernetes是一种用于在一组主机上运行和协同容器化应用程序的系统,旨在提供可预测性、可扩展性与高可用性的方法来完全管理容器化应用程序和服务的生命周期的平台。
用户可以定义应用程序的运行方式,以及与其他应用程序或外部世界交互的途径,并能实现服务的扩容和缩容,执行平滑滚动更新,以及在不同版本的应用程序之间调度流量以测试功能或回滚有问题的部署。
Kubernetes提供了接口和可组合的平台原语,使得用户能够以高度的灵活性和可靠性定义及管理应用程序。简单总结起来,它具有以下几个重要特性。
🍅 自动装箱
建构于容器之上,基于资源依赖及其他约束自动完成容器部署且不影响其可用性,并通过调度机制混合关键型应用和非关键型应用的工作负载于同一节点以提升资源利用率。