說到容器大多數人想到的就是docker,docker的迅速崛起使得使用容器的門檻大大下降了,我第一次接觸docker仍是14年,那時候做爲一名運維部署應用還在大量使用虛擬化,從vmware、hyper-v、kvm、xen 在到後來很火openstack多多少少都有接觸和使用,沒使用虛擬化以前OS都是裝到的笨重物理機上,把OS虛擬化出來就有不少文章能夠作了,虛擬化的好處就不說了。web
剛接觸docker的時候只會把docker裝到本身的電腦上來下載一些鏡像跑一下這樣就不會修改系統原理的環境,當時還不知道容器能給運維的工做帶來什麼變化,人的進步都是問題帶來,先看看一開始咱們遇到了什麼問題docker
一、OS仍是太笨重,隨便哪一個OS不是百萬級別代碼量,因此對OS級別的變動級別上都是分鐘級別的服務器
二、由於OS太笨重因此就不想部署太多的OS,這就致使一個OS下常常跑多個應用,一榮俱榮一損俱損網絡
三、開發常常說的一句話:在我電腦上是好的在大家的服務器上就很差了負載均衡
四、線上變動如臨大敵,生怕環境不一致會出異常運維
解決方案:日誌
docker---->docker-compose---->docker machine繼承
可是吃飽了人們又想折騰了開發
一、容器都散佈在各個地方,每一個docker都是獨立王國,如何作到集羣化管理文檔
二、如何作到跨主機網絡訪問
三、應用變動時如何作到無感知
三、監控和日誌應該怎麼作
四、如何作到熔斷、回滾、灰度發佈
五、如何作容器的負載均衡、內部之間訪問
六、如何大規模部署應用
等等。。。。。。
解決方案:
基於kubernetes的openshift
一開始咱們並無選擇openshift,而是調研了比較靈活的rancher(當時rancher仍是1.x的版本)
當時的rancher有一下幾個特色:
一、支持多個底層編排包括Cattle、Swarm、K8S、Mesos
二、能夠快速部署多套獨立的環境
三、簡單的的部署方式
四、高度web化的管理,包括對容器主機的管理
不足之處:
一、當時剛出沒多久還太冷門
二、對K8S支持的並很差(rancher2.x版本已經全面擁抱了k8s)
openshift的特色:
一、徹底繼承k8s全部特性
二、出自紅帽之手
三、文檔豐富、社區活躍(k8s)
四、有公有云版本在穩定運行
缺點:
一、部署過於複雜
基於對紅帽的信仰最後仍是選擇了openshift