Kubernetes
是什麼?
大概很多人對此都有疑問,不過在容器領域,Kubernetes卻無人不曉。
阿里、位元組跳動、騰訊、百度等中國網際網路行業巨擘們,近年來都在深耕容器領域,而Kubernetes也是這些大廠未來的戰略重心。
因此,若是你還不瞭解Kubernetes,這篇掃盲貼一定要收藏後認真看。
一、Kubernetes的前世今生
在《Kubernetes 基礎:入門與安裝配置》一課中,是這樣描述Kubernetes的。
Kubernetes 是一個跨主機叢集的、開源的容器排程平臺,它可以自動化應用容器的部署、擴充套件和操作,提供以容器為中心的基礎架構。
它的名字源於希臘語,意為 “舵手” 或 “飛行員”,k8s 是透過將 8 個字母 “ubernete” 替換為 8 然後改成的縮寫,在中文中,k8s 的發音和 Kubernetes 的發音也比較接近。
Linux 基金會常務董事 Jim Zemlin 說:
“Kubernetes 已經成為雲計算時代的 Linux 作業系統。”
Kubernetes 是 Google Borg 專案的開源版本,Borg 是 Google 內部使用了十幾年的非常有名的大規模叢集管理系統,其原型圖片如下所示:
因此,
Kubernetes 構建於 Google 數十年經驗,一大半來源於 Google 生產環境規模的經驗,並結合了社群最佳的想法和實踐。
Kubernetes 的目標是管理跨多個主機的容器,提供基本的部署,維護以及運用伸縮,主要實現語言為 Go 語言。
二、Kubernetes 成長曆程及特點
Kubernetes 重要成長曆程:
2014 年 6 月,Kubernetes 正式由 Google 開源
2015 年,Google 將 Kubernetes 捐贈給 Linux 基金會下屬的 CNCF(Cloud Native Computing Foundation,雲原生計算基金會)
2017 年,Kubernetes 戰勝 Docker Swarm 和 Apache Mesos,成為容器管理與排程編排領域的首選平臺和事實標準
Kubernetes 特點:
強大的容器編排能力
作為容器編排管理平臺,擁有強大的容器編排能力。Kubernetes 與 Docker 共同發展並且深度集成了 Docker,因此適應容器的特點,比如容器組合、標籤選擇和服務發現等,可以滿足企業級的需求。
輕量級
輕量級,對微服務架構有很好的支撐。
便攜性
無論公有云、私有云、混合雲還是多雲架構都全面支援,可以隨時隨地地將系統整體進行“搬遷”。
無需改變配置檔案就可以將系統從物理機遷移到公有云上,並且谷歌雲(GCE)、華為雲(CCE)、阿里雲(ACK)和騰訊雲(TKE)都支援 Kubernetes 叢集。
三、使用 Kubernetes的 10 個理由
從生態圈的角度來看:
Google 的業內最成熟的容器編排管理經驗的輸出
2017 年戰勝 Docker Swarm 和 Apache Mesos,成為雲原生應用唯一值得繫結的容器編排管理平臺
傳統雲平臺提供商的全面支援:Google k8s engine、Red Hat 的 OpenShift、Microsoft 的 Azure container service、IBM 的 cloud container service 等
有了 Kubernetes,你可以:
跨主機編排容器
更充分地利用硬體資源來最大化地滿足企業應用的需求
控制與自動化應用的部署與升級
為有狀態的應用程式掛載和新增儲存器
線上擴充套件或裁剪容器化應用程式與它們的資源
宣告式的容器管理,保證所部署的應用按照我們部署的方式運作
透過自動佈局、自動重啟、自動複製、自動伸縮實現應用的狀態檢查與自我修復
四、零基礎入門Kubernetes
近期,實驗樓推出了一系列的Kubernetes課程,難度各異,但我認為,最適合新人學習的課程是這門:
該課程為 Kubernetes 入門課程,將會從零開始帶領大家一步一步深入學習 Kubernetes 相關知識。內容包括:Kubernetes 基礎概念、微服務架構、部署例項、以及最常用的 YAML 語言格式。
想深入Kubernetes的朋友,可以進入課程頁面瞭解。