使用 KubeSphere 快速部署 Chaos Mesh

PingCAP發表於2021-12-13

Chaos Mesh 簡介

Chaos Mesh 是一個開源的雲原生混沌工程平臺,提供豐富的故障模擬型別,具有強大的故障場景編排能力,方便使用者在開發測試中以及生產環境中模擬現實世界中可能出現的各類異常,幫助使用者發現系統潛在的問題。

KubeSphere 簡介

KubeSphere 是在 Kubernetes 之上構建的以應用為中心的多租戶容器平臺,完全開源,支援多雲與多叢集管理,提供全棧的 IT 自動化運維的能力,簡化企業的 DevOps 工作流。

KubeSphere 3.2.0 新增了 “動態載入應用商店” 的功能,合作伙伴可將應用的 Helm Chart 整合到 KubeSphere 應用商店,即可動態載入應用,不再受到 KubeSphere 版本的限制。Chaos Mesh 已經通過這種方式將 Helm Chart 整合到了 KubeSphere 3.2.0,方便使用者一鍵部署應用至 Kubernetes。本教程演示瞭如何在 KubeSphere 上部署 Chaos Mesh 進行混沌實驗。

準備工作

  • 部署 KubeSphere 應用商店
  • 您需要為本教程建立一個企業空間、一個專案和兩個帳戶(ws-admin 和 project-regular)。帳戶 ws-admin 必須在企業空間中被賦予 workspace-admin 角色,帳戶 project-regular 必須被邀請至專案中賦予 operator 角色。若還未建立好,請參考建立企業空間、專案、使用者和角色
    開始混沌實驗

    步驟 1: 部署 Chaos Mesh

  1. 使用 project-regular 身份登陸,在應用市場中搜尋 chaos-mesh,點選搜尋結果進入應用。

  1. 進入應用資訊頁後,點選右上角 “安裝” 按鈕。

  1. 進入應用設定頁面,可以設定應用名稱(預設會隨機一個唯一的名稱)和選擇安裝的位置(對應的 Namespace) 和版本,然後點選右上角 “下一步”。

  1. 根據實際需要編輯 values.yaml 檔案,也可以直接點選“安裝”使用預設配置。

  1. 等待 Chaos Mesh 開始正常執行。

  1. 訪問 “應用負載“, 可以看到 Chaos Mesh 建立的三個部署。

步驟 2: 訪問 Chaos Mesh

  1. 前往應用負載下服務頁面,複製 chaos-dashboard 的 NodePort。

  1. 您可以通過 ${NodeIP}:${NODEPORT} 方式訪問 Chaos Dashboard。並參考管理使用者許可權文件,生成 Token,並登陸 Chaos Dashboard。

步驟 3: 建立混沌實驗

  1. 在開始混沌實驗之前,需要先確定並部署您的實驗目標,比如,測試某應用在網路延時下的工作狀態。本文使用了一個 demo 應用 web-show 作為待測試目標,觀測系統網路延遲。 你可以使用下面命令部署一個 Demo 應用 web-show
curl -sSL https://mirrors.chaos-mesh.org/latest/web-show/deploy.sh | bash
注: web-show 應用頁面上可以直接觀察到自身到 kube-system 名稱空間下 Pod 的網路延遲。
  1. 訪問 web-show 應用程式。從您的網路瀏覽器,進入 ${NodeIP}:8081。

  1. 登陸 Chaos Dashboard 建立混沌實驗,為了更好的觀察混沌實驗效果,這裡只建立一個獨立的混沌實驗,混沌實驗的型別選擇“網路攻擊”,模擬網路延遲的場景:

實驗範圍設定為 web-show 應用:

  1. 提交混沌實驗後,檢視實驗狀態:

  1. 訪問 web-show 應用觀察實驗結果 :

更多詳情參考 Chaos Mesh 使用文件

總結

KubeSphere 容器平臺對雲原生應用部署非常友好,提供的 KubeSphere 應用商城實現了真正的一鍵部署,使用者可以非常方便在 KubeSphere 上一鍵部署 Chaos Mesh,幫助使用者快速開始自己的混沌實驗。

Chaos Mesh 在 2021 年成長了許多。為了更多地瞭解使用者在實踐混沌工程方面的經驗,以便持續完善和提升對使用者的支援,社群發起了 Chaos Mesh 使用者問卷調查,點選【閱讀原文】參與調查,謝謝!

參考連結:

Chaos Mesh GitHub: https://github.com/chaos-mesh/chaos-mesh

KubeSphere GitHub: https://github.com/kubesphere/kubesphere

KubeSphere 應用商店: https://kubesphere.io/zh/docs/pluggable-components/app-store/

在 KubeSphere 中建立企業空間、專案、使用者和角色: https://kubesphere.io/zh/docs/quick-start/create-workspace-and-project/

如何在 Chaos Mesh 中進行使用者許可權管理: https://chaos-mesh.org/zh/docs/manage-user-permissions/

Chaos Mesh 使用文件: https://chaos-mesh.org/zh/docs/

相關文章