云原生新时代弄潮儿k8s凭什么在容器化方面自成一家?
Kubernetes 能够为做些什么?
在学习一种新技能之前,囧囧倡议不要下来先看各种牛叉的实现,咱们须要先搞清楚这个技能是什么?学习了之后能为咱们晋升什么有用的价值。毕竟在当今技术疾速更新迭代的时代,咱们没有足够的精力去学习太多没有用的常识去扩大的无用的广度,只有你明确了你须要学习的货色的价值,你才有能源去继续跟进,去分析,去了解,去爱上它,用它发明价值。
Kubernetes 是什么?
Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。
官网解读
Kubernetes 是一个可移植的,可扩大的开源平台。用于治理容器化的工作负载和服务,不便了申明式配置和自动化。它领有一个宏大且快速增长的生态系统。Kubernetes 的服务,反对和工具宽泛可用。
部署演进
传统部署
各个组织机构在物理服务器上运行应用程序。无奈为物理服务器中的利用程序定义资源边界,更多的抉择是凭借工程师的集体教训去分配资源,也就是无奈正当的去布局资源分配,这会导致资源分配问题。
虚拟化部署
虚拟化技术容许你在单个物理服务器的 CPU 上运行多个虚拟机(VM)。容许应用程序在 VM 之间隔离,虚拟化技术可能更好地利用物理服务器上的资源,相比于传统部署形式,长处是更好的可伸缩性,升高硬件老本。
容器部署
以应用程序为核心的治理资源隔离的粒度更细腻,比VM要更简洁,更容易扩大移植,容器相似于 VM,然而它们具备被放宽的隔离属性,能够在应用程序之间共享操作系统(OS)。
为什么须要 Kubernetes,它能做什么?
利用容器化
容器是打包和运行应用程序的好形式。容器化曾经做到应用程序能以简略疾速的形式公布和更新。
线上环境咱们应用程序须要继续稳固的运行,不能早上部署好了,下午用户无奈应用。
呈现故障问题的时候,须要有疾速响应的机制去确保不会造成重大影响。
程序是无错的状况下,对应到容器层面,就是咱们须要保障容器是正确的,不能因为容器的意外而影响到火线。
这意味着咱们须要治理运行应用程序的容器,时刻监督着运行状况,并确保容器不会停机。
如果一个容器产生故障,须要疾速采取措施,例如重启容器,或者另外启动一个容器去代替它。
中午凌晨两点钟,你在家里呼呼大睡,线上疯狂报警,你不得不连忙起床解决
咦,想想都惨呀!
如果交给零碎去解决容器问题,会不会更容易?更不便?不再须要你精力高度集中每天留神可能产生的各种意外状况?
所以,k8s来了,它来了,它来了,它带着旋风跑来了!
Kubernetes 提供了一个可弹性运行分布式系统的框架。
服务发现和负载平衡
Kubernetes 能够应用 DNS 名称或本人的 IP 地址公开容器,如果进入容器的流量很大, Kubernetes 能够负载平衡并调配网络流量,从而使部署稳固。
存储编排
Kubernetes 容许你主动挂载你抉择的存储系统,例如本地存储、公共云提供商等。
主动部署和回滚
你能够应用 Kubernetes 形容已部署容器的所需状态,它能够以受控的速率将理论状态 更改为冀望状态。例如,你能够自动化 Kubernetes 来为你的部署创立新容器, 删除现有容器并将它们的所有资源用于新容器。
主动实现装箱计算
Kubernetes 容许你指定每个容器所需 CPU 和内存(RAM)。当容器指定了资源申请时,Kubernetes 能够做出更好的决策来治理容器的资源。
自我修复
Kubernetes 重新启动失败的容器、替换容器、杀死不响应用户定义的 运行状况查看的容器,并且在筹备好服务之前不将其通告给客户端。
密钥与配置管理
Kubernetes 容许你存储和治理敏感信息,例如
明码
、OAuth 令牌
和ssh 密钥
。你能够在不重建容器镜像的状况下部署和更新密钥和应用程序配置,也无需在堆栈配置中裸露密钥。