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