千万别犯这十种Kubernetes错误
译文 精选2022-03-08 09:00:00本文将向您介绍在Kubernetes部署过程中十种常见的错误、它们的基本原理、以及如何修复的简单技巧。希望它们能够协助您有效地交付出更加完善的应用与服务。
随着DevOps开发模式的盛行,Kubernetes正在迅速占领着技术界。作为一个开源的容器编排系统,它可以自动化容器应用的部署、扩展和管理。由于Kubernetes是一种经济、强大、可靠的分布式容器集群的管理工具,因此它本身具有一定的复杂性。一旦开发者未加注意、或配置不当,就可能导致生产环境出现各种故障。
为了避免潜在陷阱与错误,本文将和您探讨在Kubernetes部署中的一些常见错误,它们的基本原理,以及如何修复的简单技巧。
Kubernetes的基础知识
Kubernetes使用一组api和命令行工具,来管理集群中的容器。其架构由一个主节点和多个分节点、或工作节点所组成。其中,主节点既负责集群的状态和分节点的活动,又管理分节点上的工作负载,调度容器,并为容器分配适当的资源。分节点虽然不限于是物理机还是虚拟机,但是它们都需要通过访问Docker引擎和kubelet服务,才能与Kubernetes集群协同工作。此外,一个节点需要通过与其他节点连接,才能实现彼此间的数据传输。
Kubernetes使用一种声明性配置模式,来便捷地设计可扩展性系统,以应对那些可预期和无法预期的变化。这种声明式配置方便了Kubernetes去处理各种容器和集群操作的底层复杂性,进而能够轻松地构建出具有高可用性、可扩展性和安全性的集群。
当然,由于其固有的部署复杂性,您的Kubernetes应用可能会经常存在如下错误:
1.忽略健康检查
如上图所示,在将服务部署到Kubernetes时,了解pod的状态和Kubernetes集群的整体健康状况,对于保障服务能够按照预期运行是非常重要的。为此,我们可以用到启动探针、活跃度探针、以及就绪度探针。其中,启动探针可以确保Pod的成功启动和创建;活跃度探针方便了我们去测试应用程序是否处于活跃状态;而就绪度探针则被用于确定应用程序是否已为接收流量准备就绪。
2. 在容器中挂载主机文件系统
在容器中挂载主机文件系统是一种常见的反模式,时常被用于持久化数据的场景中。其中,最简单的方法是将主机的本地目录,挂载成为容器文件系统中的一个目录。据此,写入该目录的任何内容都会被保留在主机上。不过,此举可能会导致如下潜在的后果:
因此,为避免出现上述问题,请勿将主机的任何文件系统挂载到容器中,除非是出于数据持久性目的。
3. 使用“Latest(最新)”标签
如果在生产环境中使用Latest标签,那么一旦针对版本的描述不够清楚的话,就可能会引起混乱,因此我们不建议在生产环境中使用此类标签。例如,当服务出现中断需要尽快恢复时,您却发现“Latest”标签并非指向新推送的镜像版本,那么就会导致您无法知晓刚才在运行的应用的具体版本。因此,您应该持续使用那些有意义的Docker标签。
4. 将服务部署到错误的Kubernetes节点
根据前面的介绍,工作节点仅能运行由其主节点分配的任务。那么,一旦您将服务部署到错误的节点上,就可能导致其无法正常工作。此外,新的容器在启动时,需要等待一个可用的调度程序来分配任务,这往往需要占用比预期更长的时间。
为避免这种情况,您需要在部署服务之前,知晓自己的服务需要在主节点、还是工作节点上运行。而在启动任何容器之前,您还应该检查pod是否可以访问集群中需要与之通信的其他pod。
5. 未能使用现成的部署模式
Kubernetes凭借其众多的部署技术,让开发人员可以轻松地部署自己的应用程序。如下图所示,Kubernetes建议您使用:蓝绿(Blue-Green)、金丝雀(Canary)和滚动(Rolling)等部署策略,来保证用户不会因为新的软件部署,而碰到任何停机或服务中断。
6. 重复部署
当我们创建多个相同状态的副本,并行地部署到不同的集群上时,可能会发生重复部署的情况。例如:当某个集群出现故障时,另一个集群会继续处理部署的请求。但是,当它恢复、或有新的集群加入时,两个正在运行的副本会加倍处理请求,进而超额占用底层主机上的CPU和内存资源。对此,我建议您使用Headless Service或Daemon Set等服务类型,以便在任何给定时间,限制只有一个部署版本在运行。
7. 在生产环境中只使用一种容器(即无状态)
许多人会错误地认为所有的容器都是相同的。其实,它们之间存在显著的差异。其中,有状态的容器会允许您,将数据存储在磁盘等持久性存储介质上,以避免数据的丢失。而无状态容器则只在运行期间保留其数据,而在完成后丢弃数据(除非额外予以备份)。因此,您应该同时使用有状态和无状态两种容器。
8. 在不考虑监控和日志记录要求的情况下部署应用
不考虑监控和记录的需要,往往会导致开发人员疏忽他们的代码或应用在生产环境中运行的情况。为了避免此类缺陷,我们应当在应用部署之前,建立一个监控系统和日志聚合 服务器 ,以获悉应用的性能,并发现需要更改和优化的地方。
不过,当您仅使用由Kubernetes自身提供的服务和工具、而非第三方解决方案时,可能会碰到厂商锁定的问题。例如,您在使用CRI容器的运行时接口,来部署容器时,就不能使用Docker或RKT容器。此外,许多开发人员也会碰到由于集群容量不足、或在错误的时间部署应用,而产生的低效与混乱。
9. 在没有任何安全配置的情况下部署应用
开发人员在使用集群外部可访问的端点时,往往会忽略诸如:密钥保护、以及如何安全地运行特权容器等问题。因此,我们应当对Kubernetes的如下安全性引起重视:
此外,您还可以通过配置基于角色的访问控制(RBAC)策略,来保护Kubernetes集群。即,通过给用户分配诸如:“管理员”或“操作员”角色,并限制角色去访问资源,来保护Kubernetes集群。其中,管理员角色具有完全的访问权限,而操作员角色仅有对集群内有限资源的访问权限。
10.未设置资源的使用限制
如果您发现自己的资源利用率和账单双双猛增的话,那么就该重新检查服务的资源使用情况了。我们可以通过对应用程序执行压力测试,来设置容器的CPU和内存的限制。对此,Kubernetes在其资源利用的类别中定义了“请求”和“限制”。其中,“请求”代表应用需要运行的最小资源,而“限制”则定义了最大的资源。我们可以在部署YAML中指定资源的限制。
由上图可见,Harness Cloud Cost Management(CCM)通过计算和分析不同的工作流负载,对CPU和内存的占用率,以直方图的形式显示了各种资源地优化可能性,为您的Kubernetes集群提供各项建议,进而减少您的每月支出。
小结
在上文中,我向您介绍了在Kubernetes部署过程中十种常见的错误、以及对应的解决方法。希望它们能够协助您有效地交付出更加完善的应用与服务。
译者介绍
陈峻 (Julian Chen),51CTO社区编辑,具有十多年的IT项目实施经验,善于对内外部资源与风险实施管控,专注传播网络与信息安全知识与经验;持续以博文、专题和译文等形式,分享前沿技术与新知;经常以线上、线下等方式,开展信息安全类培训与授课。

原文标题:Don’t Make These 10 Kubernetes Mistakes,作者:Pavan Belagatti
与水有关的成语有哪些?
不避水火 不便水土 不服水土 悲歌易水 冰寒于水兵来将敌,水来土堰 兵来将挡,水来土掩 兵来将迎,水来土堰 冰清水冷 杯水车薪白山黑水 白水鉴心 杯水粒粟 巴山蜀水 跋山涉水杯水舆薪 背水一战 杯水之敬 杯水之谢 不通水火不习水土 不习水土 抽刀断水 餐风宿水 春风沂水乘高决水 盛水不漏 尺山寸水 出水芙蓉 重山复水趁水和泥 车水马龙 出山泉水 乘顺水船 残山剩水楚水吴山 啜菽饮水 尺水丈波 臣心如水 裁云剪水撮盐入水 吹皱一池春水 打落水狗 滴水不羼 滴水不漏点水不漏 滴水成冰 滴水成河 大水冲了龙王庙 滴水穿石斗水活鳞 淡水交情 登山临水 滴水难消 登山涉水带水拖泥 斗升之水 簟纹如水 大禹治水 风门水口风起水涌 芙蓉出水 反水不收 范水模山 覆水难收饭蔬饮水 风行水上 滚瓜流水 高山流水 观山玩水归之若水 黄尘清水 涸鲋得水 火耕水耨 火耕水种黄河水清 火热水深 河水不洗船 河水不犯井水 海水不可斗量洪水横流 画水镂冰 混水捞鱼 洪水猛兽 浑水摸鱼混水摸鱼 海水难量 海水群飞 海水桑田 黄汤淡水黄汤辣水 河同水密 涸鱼得水 交淡若水 镜花水月兼葭秋水 蛟龙得水 蛟龙戏水 救民水火 救民于水火
什么鱼属于风水鱼啊?在家里怎么养风水鱼啊?要详细到拜访位置?
养鱼,除了可当休闲娱乐外,普遍也有能改变风水的观念。 而大部分人或者是企业也希望养一缸能「聚财」的鱼。 在风水学上,鱼缸被视为一种能补运的工具,如果使用得宜可以挡煞﹑旺财。 为啥一缸鱼会发生如此大的效用?我们可以从水跟鱼两方面来解释。 「水」,以《易经》来解释是为「坎卦」,符号为- -―――- -说明如下:坎为水,为沟渎,为矫輮,为通,为盗。 「鱼」,以《易经》来解释为「巽卦」,符号为――――――-- 说明如下:巽为木,为风,为近利市三倍。 财位找寻 风水,是一门非常重视学理与逻辑的学问。 运用风水,不只要将风水学理论熟记,如何配合「自然」活用才是真正的重点。 目前风水门派繁多,且各派之间排他性极强,遇有矛盾之处常争执不下。 本站财位找寻,是使用玄空飞星法,方法已简化,让各位网友能以简易的方式寻找出财位。 作者按:目前风水门派百家争鸣,本文若与各家学派不同之处,敬请见谅并与指教。 如果您是经营企业者,建议您另外找寻专业之地理师为您服务,毕竟风水必须配合整体环境才能发挥效用,且风水学理素养也不是能速成的。 财位简论能让我们能生财、聚财的方位即是财位。 因各派学术不同,因此常有不同之结论。 有人主张生气方为财位,也有人是运用五鬼方(五鬼运财);如果再配合生辰、流年、宅向等数据,其繁杂之巨,光用文字描述仍稍嫌不足。 甚至行业别的不同也有不同的结论,例如:一家海产店在「生气方」放置一鱼缸,如果这些鱼正好是要卖的鱼,是不是会造成「鱼养得肥肥的,但是卖不出去」的现象?!本文之财位是以「生气方」来论。 而财位亦只用宅向来论,否则因为流年不同就出现不同之财位,我想,光是每年搬一次鱼缸,就相当伤脑筋吧?财位在何方 简易法: 贵人方:如果我们「站在屋内往外看」,贵人方就在我们的左方,即是一般人说的「左青龙」。 这一个位置,只要加重其气,则贵人力量加强,则小人之气减弱。 聚气方:财气位在门的对角线。 自然法:有些较不信风水或者相信自己直觉的人,一般都可能在客厅较「暗」的角落或者是玄关入口处放置鱼缸,用来增加室内明亮效果或挡煞,这种以直觉的方式也是不错 鱼与行业别的配合
鱼的种类我们一般求生活平安,求生意兴隆,因此,所饲养的风水鱼,都是一些气质比较祥和的。 例如:金鱼、七彩神仙鱼等。 这一类鱼儿,可以使家居或办公室充满平静的气息,同时又带有吉利兴旺的意味。 而带有戾气煞气的鱼,如:鲨鱼、食人鱼、斗鱼等,不宜当作风水鱼。 有些上班族,喜欢在桌上养一只斗鱼来增加斗志或养一只乌龟来修身养性,亦无不妥之处。 唯须注意鱼缸之清洁并将鱼缸置于办公桌左方。 偏门行业,例如:赌场、风月场、地下钱庄等,这一些地方原本就是煞气极重的地方,若是养带煞气的鱼类也无不可。 而警察局、法院、监狱等地方,则建议养较柔性的鱼以化煞气。 建议:尽量饲养个性温和、活动力强的鱼类,如:七彩神仙鱼、血鹦鹉、日光灯鱼、热带淡水鱼等等。
鱼的颜色一般市面上的观赏鱼的色彩都是相当鲜艳的,鲜色予人一种前途光明远大的感觉,也给予人健康、活力的感觉。 不过也有人喜欢养黑色的突眼金鱼,因为五行中「黑」色代表「水」,「水」代表财,因此认为黑色有旺财的作用。 建议:尽量饲养色彩鲜艳的鱼类,以增加视觉上的效果。 有些鲶鱼或拟态鱼色彩较黯淡,建议不要当作主要的风水鱼。 鲶鱼有沈水性,也不适合当风水鱼。
鱼的数量有人喜欢看一群小玻璃鱼在鱼缸中跑来跑去,也有人喜欢看一尾大红龙鱼悠哉的游来游去。 而不同命理风水派别,对于鱼的数量也有不同的说法。 例如:以八宅风水论,命卦为「坎卦」,属水,数目为「一或六」。 但是若是以《易经》坎卦论,先天数为「六」,后天数为「七」。 如此,就有「一、六、七」三个数字。 如果再加上其它论法,我想可能从一到十都有人说。 而一般民间又不喜欢「单数」或「四」、「十」这个数字,因为单数为行单影只,「四」、「十」发音又和「死」相似。 又有人说,「九」为「长久」,「十」为「十全十美」。 也有人不把垃圾鱼或其它小鱼(如:日光灯鱼、玻璃鱼、孔雀鱼)算在内,认为只要算主要观赏的鱼即可。 如此,一大堆说法,不知道该信谁的?! 建议:鱼的数量应按照鱼的大小、性情,配合鱼缸尺寸为要。 有些鱼类,天生好勇斗狠,可能会互相火并。 如此,就不宜群养。 如果,一个小小鱼缸养了许多鱼,造成鱼儿活动空间不足,以风水来论,就会损及财运、人丁。 如果您仍要一个数字的话,建议您用「六」只,且不要把垃圾鱼及小鱼算进去。 例如:七彩神仙鱼与日光灯鱼、垃圾鱼混养,只要算七彩神仙鱼的数量即可。 有此一说:如果把七彩神仙鱼当作龙银钱币,则日光灯鱼即是龙银钱币的闪光,两者相得益彰。
鱼缸布置与水路 鱼缸形状鱼缸形状大致可分为:方形、圆形、三角形、扇型、多角型。 目前市面上有许多种类「品味套缸」也是不错之选择。 建议:除非有特殊作用,宜使用方形。 办公桌上之小鱼缸则建议用圆形。 有些人喜欢用大型高脚杯养斗鱼或金鱼,有头重脚轻的现象,聚气力较弱。 鱼缸大小有修人喜欢在客厅摆设大型鱼缸,几乎达到客厅二分之一宽。 以风水的角度看来似乎是大而不当。 不但没有聚气作用,「人气」也会被鱼缸吸走。 室内湿气也会加重。 建议:鱼缸只要客厅面宽四分之一大小即可,目前市面上有许多种类「品味套缸」也是不错之选择。 形状则采用方形较佳。
鱼缸高度风水学上有一个名词,叫做「淋头水」。 「淋头水」的意思是:水从上而下冲头部。 在地理上,瀑布是「淋头水」;而阳宅中,如果墙壁高处渗水或鱼缸摆放位置高于头部也是「淋头水」。 若长期受「淋头水」的影响,会造成容易生病、脑力衰退等影响。 如果我们在客厅座椅旁放置鱼缸,而鱼缸的最高水位比坐在旁边人高,就会有这种现象。 说明:「淋头水」要成为煞气,必须是头部很接近鱼缸,即坐在旁般的人才会犯「淋头水」。 一般鱼缸都会放于柜子上或桌上,因此最高水位大都高于1公尺,比坐在沙发上的人高,因此建议沙发位置应离开鱼缸1公尺以上,以避开「淋头水」。
鱼缸周围环境家里摆设一缸健康充满活力的鱼,不只能带给我们生气、精神爽利,对家运、财运也有好的作用。 财位必须维持明亮、干净、安静。 因此鱼缸周围必须保持干净,不要在鱼缸旁堆积杂物。 鱼缸的位置不适合放置于以下场所: 1.接近电器用品:如电视机上方、音响旁边。 2.日光可直射的场所。 3.倾斜或不稳固的场所:如不坚固的架子。 4.床头 说明:若是将鱼缸将放置于电器旁,水气易电器损坏,电磁波、声响也会造成鱼儿烦躁。 阳光直射的水槽,会容易滋生藻类,造成水质恶化,急遽上升的水温,引起鱼儿及水草的死亡。 鱼缸在不稳固定的架子上,除了不安全外,也有财运不稳固的现象。 将鱼缸放在床头,则犯风水学之「淋头水」。
头发变白是身体缺少什么元素?什么食物可以补充?
缺泛酸,喝莲藕汁可以补充犯酸,有乌发功效
发表评论