上手Kubernetes之前,你應(yīng)該知道這6件事
在過去的一年多時間了里,我們深入了解了容器編排工具,引導(dǎo)團隊構(gòu)建并發(fā)布了可以部署在kubernetes上的cloud native GitLab helm chart。對于正在考慮上手Kubernetes的朋友,我們有以下6點建議:
在網(wǎng)上查看文檔、在線課程和演示
不要閉門造車,去看看網(wǎng)上的文檔和視頻演示,這是都是可以讓我們快速熟悉和了解Kubernetes的好渠道。我們其實沒必要為了用K8s而去煞有介事的參加一整套課程,但是對于某些技術(shù)細節(jié),專業(yè)的講解和經(jīng)驗分享無疑是極有幫助的。
當(dāng)然學(xué)以致用的***途徑還是實際的測試演練,有很多PaaS平臺或者Kubernetes工具都有免費的資源或者免費試用期,我們可以在其之上建立并部署一個小集群,嘗試、配置、更改……隨便玩吧!
搞明白為什么用Kubernetes
使用Kubernetes的***挑戰(zhàn)之一是想清楚我們要做什么——是作為一個測試round、一個臨時環(huán)境,還是用于生產(chǎn)?
僅僅用于開發(fā)環(huán)境并不復(fù)雜,只需要了解一些基本的概念,比如namespace,以及了解什么是secret、什么是configuration、什么是deployment等等,這些概念將在我們的使用過程中貫穿始終。
在Kubernetes上更進一步時,我們需要了解一些之前不存在的東西,比如基于角色的訪問控制、RBAC等等。這些功能一年前還沒有,但現(xiàn)在正在變得越來越重要,對于在整個流程上的不同角色來說好處多多,確保正在做的事情不會影響到其他不該觸及的事情。
例如,我們現(xiàn)在可以通過RBAC進行細粒度控制,設(shè)置多個namespace,每個namespace對訪問或者創(chuàng)建secret、configuration進行控制。這樣我們便擁有了生產(chǎn)級的多租戶集群,不必擔(dān)心租戶之前互相影響和干涉。
服務(wù)商們的Kubenretes版本不一定一致
很多人會選擇使用服務(wù)商提供的Kubernetes服務(wù),這里需要注意的是,服務(wù)商們提供的Kubenrets版本往往并不一致。一般來說,它們會很接近,但某些功能的實現(xiàn)方式稍有不同?;蛟S基礎(chǔ)版本都差不多,區(qū)別會存在于服務(wù)商與自己產(chǎn)品集成時提供的高級支持。
另外需要注意的是,有些服務(wù)商并不支持我們“自己動手”,我們無法把自己的插件和組件跟服務(wù)商提供的產(chǎn)品服務(wù)一起使用。
對于新功能的使用不能盲目
從我們***次了解Kubernetes到現(xiàn)在,一年時間里它的功能擴展了很多。對于新的變化,如果沒有充分理解便貿(mào)然使用的話,很可能會適得其反,我們花些時間閱讀和思考是否真的用得上或者怎么用,畢竟看到別人這樣做并不代表它就是行業(yè)的***實踐。
要經(jīng)常更新版本
Kubernets是一個生產(chǎn)就緒的系統(tǒng),但它不是一個每半年發(fā)布一次新版本的軟件,新的特性和功能每日劇增。所以如果我們安裝了Kubernets,一年不更新,之后再去考慮找一個LTS,那時候其實已經(jīng)晚了。我們的建議是每個月檢查一次Kubernetes的新功能和新特性,以保證我們沒有“過時”。
***一點建議(廣告)
Kubernetes提出的一系列概念抽象,非常符合理想的分布式調(diào)度系統(tǒng)。但大量高難度技術(shù)概念,同時也形成了一條陡峭的學(xué)習(xí)曲線,直接拉高了Kubernetes的使用門檻。
好雨云開源PaaS Rainbond則將這些技術(shù)概念包裝成為“Production-Ready”的應(yīng)用,可以作為一個Kubernetes面板,開發(fā)者不需要特殊學(xué)習(xí)即可使用。
除此之外,Kubernetes本身是一個容器編排工具,并不提供管理流程,而Rainbond提供現(xiàn)成的管理流程,包括DevOps、自動化運維、微服務(wù)架構(gòu)和應(yīng)用市場等,可以開箱即用。