混沌工程:是谁背着我偷偷写 Bug 🤸
前言 GreptimeDB 支持以单机和分布式的形式进行部署,但紧随而来一个尖锐的问题:我们对投入生产的这套复杂系统有多少信心? 在 0.3 到 0.4 的迭代过程中,我们引入了混沌工程(Chaos engineering)来提高系统的健壮性。 混沌工程是怎么实施的 我们选择了 Chaos Mesh 作为故障注入工具。我们在 Pod 中运行一个测试程序(Testcase),该程序通过定义 CR(Custom Resource)为 DB 集群中特定的 Pod 注入故障;并在转移故障后,对 DB 集群的可用性和数据完整性进行验证。 下面是一个示例,向 greptimedb-cluster 命名空间中名为 greptimedb-datanode-1 的 Pod 注入一个 Pod Kill 的故障。 apiVersion: chaos-mesh.org/v1alpha1 kind: PodChaos metadata: namespace: greptimedb-cluster spec: action: pod-kill mode: one selector: filedSelectors:...
