K8s,就是Kubernetes(库博内茨),是由Google发明创建的用于自动化部署、扩展和管理容器化的应用程序。很多人一直不太理解k8s到底是做什么的,以及在实际项目运行中的意义和作用到底有多大,今天丁老师就来介绍一下。

K8s是做什么的?
k8s是一个开源的容器管理平台,用于自动化管理、调度和扩展容器化应用,其实就是个管理多容器、多服务器的中间件。K8s运行和部署在一台或多台Linux服务器上,然后把这些服务器变成一台电脑来统一管理。
K8s的作用是什么?
k8s的作用,其实用普通话来说,就是好比你拥有多个集群服务器,可以用k8s来给他们当统一的管家,专门管理容器化的应用程序。比如:
1.你把一个网站和配置好的环境打包成容器交给k8s,然后k8s会自动把这个容器分配到多台服务器上运行,当其中某台服务器出现故障不能运行时,k8s会自动把这个容器分配到其他状态正常的服务器上,以保持网站的永久在线和正常访问。
2.在网站访问量过大时,可以自动分配容器到多个服务器来分担访问压力,当访问量小时,会自动回收资源。
K8s的实际运用意义
k8s的运用意义很大,简单说就是让复杂的应用部署、系统运维,变得傻瓜式操作,实现简单、可靠、自动化。可以解决的痛点和场景如下:
1.服务器故障、宕机后的项目应用服务自动重启。
2.服务器故障、宕机后的节点自动迁移。
3.针对高流量高并发环境下的,动态自动配置项目应用实例数量。
4.项目应用打包成容器的快捷部署。
5.支持项目应用滚动更新,项目应用版本无缝升级。
6.多个微服务的统一管理和配置。
K8s的缺点及不足
虽然K8s能解决很多痛点问题,但同时也存在着很多的缺点与不足,这也是很多公司宁可安排运维人员手动维护,也不愿意上K8s的原因,具体如下:
1.有一定的学习成本,涉及N多种概念,上手门槛高。即使是有一定技术经验的开发者,也需要数周甚至数月的时间才能熟练。需要一定的技术理论知识,远不是那种学了两年程序员培训班的半把刷子就能搞定的。
2.小团队不适合,学习周期和维护成本太高,很多小团队k8s还没跑起来,仅仅是配置就搞崩溃了,浪费时间浪费钱。
3.服务器配置要求高,运维成本也高,没有直接用Docker或者云函数的性价比高。
4.调试困难,各种错误,层层排查,错误原因不清不楚,关键原因晦涩,随便一个故障可能背后有十几种原因,与其说是排查,不如说是一个个去猜。
5.默认以root方式运行,未限制资源配额,RBAC权限配置复杂,在操作中非常容易误操作而授与高级别权限,安全性非常一般,需要额外对安全性进行加固。
6.状态化应用太复杂,运行Mysql(麦瑟寇)、Redis(雷迪斯)、Kafka(卡夫卡)等应用,状态服务需要特殊处理,还不如直接用云数据库。
7.相关人才太少,工资成本高昂。运维求职懂k8s的百里挑一,真正能把k8s吃透摸熟运用精通的,更是万里挑一,即使真能招到,又要负担高昂的工资,作为一个不赚钱的职位,实在是性价比太低。
意见和建议
k8s是最近几年的热点,很多热点项目,特别是智慧城市、物联网、大数据、AI视频分析、交通调度、金融、高频电商等项目,都应用到了k8s。但在实际的运行中,大多项目都是打着k8s的口号,真正能把k8s玩透的项目,除了头部的几家公司和大厂,大部分公司都是处于一个边学边应用的状态。因为单不说项目,仅仅是k8s的部署、运维成本就太高了,不管你是多么庞大的应用,多么复杂系统,多么高的并发,使用k8s的成本远比不使用k8s的成本高,目前各中小IT企业的技术团队,有一说一,就没几个能把k8s玩明白的,那些所谓的CTO更是现学现卖。
其实如果真要说起来的话,99%的应用需求都是不需要k8s的,在k8s没有诞生出来之前,很多高并发网站,如google、淘宝等,人家的网站照样跑的嗷嗷叫,高并发、海量数据、双11、分布式存储、数据同步,照样运行正常,这也就说明k8s这玩意也并不是必需品,也并非必须选择,也并非不可替代,只是一个目前主流的技术罢了。
对于大型公司,有资金的,有实力的,有人才的,你大可以去上一下k8s,有钱随便折腾。
对于中小企业,这玩意压根你就不要碰,碰你也碰不明白,别给自己找麻烦,没有这玩意,地球照样转,需求照样能通过其他方法实现。
Kubernetes的单词你都读不明白,还整啥K8s?我们做技术开发的,最重要的是要务实,用最低的成本、最成熟的方法,去开发最稳定、最可靠的软件应用,千万不要总想搞新技术、新应用,自己给自己挖坑,到头来搬起石头砸自己的脚。
这几年AI技术的发展已经达到新的高度,从提高个人生产力到企业操作效率的各个方面,AI都扮演着不可或缺的角色。无论是进行语言交流、内容创作、或是任务管理,都有相应的AI工具可以帮助我们更加轻松地完成工作。以下是丁老师觉得不错的AI工具推荐...
经常使用Phpmailer来发信,作为事件的通知渠道,遇到过各种情况的问题,总结了一些经验和注意事项分享给大家:1.phpmailer使用ssl发信,无需在服务器中开启任何端口,无需在防火墙中开启端口;2.出现SMTP Error: C...
最近有做前端的小伙伴咨询丁老师,网站中使用的不是只有css吗?怎么现在还有Less和Scss,这些都是什么,和CSS有什么区别呢?今天丁老师介绍一下。CSSCSS就是传统的网站样式表,是Cascading Style Sheet的缩写,...
在bash中,可以通过for循环来处理脚本,直接上代码:#基本格式 for 变量 in 列表; do #循环体:对每个元素执行的操作 命令 $变量 done #输出水果名称 for fruit in apple banana "...
开发抖音小程序所需资料及费用概览随着短视频平台抖音(TikTok)在全球范围内的迅速崛起,越来越多的企业和个人开始意识到在抖音平台上开发小程序的重要性。抖音小程序不仅可以增强品牌曝光率,还能为用户提供更加便捷的服务体验。那么问题来了,开发一...
二维码码有三个参数: 数据类型、大小(“像素 ”数)和纠错级别。能存储多少信息也取决于这些参数。例如,纠错级别越低,可存储的信息越多,但代码越难被读者识别。最大尺寸和最小纠错值如下:最大字符数 7089个字符(纯数字)字母数字 4296个字...
fontawesome所有图标class类名单,适用于4.7.0版本。总计有593个图标class类(包含别名):fa-500pxfa-address-bookfa-address-book-ofa-address-cardfa-addre...
挺不错的浏览器,强加入了edge image viewer图片浏览器,感觉不是那么好,对于开发者来说,更想要原生的东西。包括微信网页版里的表情图片,用edge image viewer打开的话,无法保存为gif格式,即使保存了,也只是第一帧...