Kubernetes(K8S) kubesphere 介紹

2023-04-27 06:01:00

使用 Kubeadm 部署 Kubernetes(K8S) 安裝--附K8S架構圖
Kubernetes(K8S) kubesphere 安裝

官網地址:https://kubesphere.com.cn/
KubeSphere 是個全棧的Kubernetes容器雲PaaS解決方案
KubeSphere 是在目前主流容器排程平臺 Kubernetes 之上構建的企業級分散式多租戶容器平臺,提供簡單易用的操作介面以及嚮導式操作方式,在降低使用者使用容器排程平臺學習成本的同時,極大減輕開發、測試、運維的日常工作的複雜度,旨在解決 Kubernetes 本身存在的儲存、網路、安全和易用性等痛點。除此之外,平臺已經整合並優化了多個適用於容器場景的功能模組,以完整的解決方案幫助企業輕鬆應對敏捷開發與自動化運維、微服務治理、多租戶管理、工作負載和叢集管理、服務與網路管理、應用編排與管理、映象倉庫管理和儲存管理等業務場景。

KubeSphere架構說明

KubeSphere 採用了前後端分離的架構,實現了面向雲原生的設計,後端的各個功能元件可通過 REST API 對接外部系統,可參考 API 檔案。KubeSphere 無底層的基礎設施依賴,可以執行在任何 Kubernetes、私有云、公有云、VM 或物理環境(BM)之上。

後端元件 功能說明
ks-account 提供使用者、許可權管理相關的 API
ks-apiserver 整個叢集管理的 API 介面和叢集內部各個模組之間通訊的樞紐,以及叢集安全控制
ks-apigateway 負責處理服務請求和處理 API 呼叫過程中的所有任務
ks-console 提供 KubeSphere 的控制檯服務
ks-controller-manager 實現業務邏輯的,例如建立企業空間時,為其建立對應的許可權;或建立服務策略時,生成對應的 Istio 設定等
Metrics-server Kubernetes 的監控元件,從每個節點的 Kubelet 採集指標資訊
Prometheus 提供叢集、節點、工作負載、API 物件等相關監控資料與服務
Elasticsearch 提供叢集的紀錄檔索引、查詢、資料管理等服務,在安裝時也可對接您已有的 ES 減少資源消耗
Fluent Bit 提供紀錄檔接收與轉發,可將採集到的⽇志資訊傳送到 ElasticSearch、Kafka
Jenkins 提供 CI/CD 流水線服務
SonarQube 可選安裝項,提供程式碼靜態檢查與質量分析
Source-to-Image 將原始碼自動將編譯並打包成 Docker 映象,方便快速構建映象
Istio 提供微服務治理與流量管控,如灰度釋出、金絲雀釋出、熔斷、流量映象等
Jaeger 收集 Sidecar 資料,提供分散式 Tracing 服務
OpenPitrix 提供應用模板、應用部署與管理的服務
Alert 提供叢集、Workload、Pod、容器級別的自定義告警服務
Notification 通用的通知服務,目前支援郵件通知
redis 將 ks-console 與 ks-account 的資料儲存在記憶體中的儲存系統
MySQL 叢集後端元件的資料庫,監控、告警、DevOps、OpenPitrix 共用 MySQL 服務
PostgreSQL SonarQube 和 Harbor 的後端資料庫
OpenLDAP 負責集中儲存和管理使用者賬號資訊與對接外部的 LDAP
儲存 內建 CSI 外掛對接雲平臺儲存服務,可選安裝開源的 NFS/Ceph/Gluster 的使用者端
網路 可選安裝 Calico/Flannel 等開源的網路外掛,支援對接雲平臺 SDN

除了上述列表的元件,KubeSphere 還支援 Harbor 與 GitLab 作為可選安裝項,您可以根據專案需要進行安裝。以上列表中每個功能元件下還有多個服務元件,關於服務元件的說明,可參考 服務元件說明。

名詞解釋

KubeSphere Kubernetes 對照釋義
專案 Namespace, 為 Kubernetes 叢集提供虛擬的隔離作用,詳見 Namespace。
容器組 Pod是 Kubernetes 進行資源排程的最小單位,每個 Pod 中執行著一個或多個密切相關的業務容器
部署 Deployments,表示使用者對 Kubernetes 叢集的一次更新操作,詳見 Deployment。
有狀態副本集 StatefulSets,用來管理有狀態應用,可以保證部署和 scale 的順序,詳見 StatefulSet。
守護行程集 DaemonSets,保證在每個 Node 上都執行一個容器副本,常用來部署一些叢集的紀錄檔、監控或者其他系統管理應用,詳見 Daemonset。
任務 Jobs,在 Kubernetes 中用來控制批次處理型任務的資源物件,即僅執行一次的任務,它保證批次處理任務的一個或多個 Pod 成功結束。任務管理的 Pod 根據使用者的設定將任務成功完成就自動退出了。比如在建立工作負載前,執行任務,將映象上傳至映象倉庫。詳見 Job。
定時任務 CronJob,是基於時間的 Job,就類似於 Linux 系統的 crontab,在指定的時間週期執行指定的 Job,在給定時間點只執行一次或週期性地執行。詳見 CronJob
服務 Service, 一個 Kubernete 服務是一個最小的物件,類似 Pod,和其它的終端物件一樣,詳見 Service。
應用路由 Ingress,是授權入站連線到達叢集服務的規則集合。可通過 Ingress 設定提供外部可存取的 URL、負載均衡、SSL、基於名稱的虛擬主機等,詳見 Ingress。
映象倉庫 Image Registries,映象倉庫用於存放 Docker 映象,Docker 映象用於部署容器服務, 詳見 Images。
儲存卷 PersistentVolumeClaim(PVC),滿足使用者對於持久化儲存的需求,使用者將 Pod 內需要持久化的資料掛載至儲存卷,實現刪除 Pod 後,資料仍保留在儲存卷內。Kubesphere 推薦使用動態分配儲存,當叢集管理員設定儲存型別後,叢集使用者可一鍵式分配和回收儲存卷,無需關心儲存底層細節。詳見 Volume。
儲存型別 StorageClass,為管理員提供了描述儲存 「Class(類)」 的方法,包含 Provisioner、 ReclaimPolicy 和 Parameters 。詳見 StorageClass。
流水線 Pipeline,簡單來說就是一套執行在 Jenkins 上的 CI/CD 工作流框架,將原來獨立執行於單個或者多個節點的任務連線起來,實現單個任務難以完成的複雜流程編排和視覺化的工作。
企業空間 Workspace,是 KubeSphere 實現多租戶模式的基礎,是您管理專案、 DevOps 工程和企業成員的基本單位。