NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

从修复 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年,突然就不需要手敲代码了?!


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2023-05-13 20:066056

评论

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

AI驱动税务智能,开启智慧税务新纪元

用友BIP

AI 税务管理

频繁FullGC的原因竟然是“开源代码”? | 京东云技术团队

京东科技开发者

JVM GC 企业号 7 月 PK 榜 Full GC

图技术在 LLM 下的应用:知识图谱驱动的大语言模型 Llama Index

NebulaGraph

图数据库 知识图谱 LLM

2023 年 10 大前端发展趋势

互联网工科生

前端 发展趋势

在Java中的空指针异常怎么避免?

java易二三

指针 java‘ #编程

金融领域:产业链知识图谱包括上市公司、行业和产品共3类实体,构建并形成了一个节点10w+,关系边16w的十万级别产业链图谱

汀丶人工智能

自然语言处理 知识图谱

Ubuntu 18.04系统编译安装Tomcat教程。

百度搜索:蓝易云

云计算 tomcat Linux ubuntu 运维

【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(备份+恢复篇)

洛神灬殇

MySQL 数据恢复 数据备份 技术分析

低代码:“提效降本”是如何炼成的

这我可不懂

软件开发 低代码 降本增效

深耕零售行业数字化,乐檬软件与华为云携手共进

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

拆解雪花算法生成规则 | 京东物流技术团队

京东科技开发者

算法 雪花算法 企业号 7 月 PK 榜

antv-x6使用及总结 | 京东物流技术团队

京东科技开发者

数据可视化 可视化开发 企业号 7 月 PK 榜 antv-x6

中企出海,数智人力构建全球化组织的驱动力!

用友BIP

中企出海 数智人力

网络安全(黑客)自学

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

Ubuntu 18.04系统编译安装Docker教程。

百度搜索:蓝易云

Docker 云计算 Linux ubuntu 运维

GitHub上有哪些好项目?GeaFlow图计算快速上手之SSSP算法

TuGraphAnalytics

图算法 图论 GeaFlow tugraph 单源最短路径

你还在用命令式编程?Python函数式编程让你的代码更优雅!

高端章鱼哥

Python 函数式编程

货拉拉基于 Flink 计算引擎的应用与优化实践

Apache Flink

大数据 flink 实时计算

Flink 最佳实践:TDSQL Connector 的使用(上)

腾讯云大数据

flink 流计算 Oceanus

提升直播软件源码开发平台性能关键利器功能_山东布谷科技创作

山东布谷科技

源码 软件 软件开发 直播 源码搭建

FTP文件传输工具:简单、高效、实用的数据传输方式

镭速

快速文件传输 FTP文件传输工具

Hybrid App 技术解析:热更新的原理

Onegun

混合应用开发 native 热更新 Hybrid

iOS MachineLearning 系列(21)——CoreML模型的更多训练模板

珲少

大数据实时链路备战——数据双流高保真压测 | 京东云技术团队

京东科技开发者

大数据 压测 企业号 7 月 PK 榜 双流 数据双流

改变人力资源业务战略,释放变革性技术力量

智达方通

全面预算管理 企业人力资源 智达方通EPM系统

一文带你全面了解openGemini

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

低代码治好了CIO们的 “精神内耗”

高端章鱼哥

软件开发 低代码 数字化 软件交付 降低成本

粗粮细作,铁合金行业的节能降耗

用友BIP

冶金

AI新场景 安全新边界技术高峰会定档8月9日

权说安全

AIIA杭州大会|李京梅:基于孟子GPT生成式大模型的技术与行业应用实践

澜舟孟子开源社区

从零开始搭建医药领域知识图谱实现智能问答与分析服务(含码源):含Neo4j基于垂直网站数据的医药知识图谱构建、医药知识图谱的自动问答等

汀丶人工智能

人工智能 知识图谱 智能问答

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