Opensetack + Kubernates(K8S)黃金搭檔漫談
上面左邊是我的個人微信,如需進一步溝通,請加微信。 右邊是我的公眾號“Openstack私有雲”,如有興趣,請關註。
前段時間去參加一個devops的峰會,參會的人大多數都是互聯網企業的從業人員,講師也多是互聯網企業的技術專家,主題都是開源社區現階段比較活躍的項目,具體的內容我記得不是很多,對於我個人來講,參加此次峰會後我最大的感觸或者收獲,就是看到了現在的IT技術發展趨勢向容器化方向發展已經確定無疑。
對於生產平臺的全生命周期管理,是每一個IT建設和維護人員所要面對的難題。讓我們設想一個場景:
一個IT互聯網企業運營一個互聯網產品,有復雜的業務邏輯,業務程序和數據庫及接口程序等,起始階段需要搭建基礎IT硬件設施提供操作系統和網絡、存儲,為了加快建設步伐,可以直接使用公有雲,然後在私有雲或者公有雲上面部署自己的應用和數據庫網關接口等等,然後對外開始提供業務。接著隨著業務的擴張,業務在兩個維度開始擴容,一方面是業務功能擴容,一方面是業務量的擴容,兩個維度在同步發生,此時運維人員面對嚴峻的挑戰,既要平行擴容相應的功能節點,比如web服務和數據庫服務器升級,還要測試新功能並安全平穩升級新業務系統版本。
現在大部分的企業對於上面場景的兩項工作都是會花費巨大的時間和精力去進行管理,每次的變更都需要提前規劃並制定實施方案並在合適的時間割接升級或者擴容。在基礎設施領域出現了雲計算,解決了基礎計算資源存儲資源網絡資源的快速交付和靈活管理的問題,在業務管理方面同樣也出現了革命性的解決方案,那就是容器編排技術,具體的產品有以kubernates(K8S)為代表的開源版本,和以紅帽Openshift為代表的各個商業版本。有了這兩個解決方案,對於上面提到的那個場景就有了很好的應對方案。提煉一下,如果從開源角度,那就是:
Openstack + Kubernates(K8S)!
Openstack其實已經在近兩年已經開始擁抱容器技術了,現在最活躍的一個子項目之一Kolla,就是通過docker來對Openstack的組件進行部署和管理,即Openstack本身就被容器化了,具體可以參考另一篇文章“
Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications.
Kubernetes是一個開源系統,用於自動化容器化應用程序的部署,擴展和管理。
Kubernetes 已經承擔了google的生產應用已經有15年,讓google有能力做到一周內10億級別的容器的增減調節而不增加運維團隊;無論的你的應用多麽的復雜,它都能從容應對,自動調節;它可以在私有雲、混合雲、公有雲、原始的硬件平臺環境運行,沒有環境依賴。它主要有以下的特性:
自動管理容器
根據資源需求和其他約束自動放置容器,同時不犧牲可用性。混合關鍵和盡力而為的工作負載,以提高利用率並節省更多資源。
自愈
重新啟動失敗的容器,在節點死亡時替換容器並重新安排容器,殺死不響應用戶定義運行狀況檢查的容器,並在客戶端準備好提供服務之前不會將它們通告給客戶端。
水平縮放
使用一個簡單的命令,使用UI或根據CPU使用情況自動擴展和縮小您的應用程序。
服務發現和負載平衡
無需修改應用程序即可使用不熟悉的服務發現機制。Kubernetes為容器提供了自己的IP地址和一組容器的單個DNS名稱,並且可以在它們之間進行負載平衡。
自動發布和回滾
Kubernetes逐步推出對應用程序或其配置的更改,同時監視應用程序運行狀況以確保它不會同時終止所有實例。如果出現問題,Kubernetes會為您回滾更改。充分利用日益增長的部署解決方案生態系統。
密碼和配置管理
部署和更新密碼和應用程序配置,無需重新構建映像,也不會在您的堆棧配置中暴露秘密。
存儲編排
自動安裝您選擇的存儲系統,無論是從本地存儲,公共雲提供商(如GCP或AWS)還是網絡存儲系統(如NFS,iSCSI,Gluster,Ceph,Cinder或Flocker)。
批量執行
除了服務之外,Kubernetes還可以管理您的批處理和CI工作負載,並根據需要替換失敗的容器。
所以可以說,如果要講到生產環境的搭建和運維,就不能不對Kubernates重點關註,因為這是一個趨勢。
Opensetack + Kubernates(K8S)黃金搭檔漫談