写点什么

从修复 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:068777

评论

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

小小的日志,大大的坑

京东科技开发者

MES在传统制造业中的核心作用与应用策略

万界星空科技

数字化 mes 万界星空科技 制造业工厂 制造业转型

新回坡通过区块链技术实现商品溯源系统

北京木奇移动技术有限公司

区块链技术应用 区块链技术开发

《Hive编程指南》读书笔记

京东科技开发者

【稳定性】上线三板斧(可灰度、可验证、可回滚)

京东科技开发者

50款Vsco滤镜胶片Lightroom预设

理理

VMware Integrated OpenStack 7.3 现已支持 vSphere 8.0U3 和 NSX 4.2 互操作性

sysin

vmware OpenStack

C4D流体模拟插件NextLimit RealFlow汉化版下载 mac/win

理理

500种专业级Lut调色集合包-lut预设教程

理理

“百度搜索们”会被“Kimi们”取代吗?

趣解商业

百度 互联网 科技 AI搜索

测试开发工程师的福音:测试开发高薪私教进阶班,名企导师一对一,职场技能飞速提升!

测吧(北京)科技有限公司

测试

AE三维粒子插件 Trapcode Form 安装教程

理理

即时通讯技术文集(第45期):微信、QQ技术精华合集(Part2) [共14篇]

JackJiang

即时通讯;IM;网络编程

扫盲Kafka?看这一篇就够了!

京东科技开发者

炫酷机车摄影调色Lightroom预设

理理

摄影师必备神器:Nik Collection滤镜套装全新升级

理理

2025史上最全Java面试题:初级-中级-高级!

程序员高级码农

Java 程序员 java面试 面试八股文 Java面试题

和鲸科技助力某高校人工智能通识课程实现全校覆盖,以实践为学生AI素养筑基

ModelWhale

人工智能 AI 教育 智慧课程

NineData云原生智能数据管理平台新功能发布|2024年11月版

NineData

利用mybatis的typeHandler解决手动拆分拼接数据的麻烦

六哥是全栈

mybatis TypeHandler

Nexpose 7.0.0 for Linux & Windows - 漏洞扫描

sysin

Nexpose

Plugin Alliance Brainworx Mäag Audio EQ4 for Mac(人声均衡器)

理理

一本书精通复杂的后端系统

博文视点Broadview

保险业怎么定义?是否需要用到堡垒机?

行云管家

保险 堡垒机 等保合规 网龄安全

reFX Nexus for Mac 专业的音乐制作软件 其丰富的音色库包含大量高质量预设

理理

Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件

sysin

UFED

宿迁等保测评机构有吗?在哪里?

行云管家

等保 等保测评 网龄安全 宿迁

Arturia V Collection X for mac(经典合成器和键盘合集)

理理

Imagenomic Noiseware破解版 (ps图像降噪滤镜) mac/win

理理

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