Rancher 2.5特性解讀丨更簡單友好的API和Dashboard

本文來自Rancher Labsgit

關注咱們,看K8S乾貨教程github

 

做者簡介docker

張智博,Rancher中國研發與產品總監。7年雲計算領域經驗,一直活躍在研發一線,經歷了OpenStack到Kubernetes的技術變革,不管底層操做系統Linux,仍是虛擬化KVM或是Docker容器技術都有豐富的研發和實踐經驗。
 
自Rancher 2.0系列版本問世,以其簡單務實的UI風格和成熟穩健的後端架構贏得了市場的廣泛青睞。Kubernetes自己架構和功能逐漸穩定,同時擁有豐富經驗的Kubernetes技術人員也在不斷增長,根據市場出現的這些新變化,咱們近期發佈的Rancher 2.5對此作出了諸多改變。本文將從API和Dashboard兩個角度來探討Rancher 2.5的變化。
 後端

Kubernetes Native API

 
Rancher 2.5以前的版本中,咱們對原生的Kubernetes API作了一些封裝,以便適應咱們的UI展現需求。這些封裝的好處就是,咱們能夠定義適用自身的數據結構,而且提供了一套能夠單獨交互的API-UI,用戶可使用它來模擬調用API。一般在Rancher UI的不少入口中,點擊「View API」或者在瀏覽器中訪問「https://<server-url>/v3」便可查看訪問。這些API自己基於Kubernetes CRD實現,封裝後造成了Rancher風格API。至於如何定義Rancher風格API,能夠訪問此連接查看:api

https://github.com/rancher/api-spec 瀏覽器

 

固然,這種作法的劣勢顯而易見,從Rancher工程師和社區用戶的使用經驗看,主要有如下幾點:數據結構

 

  1. 擴展Rancher API很是複雜,只有深刻閱讀Rancher代碼或者接受了必定培訓的開發人員才能作到。架構

  2. Kubernetes API在不斷演變,Rancher API去兼容多個版本的Kubernetes API變得愈來愈困難。框架

  3. Rancher API屏蔽了一些高級API參數,對於一些高級用戶,這很是不友好。
     

對於這些問題,咱們在Rancher 2.4已經開始嘗試作一些改變,細心的小夥伴可能發現了Rancher 2.4的新型Dashboard,它背後使用的就是新風格的Rancher API。這套API的實現依靠一個相對獨立的組件steve,爲了解決以前的API問題,steve作了如下改善工做:
 less

  • 徹底沿用Rancher的API-UI模式,不破壞用戶的使用習慣。

  • 兼容Kubernetes Native API,包括原生對象和CRD,最大程度保留其數據字段。

  • 擴展API很是簡單,只要向Kubernetes註冊了CRD,steve經過內置controller來watch CRD資源變化,將其熱裝載加入steve API中。

 

Steve是一個較爲獨立的組件,即便離開Rancher也依然可以獨立運行。若是想要在二次開發Kubernetes,可是以爲原生API不友善,徹底能夠在上面啓用Steve風格的API。筆者作了一個小實驗,部署k3s並獨立安裝steve,能夠很是方便獲得一個友好的API。

 

k3s安裝過程較爲簡單直接略過,steve的編譯直接參考Makefile/Dockerfile便可。成功編譯後,會在本地生成一個steve:latest的鏡像,而後使用docker run -itd --net=host -v ${HOME}/.kube:/root/.kube steve:latest啓動steve,咱們就可以得到一個Kubernetes Native的Rancher API。訪問「https://<ip>:9443/v1」能夠查看效果
 
Rancher 2.5特性解讀丨更簡單友好的API和Dashboard
 

Kubernetes Native Dashboard

 

現在Kubernetes生態中,可接入的擴展組件愈來愈多,每每咱們會在Kubernetes中安裝Prometheus、Istio、ArgoCD等各類程序,這些程序基本都會經過CRD來加強本身的服務能力。這就致使了集羣中存在大量的CRD,而且愈來愈難以管理,因而不少經驗豐富的高級技術人員開始指望CRD的可視化管理,以免Kubectl CLI操做的繁瑣。從這個需求出發,Rancher 2.5中集成的新Dashboard也更加Kubernetes Native化。

 

這一切都源於Steve API的能力,可讓咱們很是方便地間接使用Kubernetes API。在Rancher 2.4中,咱們已經提供了這個功能的實驗版,相信不少用戶都已經試用。在Rancher 2.5中,這部分功能將會正式提供,這對於管理單個Kubernetes集羣的高級技術人員將會很是友好。

 

新的Dashboard能夠對Kubernetes原生資源和CRD擴展資源都進行可視化管理,在諸如Kubernetes原生資源的建立等表單上也會提供全面的參數設置,比Rancher 2.4時代的實驗性Dashboard更加成熟。總體的頁面風格也更加傾向簡潔,對於熟練使用Kubernetes的開發的人員會很是方便,同時也採用了Vue框架編寫,這對於國內用戶作二次開發也是一個大利好。
 
Rancher 2.5特性解讀丨更簡單友好的API和Dashboard
 

上手體驗Rancher 2.5

 

在Rancher 2.5中能夠繼續使用docker run方式試用體驗,與先前不一樣的是須要增長privileged參數
 

$ sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged rancher/rancher:v2.5.1

 
啓動完成後,首次進入登陸頁,除了配置初始化密碼外,還要設置默認視圖。兩個視圖分別是:多集羣管理和單集羣管理,前者沿用Rancher2.4 UI並作加強,後者就是前文介紹的Kubernetes Native Dashboard。對於Native Dashboard,因爲啓動時增長了privileged提權參數,因此能夠在容器中啓動一個完整的local集羣,原先docker run方式只能啓動的是kube-api,並不是一個完整集羣,如今經過新的Dashboard則能夠完整管理它,在local集羣上新建workload,固然咱們相信你只會在開發測試時如此使用。
 
Rancher 2.5特性解讀丨更簡單友好的API和Dashboard 總的來講,指望單一集羣管理的用戶,相比以前會節省不少部署資源。而指望使用多集羣管理的用戶,Rancher 2.5依然會保留訪問入口,同時多集羣管理的核心功能也將會有重大的提高,Rancher 2.5總體架構也更加靈活,將會很是方便用戶進行模塊化的擴展,這些內容咱們在後續的文章中逐步交流。

相關文章
相關標籤/搜索