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 ,你有必要知道這些

因此,

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的朋友,可以進入課程頁面瞭解。