Chaos Mesh在 Kubernetes 上進行混沌測試
Chaos Mesh 是一個云原生的混沌工程(Chaos Engineering)平臺,可在 Kubernetes 環(huán)境中進行混沌測試。
Chaos Mesh 主要包含兩大組件:
- Chaos Operator:核心組件
- Chaos Dashboard:可視化面板,顯示混沌實驗對系統(tǒng)在線服務(wù)的影響
Chaos Operator 以一種可管理的方式將故障注入到應(yīng)用程序和 Kubernetes 基礎(chǔ)結(jié)構(gòu)中,從而為混沌實驗和自動編排提供了簡單的自定義場景。主要包含三個組成部分:
- Controller-manager:用于計劃和管理 CRD 對象的生命周期
- Chaos-daemon:在特定節(jié)點上以特權(quán)系統(tǒng)權(quán)限作為守護進程運行網(wǎng)絡(luò)與 Cgroup 等
- Sidecar:一種特殊類型的容器,它由 webhook-server 動態(tài)注入到目標 Pod 中,可用于劫持應(yīng)用程序容器的 I/O。
Chaos Operator 使用自定義資源定義(Custom Resource Definition,CRD)定義混沌對象。當前實現(xiàn)支持用于故障注入的 CRD 對象 PodChaos、NetworkChaos、IOChaos 和 TimeChaos,它們對應(yīng)于以下主要操作:
- pod-kill:模擬 Kubernetes Pod 被 kill。
- pod-failure:模擬 Kubernetes Pod 持續(xù)不可用,可以用來模擬節(jié)點宕機不可用場景。
- network-delay:模擬網(wǎng)絡(luò)延遲。
- network-loss:模擬網(wǎng)絡(luò)丟包。
- network-duplication:模擬網(wǎng)絡(luò)包重復(fù)。
- network-corrupt:模擬網(wǎng)絡(luò)包損壞。
- network-partition:模擬網(wǎng)絡(luò)分區(qū)。
- I/O delay:模擬文件系統(tǒng) I/O 延遲。
- I/O errno:模擬文件系統(tǒng) I/O 錯誤 。
評論
圖片
表情
