給你一個用Kubernetes(k8s)的理由

給你一個用Kubernetes(k8s)的理由

Kubernetes (Kube 或 K8s)越來越流行,他是市場上最好的容器編排工具之一。

1. 什麼是容器?

容器就是一個包,其中包含了應用及其所有依賴。

容器中的應用與主機系統是隔離的,不關注環境。

不像虛擬機,容器不需要啟動操作系統的完整週期,這就是為啥容器啟動和停止都非常快,並且可以更高效使用磁盤、內存、處理器的原因。

你不必記著你的應用是用什麼語言和框架開發的,因為所需的一切都打包在了容器中,例如運行時環境、所需的庫等等,可以安全的遷移,可以在任何環境中部署。

給你一個用Kubernetes(k8s)的理由

左邊,應用是直接部署在服務器或者虛擬機裡面的,右邊,應用是打包在獨立的容器中的,可以快速啟動、智能擴展、在任何環境中平滑運行。

2. 什麼是 Kubernetes?

Kubernetes 是一個開源項目,用於統一管理容器化的應用集群。

Kubernetes 負責在大規模服務器環境中管理容器組(pod)的擴展、複製、健康,並解決 pod 的啟動、負載均衡等問題。

Kubernetes 最初是 Google 發佈的,現在已經被多家大公司支持,例如 Microsoft, RedHat, IBM, Docker。

給你一個用Kubernetes(k8s)的理由

3. Kubernetes 的著名優勢特色

3.1 一個平臺搞定所有

使用 Kubernetes,部署任何應用都是小菜一碟。

只要應用可以打包進容器,Kubernetes 就一定能啟動它。

給你一個用Kubernetes(k8s)的理由

不管什麼語言什麼框架寫的應用(Java, Python, Node.js),Kubernetes 都可以在任何環境中安全的啟動它,物 理服務器、虛擬機、雲環境。

3.2 雲環境無縫遷移

如果你有換雲環境的需求,例如從 GCP 到 AWS,使用 Kubernetes 的話,你就不用有任何擔心。

給你一個用Kubernetes(k8s)的理由

Kubernetes 完全兼容各種雲服務提供商,例如 Google Cloud、Amazon、Microsoft Azure,還可以工作在 CloudStack, OpenStack, OVirt, Photon, VSphere。

3.3 高效的利用資源

看下圖,左邊,是4個虛擬機,黃色和藍色部分是運行的應用,白色部分是未使用的內存和處理器資源。

右邊,同樣的應用打包運行在容器中。

給你一個用Kubernetes(k8s)的理由

Kubernetes 如果發現有節點工作不飽和,便會重新分配 pod,幫助我們節省開銷,高效的利用內存、處理器等資源。

如果一個節點宕機了,Kubernetes 會自動重新創建之前運行在此節點上的 pod,在其他節點上運行。

3.4 開箱即用的自動縮放能力

網絡、負載均衡、複製等特性,對於 Kubernetes 都是開箱即用的。

pod 是無狀態運行的,任何時候有 pod 宕了,立馬會有其他 pod 接替它的工作,用戶完全感覺不到。

如果用戶量突然暴增,現有的 pod 規模不足了,那麼會自動創建出一批新的 pod,以適應當前的需求。

反之亦然,當負載降下來的時候,Kubernetes 也會自動縮減 pod 的數量。

給你一個用Kubernetes(k8s)的理由

3.5 使 CI/CD 更加簡單

你不必精通於 Chef 和 Ansible 這類工具,只需要對 CI 服務寫個簡單的腳本然後運行它,就會使用你的代碼創建一個新的 pod,並部署到 Kubernetes 集群裡面。

應用打包在容器中使其可以安全的運行在任何地方,例如你的 PC、一個雲服務器,使得測試極其簡單。

給你一個用Kubernetes(k8s)的理由

3.6 可靠性

Kubernetes 如此流行的一個重要原因是:應用會一直順利運行,不會被 pod 或 節點的故障所中斷。

如果出現故障,Kubernetes 會創建必要數量的應用鏡像,並分配到健康的 pod 或節點中,直到系統恢復。

而且用戶不會感到任何不適。

給你一個用Kubernetes(k8s)的理由

一個容器化的基礎設施是有自愈能力的,可以提供應用程序的不間斷操作,即使一部分基礎設施出現故障。

4. 總結

Kubernetes 使得應用的啟動、遷移、部署變得即簡單又安全。

不必擔心應用遷移後工作出現問題,也不用擔心一臺服務器無法應付突發的用戶量。

需要注意的是,你的應用最好使用微服務架構進行開發,因為微服務應用比單體應用更適合做容器化。

翻譯自:

https://itnext.io/why-you-should-use-kubernetes-in-your-next-project-8081c7b6c6e0


分享到:


相關文章: