Kubesphere 源碼分析5 ks-install

1. 概述

ks-install 基于ansible完成了kubesphere組件的動態(tài)插拔。

2. 結構分析

ks-install嵌入在shell-operator組件中

  1. shell-operator通過監(jiān)聽etcd中配置資源的變化,當配置crd更新時(譬如設置 alert:true)。將會把etcd中組件配置信息整體以json的形式傳入installRunner腳本。
  2. installRunner腳本將最新的配置信息傳入playbooks集合。playbooks集合中包含了更新各個組件的入口。其中各個playbooks將根據新的配置信息嘗試調用具體的"更新"腳本roles。
  3. "更新"過程是腳本發(fā)現配置信息中對應組件啟動時將安裝該組件需要的依賴,當發(fā)現對應組件關閉時將嘗試卸載對應組件需要的依賴。
  4. "更新“”過程中除了更新配置的依賴外,也會動態(tài)生成kubesphere等負載的配置文件,并重啟kuberpshere系統的核心模塊。
ks-install結構圖

3. 流程分析

整體業(yè)務流程如下所示

  • shell-operator監(jiān)聽etcd中組件配置相關etcd數據變化。
  • 當配置變化時調用ks-installer嘗試安裝依賴和更新kubespherer核心組件配置。
  • ks-installer 首先檢查各個開啟的組件依賴服務是否安裝,當發(fā)現未安裝時進行依賴安裝。例如,當發(fā)現日志功能開啟時將嘗試安裝es系統。
  • 然后ks-installer生成各個kubesphere核心組件配置并重啟組件。
    例如,當集群由none模式切換為host模式時,將生成新的組件配置,并重啟ks-apiserver,從而使ks-apiserver模塊感知到集群模式的變化。
ks-install流程圖.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容