Skip to Content
《Kubernetes 最佳实践》第二版
book

《Kubernetes 最佳实践》第二版

by Brendan Burns, Eddie Villalba, Dave Strebel, Lachlan Evenson
May 2025
Intermediate to advanced
324 pages
3h 31m
Chinese
O'Reilly Media, Inc.
Content preview from 《Kubernetes 最佳实践》第二版

第 20 章 混沌测试、负载测试和实验 混沌测试、负载测试和实验

本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com

本章介绍在 Kubernetes 集群中测试应用程序的三种不同方法:混沌测试、负载测试和实验。所有这些工具都可用于帮助您构建更有用、更具弹性和性能更强的应用程序。它们还可以深入了解您的应用程序,帮助您更好地了解用户,并在广泛推出变更之前预测其影响。这种洞察力能让您做出更好的决策,并确定未来需要改进的地方。以下各节将介绍每种类型测试的细节、目标以及开始每种测试前的必要前提条件。

混沌测试

混沌测试( ),顾名思义,就是测试应用程序对混沌世界做出反应的能力。但混沌究竟意味着什么呢?广义上讲,对于应用程序来说,混沌意味着向应用程序引入不寻常但并非完全出乎意料的边缘条件,并观察其响应情况。这可以让您了解您的应用程序是否能够适应这些边缘条件,这些边缘条件可能以前在开发应用程序的过程中没有出现过,但可能会在应用程序运行过程中的某个时刻出现。我们的应用开发通常是在理想化的条件下进行的。这些错误可能包括通信错误、网络断开、存储问题以及应用程序崩溃和故障。混沌测试就是人为地在测试环境中引入这些错误,并观察应用程序应对这些错误的能力。

混沌测试的目标

混沌测试的目标是在应用程序的环境中引入极端条件,并观察应用程序在这些条件下的表现,尤其是失败情况。以预期和希望出现故障的方式进行测试似乎并不寻常。虽然一般情况下我们都会尽量避免应用程序出现故障,但在客户或用户不受影响的测试环境中观察这些故障要好得多。 我们希望在进行混乱测试时观察到故障,因为它们提供了一个在这些问题影响到我们的用户或客户之前进行修复的机会。

当然,我们的目标是在应用程序中引入实际的误差水平,看看它们的表现如何。引入在实践中永远不会发生的误差水平虽然有趣,但并不能充分利用时间或资源。 过高的误差水平可以帮助我们加固应用程序以应对极端环境,但如果这种极端情况永远不会发生,那么加固应用程序的努力就白费了。当然,每个应用程序所需的可变性和弹性水平都不尽相同。与飞机或汽车相比,手机游戏所需的弹性水平要低得多。了解应用程序的弹性要求和预期环境是进行高质量混乱测试的关键前提。

混沌测试的先决条件

要建立 一个有用的混沌测试,了解应用程序可能遇到的环境条件至关重要。这既包括预期的错误频率,也包括可能发生的错误类型。例如,您的存储是否已经具有弹性?如果您正在构建一个使用云支持存储作为服务的无状态应用程序,您可能不需要测试您的应用程序是否会出现磁盘故障,但您很可能希望在与云存储解决方案的通信中引入混乱。

在开始混沌测试之前,请考虑应用程序中的风险,并确定您希望在哪些地方引入错误以及引入错误的频率。 在考虑频率时,请记住我们并不是要测试一般情况。在现有的集成测试中,一般情况已经得到了很好的体现。相反,我们要模拟的是一年或十年才会发生一次的环境。您需要充分了解您的应用程序,以描述什么是合理的。

在理解应用程序方面,混沌测试的另一个重要前提是对应用程序的正确性和行为进行高质量的监控。在环境中引入混沌是一回事,但要使这种混沌发挥作用,您还需要能够足够详细地观察应用程序的运行情况,以确定混沌的影响,并找出应用程序需要强化以应对混沌的地方。一般来说,这种监控对于任何生产应用程序都是必要的。除了围绕恢复能力的核心贡献外,混乱测试也是一项很好的测试,可用于了解您的监控和日志记录是否足以处理真正的 故障。

混沌测试应用程序的通信

在应用程序的通信中注入混乱的 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

《使用 Kubernetes 实现云原生 DevOps(第二版)》

《使用 Kubernetes 实现云原生 DevOps(第二版)》

Justin Domingus, John Arundel
生产 Kubernetes

生产 Kubernetes

Josh Rosso, Rich Lander, Alex Brand, John Harris

Publisher Resources

ISBN: 9798341657250