写点什么

从修复 Kubernetes 集群中,我学到了什么

  • 2023-05-13
    北京
  • 本文字数:2747 字

    阅读完需:约 9 分钟

从修复 Kubernetes 集群中,我学到了什么

人们都很吝啬。这是 David Flanagan 在他的 YouTube 系列节目“Klustered”中修复了 50 多个故意破坏的 Kubernetes 集群所学到的第一件事。


在一个案例中,提交者用 unicode doppleganger 替换了一个’c’字符——它在终端输出上看起来与 c 相同——从而导致了一个错误,这造成了 Flanagan 对自己以及对其修补集群的能力产生了怀疑。


Flanagan 上周在坦帕(Tampa)举行的 Civo Navigate 会议上说:“我实在是太恨这个人了,这段时间太久了,我们足足用了两个小时才把它修复好。我很喜欢这个插曲,因为我可以告诉你,我很聪明,而且在 Kubernetes 方面也做得很好。但是,这一插曲使我对某些我认为并没有错误的东西产生了怀疑。实际上,我觉得 6 个数字将会在 64 位的系统中造成任何的溢出——当然不会。不过,调整起来比较困难。”


在那场会议之后,Klustered 制定了一个不受 Unicode 干扰的方针。


“你只能从错误中吸取教训,”Flanagan 表示,“这就是为什么我真的喜欢做 Klustered。如果你只是有一个工作正常的集群,你永远也不会真正学会如何在一定的规模之外运行它。而 Klustered 给我们带来的情况是,我们可以让人们从他们自己的公司、他们自己的组织、他们自己的团队中带来他们的失败,我们可以在实时流格式中复制这些问题,但它也让我们看到个人是如何调试它的。”


Linux 问题


他说,调试是很难的,即使你有一个来自红帽的团队来解决这个问题,正如他在另一集由红帽和 Talos 的团队参加的节目中所了解的那样。在这种情况下,红帽从重要的二进制文件中删除了可执行位,如 kubectl、kubeadm,甚至 Perl——它有能力在一台机器上执行大多数 Sys 调用;限制了 Talos 修复故障的能力。


“我们从这一集学到的是,你实际上可以在 Linux 上执行动态链接器。所以我们有这个 ld-linux.so,你实际上可以在一台机器上执行任何二进制文件,通过该链接器代理它。所以你可以 bin.chmod,像这样,这是一个非常酷的技巧。”


/lib/ld-linux.so  /bin.chmod +x /bin/chmod
复制代码


人们还修改了 Linux 文件系统上的属性。


“有人知道 Linux 文件系统中有哪些属性吗?”他问道。“不,当然不知道。为什么要知道?”


但这些属性允许你进入非常低的级别并访问文件系统。他展示了他们如何将文件标记为不可更改。


“所以你可以打包一个文件,你知道,kubectl 或 Kubernetes 必须写到这个文件,并将其标记为不可变,你就立即破坏了系统,”他说,“你不可能通过运行你的常规 LS 命令来检测这种破坏,你实际上确实需要对文件做一个 lsattr,当你把它们全部列出时,要理解这些晦涩的引用是什么意思。所以,再次强调,Klustered 只是给了我们一个环境,我们可以从那些做了我们以前没有做过的事情的人那里提取所有这些知识。”


在另一集中,他邀请了曾在安全和 Kubernetes 领域工作的内核黑客 Kris Nóva,以及曾在谷歌工作的 minikube 维护者 Thomas Stromberg,后者还从事入侵取证分析工作。Stromberg 不得不由安全行业精英 Nova 修复损坏的集群。


“Thomas 来了,运行这个 FLS 命令,”他说,“这是非常古老的工具包,写于 90 年代末,叫做 Sleuth Kit,对 Linux 文件系统进行取证分析。”


他补充道:“通过运行这个命令,他得到了对 Linux 文件系统每一次修改的时间顺序变化。他得到了过去 48 小时内他想回答的每一个问题的答案。所以我很高兴我们有机会与大家分享知识。”。


常见网络故障


在该节目中,网络故障往往是相当常见的。Kubernetes 有核心的网络策略来防止这些故障的发生。但尽管如此,故障还是会发生。


“然而,我们现在看到了碎片化,因为其他 CNI 供应商带来了他们自己对网络策略的适应性,”Flanagan 接着说。“仅仅检查网络政策或集群网络政策是不够的。……你需要知道从网络层面成功操作 Kubernetes 集群,这个集群将继续发展,变得非常繁琐、可怕、复杂,但也更容易。”


Flanagan 对 Kubernetes 最大的不满是默认的 DNS 策略。


“谁认为 Kubernetes 中的默认 DNS 策略是默认 DNS 策略?现在我们有这个叫 Default 的 DNS 策略,”他说,“但它不是默认的。默认是集群优先,这意味着它将尝试在集群内解决 DNS 名称。而默认策略实际上是解析到主机上的默认路由。”


Flanagan 说,他一直在与 Tom Hockin 等人和 Kubernetes 的其他评论员讨论,社区如何能够消除一些异常情况,这些异常情况基本上会绊倒那些只是没有遇到过这些问题的人。


eBPF 改变了格局


他说,eBPF 也在改变格局而不是进入 Linux 机器,运行 IP table-l,他注意到这已经在开发者的头脑中根深蒂固了 20 年。现在,开发者应该倾听所有的 eBPF 探测和流量策略。从本质上讲,你需要有其他的 eBPF 工具来理解现有的 eBPF 工具。


他建议查看 Hubble,以便对旧的网络策略进行可视化表示 – 特别是 Kubernetes 和 Cilium,他补充说。Hubble 还带有一个 CLI。


“我们有工具来了解我们集群内的网络。如果你有幸使用 Cilium,如果你使用其他 CNI,你将不得不寻找其他工具,但它们确实也存在。”他说。


他还推荐了 Cilium Editor。


“你可以构建一个 Kubernetes 网络策略,或者通过拖动方框、改变标签和改变端口号来构建一个 Cilium 网络策略,”Flanagan 说,“所以你实际上不需要再学习如何浏览这些深奥的 YAML 文件。”


他说,Ciluim Editor 将允许你使用拖放的方式来构建 Kubernetes 网络策略。


其他学习经验


当然,还有其他方法可以破坏 Kubernetes 集群。他指出,你可以攻击容器运行时。人们已经回滚了多达 25 个版本的 kubectl 二进制文件;25 个版本实际上破坏了向后兼容性,因此它不能与 API 服务器对话。存储是你自己的 CSI 提供商的另一个考虑因素,他补充说。


他还推荐了三种资源:


  • Brendan Gregg’s book;

  • BCC;

  • Ebpfkit;


他想让工程师们承认他们不知道的东西并分享知识。


他说:“我给人们的一条规则是,请不要安静地坐在那里,用谷歌搜索相机以获得答案,然后说,哦,我知道如何解决这个问题。我很想让高级工程师为我们行业的新人制定更好的规范,消除我们过去 30 年来建立的英雄文化。”


作者简介:


Loraine Lawson,资深技术作者,25 年来一直从事从数据集成到安全的技术问题的报道。在加入 The New Stack 之前,她是银行技术网站 Bank AutomationNews 的编辑。她还曾为“IT Business Edge”担任自由撰稿人、“Tech Republic”的 IT 经理编辑。


原文链接


https://thenewstack.io/what-david-flanagan-learned-fixing-kubernetes-clusters/


声明:本文为 InfoQ 翻译,未经许可禁止转载。


今日好文推荐


后摩尔定律时代,如何提升云效益的天花板


可悲的现实,大部分技术领导者可能并不称职


百度回应文心一言“套壳”质疑;TikTok在美经历生死时刻;IT外包行业面临最大规模裁员,埃森哲将暴力裁员1.9万人 | Q资讯


集成GPT-4的编程神器来了,GitHub发布Copilot X:编程30年,突然就不需要手敲代码了?!


2023-05-13 20:068997

评论

发布
暂无评论
发现更多内容

行云堡垒-幽影护企业数据安全!

行云管家

数字化 数据安全 企业数据

Go语言中高效使用Redis的Pipeline

左诗右码

Go

重磅:香港大学经管学院副院长沈海鹏博士出任望繁信科技首席顾问!

望繁信科技

大数据 数字化转型 流程挖掘 流程智能

公链大变局:ETH老态龙钟,SOL势如破竹

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 NFT开发 公链开发

电商搜索革命:大模型如何重塑购物体验?

京东科技开发者

【YashanDB知识库】生成迁移报告失败,"报错未知类型错误异常:"

YashanDB

yashandb 崖山数据库 崖山DB

一汽集团数据专家分享:实时数据技术在汽车行业的应用与实践经验

tapdata

行云堡垒V7.4新特性

行云管家

云解析的智能线路是什么意思?有什么实际用途?

国科云

【YashanDB知识库】共享集群YAC换IP

YashanDB

yashandb 崖山数据库 崖山DB

TapData 信创数据源 | 国产信创数据库 TDengine 数据同步指南,加速国产化进程,推进自主创新建设

tapdata

测试环境治理之MYSQL索引优化篇

京东科技开发者

数字货币发行项目开发基本要求及模式创建与海外宣发策略

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 NFT开发 公链开发

一文讲清 API 接口的概念、设计和实现

Noah

AI大模型快速生成题库-助力业务人效提升10+倍

京东科技开发者

数智重庆.全球产业赋能创新大赛总决赛极客奖队伍比赛攻略_球球君

阿里云天池

2025杭州国际智慧城市展览会

AIOTE智博会

智慧城市展览会 智慧城市展会 智慧城市博览会

第二届海南大数据创新应用大赛 - 算法赛道冠军比赛攻略_海南新境界队

阿里云天池

3款让工作效率翻倍的神器!一键轻松搞定PDF转PPT!

职场工具箱

效率工具 职场 PPT 办公软件 AI生成PPT

TIANCHI工业 AI- 第 10 名思路分享

阿里云天池

大航杯智造扬中电力AI大赛RANK6思路总结

阿里云天池

使用代理IP有风险吗?

IPIDEA全球HTTP

代理IP

阿里巴巴拍立淘API返回值:商品搜索与社交媒体的融合

技术冰糖葫芦

API Explorer API boy API 接口 API 测试

从修复 Kubernetes 集群中,我学到了什么_语言 & 开发_Loraine Lawson_InfoQ精选文章