使用 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 工程和企業成員的基本單位。 |