k8s-chaosblade-mac


ChaosBlade 是阿里巴巴開源的一款遵循混沌工程原理和混沌實驗模型的實驗注入工具,幫助企業提升分布式系統的容錯能力,並且在企業上雲或往雲原生系統遷移過程中業務連續性保障。

ChaosBlade 不僅使用簡單,而且支持豐富的實驗場景,場景包括:

  • 基礎資源:比如 CPU、內存、網絡、磁盤、進程等實驗場景;
  • Java 應用:比如數據庫、緩存、消息、JVM 本身、微服務等,還可以指定任意類方法注入各種復雜的實驗場景;
  • C++ 應用:比如指定任意方法或某行代碼注入延遲、變量和返回值篡改等實驗場景;
  • Docker 容器:比如殺容器、容器內 CPU、內存、網絡、磁盤、進程等實驗場景;
  • 雲原生平台:比如 Kubernetes 平台節點上 CPU、內存、網絡、磁盤、進程實驗場景,Pod 網絡和 Pod 本身實驗場景如殺 Pod,容器的實驗場景如上述的 Docker 容器實驗場景;

     可以從 Releases 地址下載最新的 chaosblade 工具包,解壓即用。如果想注入 Kubernetes 相關故障場景,需要安裝 chaosblade-operator,詳細的中文使用文檔請查看 chaosblade-help-zh-cn

總結基礎資源和雲原生平台的環境搭建:

一、基礎資源

    訪問https://github.com/chaosblade-io/chaosblade/releases頁面,下載chaosblade工具包,

    

    解壓后后直接使用blade命令往基礎資源中注入故障。

二、雲原生平台(k8s)

     訪問https://github.com/chaosblade-io/chaosblade-operator/releases地址下載chaosblade-operator安裝包。

     

     1、安裝chaosblade-operator:

   (1)helm  v2版本

     helm install --namespace chaosblade --name chaosblade-operator chaosblade-operator-VERSION-v2.tgz

   (2)helm  v3版本

     helm install chaosblade-operator chaosblade-operator-VERSION-v3.tgz --namespace chaosblade

   注意:如果mac本未安裝helm命令,使用brew install  kubectl-helm命令進行安裝;如果已安裝helm命令,使用helm version查看helm版本是2版本還是3版本。我個人為:

      

     所以使用的安裝命令為:helm install --namespace kube-system chaosblade-operator chaosblade-operator-1.3.0-v3.tgz

     安裝在 kube-system 命令空間下后,ChaosBlade Operator 啟動后會在每個節點部署 chaosblade-tool Pod 和一個chaosblade-operator Pod。可通過以下命令查看安裝結果

     

    2、安裝metrics-server

        metrics-server是用來擴展k8s的第三方apiserver,其主要作用是收集pod或node上的cpu,內存,磁盤等指標數據,並提供一個api接口供kubectl top命令訪問;默認情況kubectl top 命令是沒      法正常使用,其原因是默認apiserver上沒有對應的接口提供收集pod或node的cpu,內存,磁盤等核心指標數據;kubectl top命令主要用來顯示pod/node資源的cpu,內存,磁盤的占用比例;該        命 令能夠正常使用必須依賴Metrics API;

  (1)下載metric-server的yaml文件

    wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.4.1/components.yaml

  (2)修改components.yaml文件

    增加:- --kubelet-insecure-tls

    修改鏡像:image: phperall/metrics-server:v0.4.1

   

  (3)拉取metric-server鏡像

    docker pull phperall/metrics-server:v0.4.1   (預先配置dockerhub倉庫)

    (4)啟動metrics-server服務:

    kubectl  apply -f  components.yaml

    (5)檢查服務是否啟動成功

     

  (6)注入故障,故障注入實例:

     給node節點注入cpu為60%的故障:kubectl  apply  -f  chaosblade_cpu_load.yaml

     

     給pod注入cpu為60%的故障:kubectl  apply  -f  pod-cpu-load-by-names.yaml

      

     查看故障注入結果命令:

     kubectl  top   node  [-n   default]

     kubectl  top   pod    [-n   default]

     查看啟動的blade:

     kubectl  get  blade

   刪除注入的故障:

     kubectl   delete  blade  cpu-load   (cpu-load實際為故障yaml文件中的name)

    更多故障注入實例參考: https://github.com/chaosblade-io/chaosblade-operator/tree/v1.3.0/examples

 

參考鏈接:

https://developer.aliyun.com/article/725935

https://gitee.com/baigogogo/chaosblade

https://github.com/chaosblade-io/chaosblade-operator

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM