您是否正在嘗試應該怎樣學習 Kubernetes ?如果是這樣,你可能會有這樣的問題 “ Kubernetes 會是下一件大事嗎?” 或 “ Kubernetes 太繁瑣了?” 或 “ Kubernetes 很難學習嗎?”之類的問題。我的希望是消除任何混亂,並幫助您確定Kubernetes 是否適合您。

在本篇文章中,我們將探討以下問題:

  • Kubernetes 有什麼好處?
  • 學習 Kubernetes 有多難?
  • 對於小型項目來說,Kubernetes 是不是太重了?
  • 我必須掌握大部分 Kubernetes 的特性才能使用它嗎?
  • Kubernetes 受歡迎程度是增加還是減少?
  • Kubernetes 有趣嗎?

免責聲明

Kubernetes 位於 軟件開發DevOps系統管理 的交叉點。我是軟件開發人員。因此無論好壞,我都通過開發者的眼光看待 Kubernetes。

我的目標是保持客觀。因此,我將介紹優缺點,以便您確定 Kubernetes 是否適合您。

什麼是 Kubernetes ?

簡而言之,Kubernetes 可幫助您管理由一個或多個容器組成的應用程序。從本質上講,它是一個工具箱,可幫助您構建由多個Docker容器組成的非常強大的應用程序。

Kubernetes 有什麼好處?

  • 自愈 :Kubernetes 自動重啓崩潰的容器。它將崩潰或宕機節點上運行的容器重新調度。

  • 負載均衡 :在 Kubernetes 中創建負載均衡器很簡單。可以針對羣集內部或羣集外部的流量負載均衡到不同的 Pod。

  • 自動容器調度 :Kubernetes 自動決定將容器部署到何處。當您在多個節點上運行許多容器時,這確實非常方便。

  • 水平縮放 :當容器副本需要增加時,很容易按比例擴大它們的數量。也可以通過單個命令手動完成,也可以自動完成。

  • 滾動更新 :您可以將舊容器換成新容器,而不會中斷服務。也可以使用單個命令來完成。

  • 零停機降級 :如果在某些容器中發現錯誤,可以恢復到這些容器的舊版本,而不會中斷。(這使您有足夠的時間來修改bug。)

  • Secret 數據管理 :您可以在 Kubernetes 集羣中存儲敏感信息。如 API密鑰數據庫密碼 等。與將它們保存在版本控制下的源文件中相比,這是一個更安全的選擇。

  • 抽象掉硬件 :開發人員用容器都無需瞭解有關底層羣集硬件的任何知識。這使得從一個雲提供商遷移到另一雲提供商變得容易。

學習 Kubernetes 有多難?

有人抱怨 Kubernetes 很難學習。我認爲這是有道理的,但並沒有大家想象的那麼難。讓我概述下大家爲什麼覺得很難學。

  • 找到好的Kubernetes文檔很難嗎? - 在過去的幾年中,官方文檔已從可怕的變成了相當不錯的。但是它仍然有些脫節並且比較分散。這使得確定學習各種概念的順序有些困難。因此,我認爲該文檔最好作爲參考,而不是循序漸進的指南。

  • Kubernetes複雜嗎? - 我認爲 Kubernetes 並不比當今使用的任何流行編程語言複雜。實際上,我認爲 Kubernetes 更容易掌握。特別是如果您已經熟悉容器的話。

  • Kubernetes是否有許多先決條件? - 並不是的。但是您應該知道什麼是 Docker容器 以及它們如何工作的基礎知識。瞭解 YAML (這需要5到10分鐘的學習時間)也很有幫助。並且您需要對 *nix 命令行有基本的瞭解。是的,即使是Windows用戶,因爲在開發/調試過程中,您可能會不時地轉移到基於Linux的容器中。

  • 有很多概念要學習嗎? - 有很多概念需要學習,但這是有原因的。憑藉其衆多功能,Kubernetes 能夠解決許多不同類型的問題。但是,您可以繞開更高級的功能,直到您真正需要它們爲止。許多問題只需要一小部分 Kubernetes 功能。使用您需要的內容,而忽略其餘部分。

Kubernetes 是不是太重了?

儘管 Kubernetes 具有很多功能,但您不必全部學習它們。僅通過學習核心功能(如 pods , services , controllers , volumes , secrets 等),就可以學習很多東西。然後,當您真正需要時,您可以學習您所需要的功能。

我認爲這種 “太重” 的名聲實際上來源於團隊 選擇安裝維護Kubernetes 的方式。您會看到,Kubernetes 在生產中並沒有一個簡單的安裝過程。(請注意,創建開發集羣並不難。)但是,如果您使用託管解決方案(例如 DigitalOcean Kubernetes 或 Google Kubernetes Engine),則 安裝安全升級 都不需要你來維護。最重要的是,託管解決方案很便宜!

最後,請記住以下兩個想法:

1、使用您需要的內容,而忽略其餘部分。

2、每個大項目都是從小項目開始的!

Kubernetes 受歡迎程度是增加還是減少?

沒有人願意登上一艘正在下沉的船。也沒有人願意學習一種正在消失的技術。好消息是,Kubernetes 沒有消失的危險。許多大公司(例如 Pinterest,Spotify和Squarespace)都依賴 Kubernetes。事實上,Kubernetes 已經變得非常流行,它已經成爲事實上的標準容器編排系統。

Kubernetes 有趣嗎?

我真的很喜歡和 Kubernetes 共事。但我一開始並沒有這樣的感覺。

幾年前,當我第一次學習Kubernetes時,我並不喜歡它,原因有二:

  • 它的文檔實在是太糟糕了

  • 你必須處理大量的配置文件

好消息是,Kubernetes 的維護人員已經極大地改進了文檔。僅此一點,讓 Kubernetes 的使用變得更加有趣。

也就是說,使用 Kubernetes 意味着您仍然必須使用許多配置文件。但是現在我真的很喜歡和他們一起工作。我將這種徹底的轉變歸功於三件事:

  • 1、首先,Kubernetes 所處的區域存在着有趣的問題。畢竟,它是一個用於解決容器化系統的基礎結構級問題的工具箱。因此,您可以使用Kubernetes來處理 分佈式系統微服務系統可靠性網絡安全性 之類的事情。承認吧,蠻好玩的!

  • 2、其次,Kubernetes 是一個功能強大的系統,具有許多功能。俗話說,“權力越大,責任越大,樂趣越大”。這就是爲什麼我的人生目標是轉世成一條電鰻。到目前爲止,一切都很好。

  • 3、第三,Kubernetes 組件很有趣,就像樂高積木一樣有趣。它們的 靈活性可組合性 使您能夠解決各種問題。這有點類似於編程,因爲在兩種情況下,您都需要結合 創造性獨創性最佳實踐 來解決問題。有什麼不喜歡的呢?

可以肯定的是,Kubernetes並不全是陽光和彩虹。因此,讓我們來看看幾個不足的地方。

  • 1、首先,Kubernetes 的配置文件在一開始讀起來並不直觀。簡而言之,您的大腦需要時間來習慣於從不重要的片段中挑選出重要的片段。但是不用擔心。這不是很難。如果我可以得到,您也可以。

  • 2、其次,您需要熟練地使用 Kubernetes 進行調試。(您不可能拋出一堆打印語句或運行某種不存在的Kubernetes調試器。)在您熟悉一些有用的kubectl命令之前,您可能會不時感到有些茫然。

總結

首先, DockerKubernetes 都是目前的潮流。容器和容器編排將繼續席捲整個行業,這是有充分理由的。儘管容器解決了整個部署問題,但Kubernetes提供了一個強大而通用的系統來管理任何規模的容器集羣。

也就是說,下面兩種情況,Kubernetes 可能不是您的最佳選擇。

  • 1、首先,如果(a)您尚未使用容器,(b)您沒有計劃使用它們,(c)您已經具有可以運行的部署和集羣管理系統,那麼就不要切換!聽起來您的項目已經相當完善了。

  • 2、其次,您所在的團隊是否決定安裝和管理自己的容器編排系統?如果是這樣,請考慮使用使用 Docker Swarm 之類的工具,它可能不具備 Kubernetes 的全部功能,但更易於安裝。

原文鏈接: https://blog.true-kubernetes.com/is-kubernetes-worth-learning-part-1-the-big-picture/

---本文結束感謝您的閱讀。 微信掃描二維碼,關注我的公衆號---

相關文章