云原生新时代弄潮儿 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 密钥
。你能够在不重建容器镜像的状况下部署和更新密钥和应用程序配置,也无需在堆栈配置中裸露密钥。