rancher 和 Kubernetes有什么區別?


總體來說,Rancher和k8s都是用來作為容器的調度與編排系統。但是rancher不僅能夠管理應用容器,更重要的一點是能夠管理k8s集群。Rancher2.x底層基於k8s調度引擎,通過Rancher的封裝,用戶可以在不熟悉k8s概念的情況下輕松的通過Rancher來部署容器到k8s集群當中。

為實現上述的功能,Rancher自身提供了一套完整的用於管理k8s的組件,包括Rancher API Server, Cluster Controller, Cluster Agent, Node Agent等等。組件相互協作使得Rancher能夠掌控每個k8s集群,從而將多集群的管理和使用整合在統一的Rancher平台中。Rancher增強了一些k8s的功能,並提供了面向用戶友好的使用方式。

多集群管理

用戶可以通過很多種方式搭建一個k8s集群,可以是在本地機器上手動搭建,可以在公有雲廠商的服務器上手動搭建,也可以直接使用公有雲廠商的k8s集成服務。Rancher能夠將所有部署在不同地點,通過不同方式搭建的k8s集群統一管理起來。Rancher通過不同的插件和驅動適配了不同場景的k8s集群。 對於用戶而言,它們無需關心底層k8s的實現細節,統一通過Rancher UI或Rancher API就可以在不同的k8s集群里部署應用。

權限管理

在k8s中,權限管理通常使用RBAC的模式。即用戶或應用通過使用證書或ServiceAccount來表明身份,k8s通過檢查對應的Role,ClusterRole來確定訪問者是否有對應的權限。但是所有的權限管理都僅僅限定在k8s內部,無法與第三方的認證管理系統集成。另一方面,每一個集群都是獨立的一套權限管理,在用戶有多集群的場景中,沒有辦法統一的規划多集群的權限管理。不過,k8s在設計之初就已經很明確的表示k8s將不會提供自己的賬號管理,這一點應該由外部組件自己實現。

Rancher通過Auth Proxy組件在k8s之外提供了統一的權限管理中心。Auth Proxy可以與第三方認證系統結合。一般情況下,用戶通過Rancher提供的kubeconfig認證文件訪問的是Racher的Auth Proxy。Auth Proxy經過鑒權后將用戶的請求設置對應的請求頭,最后通過其他組件將請求轉發到真正的k8s API Server。因此,對於用戶的開發團隊而言,可以直接通過現有的團隊權限管理系統來對所有k8s集群的權限進行管理管理。但用戶對集群的訪問的延時可能因為代理這一步而上升。

應用部署

k8s通過提供大量的API實現了強大的容器編排功能。但是對於上層的應用開發者而言,掌握大量的概念並不容易,而且有很多對於開發並不關心的字段。在k8s中部署應用,通常會通過編寫yaml並執行kubectl create -f來實現。這種基於命令行的使用方式並不友好,而且不易於修改,而且yaml文件的編寫要求用戶掌握每一個字段的合法值,這對於上層用戶有很大的學習成本。但一旦掌握了k8s原生的API,用戶就可以實現更多定制化的部署需求。

Rancher提供了統一的UI界面來部署應用,功能比k8s官方的UI更強大。了解k8s的用戶在使用Rancher部署應用時就會發現的所有選項都可以在k8s的API中找到一一對應的字段。但Rancher對每個選項有更友好易懂的描述,更切合上層開發的概念,因此用戶即使不懂k8s也能夠輕松部署應用。以Deployment為例,Rancher將應用部署時所需的配置進行了分類,划分為應用調度、健康檢查、升級策略等模塊,使得配置更簡單。Rancher更多的面向的是與k8s無關的應用的部署場景,對於與那些與k8s緊密結合的應用,它們所需的一些k8s資源並不能完全在Rancher中統一管理。比如部署自己開發的k8s operator所需的webhook配置,RBAC相關配置都需要用戶自行導入yaml來實現部署。

Rancher也提供了應用商店的模式,用戶可以在商店中瀏覽並一鍵部署所需的應用。

集群運維

對於直接使用k8s原生系統的用戶,集群運維復雜且費時。集群升級和集群備份都需要人工介入執行多條命令。比如k8s自身升級需要用戶了解組件升級的相互依賴,etcd升級需要用戶了解etcd的升級策略,並做好相關備份以防數據丟失。節點上線需要人工安裝組件,執行命令。

基於Rancher的RKE構建的集群能夠自行解決集群升級,集群備份的一些痛點,並提供了完善的回滾機制,減輕了運維的工作量。節點的上下線在Rancher中變得十分簡單,通常只需要運行docker容器就完成了一系列自動化部署。

集群監控,日志收集

原生k8s的集群監控,日志收集都依賴第三方的組件,比如Prometheus,fluentd。用戶需要自己開發或部署來實現上述功能。

Rancher同樣通過集成這些主流的第三方組件實現了集群的監控報警和日志收集,大幅簡化了部署的流程。和對k8s概念的封裝一樣,Rancher也對這些第三方的組件的配置做了封裝和優化。

Rancher將報警的配置進行了語義化的配置,涵蓋了系統組件,工作負載,節點等常用資源,用戶通過Rancher配置報警會比直接編寫Prometheus的PromQL語言簡單很多,節約學習成本。但也僅此而已,更復雜的報警規則無法直接通過Rancher配置。

網易輕舟微服務基於Kubernetes等雲原生技術棧,提供完整易用的解決方案,用戶可以輕松部署、更新、測試以及治理其微服務應用,大大提升業務研發效率。


免責聲明!

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



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