歡迎光臨
每天分享高質量文章

一步步採用 Kubernetes | Linux 中國

這正是 Kubernetes 登場的時候。它是一個容器編排orchestration系統,它允許您以一定的標準管理、縮放和部署應用程式的不同部分,並且成為其中的重要工具。
— Santiago Arias


本文導航
編譯自 | https://medium.com/ingeniouslysimple/adopting-kubernetes-step-by-step-f93093c13dfe 
 作者 | Santiago Arias
 譯者 | aiwhj

為什麼選擇 Docker 和 Kubernetes 呢?

容器允許我們構建、釋出和執行分散式應用。它們使應用程式擺脫了機器限制,可以讓我們以一定的方式建立一個複雜的應用程式。

使用容器編寫應用程式可以使開發、QA 更加接近生產環境(如果你努力這樣做的話)。透過這樣做,可以更快地釋出修改,並且可以更快地測試整個系統。

Docker[1] 這個容器式平臺就是為此為生,可以使軟體獨立於雲提供商。

但是,即使使用容器,移植應用程式到任何一個雲提供商(或私有雲)所需的工作量也是不可忽視的。應用程式通常需要自動伸縮組、持久遠端磁碟、自動發現等。但是每個雲提供商都有不同的機制。如果你想使用這些功能,很快你就會變的依賴於雲提供商。

這正是 Kubernetes[2] 登場的時候。它是一個容器編排orchestration系統,它允許您以一定的標準管理、縮放和部署應用程式的不同部分,並且成為其中的重要工具。它的可移植抽象層相容主要雲的提供商(Google Cloud,Amazon Web Services 和 Microsoft Azure 都支援 Kubernetes)。

可以這樣想象一下應用程式、容器和 Kubernetes。應用程式可以視為一條身邊的鯊魚,它存在於海洋中(在這個例子中,海洋就是您的機器)。海洋中可能還有其他一些寶貴的東西,但是你不希望你的鯊魚與小丑魚有什麼關係。所以需要把你的鯊魚(你的應用程式)移動到一個密封的水族館中(容器)。這很不錯,但不是特別的健壯。你的水族館可能會被打破,或者你想建立一個通道連線到其他魚類生活的另一個水族館。也許你想要許多這樣的水族館,以防需要清潔或維護……這正是應用 Kubernetes 叢集的作用。

進化到 Kubernetes

主流雲提供商對 Kubernetes 提供了支援,從開發環境到生產環境,它使您和您的團隊能夠更容易地擁有幾乎相同的環境。這是因為 Kubernetes 不依賴專有軟體、服務或基礎設施。

事實上,您可以在您的機器中使用與生產環境相同的部件啟動應用程式,從而縮小了開發和生產環境之間的差距。這使得開發人員更瞭解應用程式是如何構建在一起的,儘管他們可能只負責應用程式的一部分。這也使得在開發流程中的應用程式更容易的快速完成測試。

如何使用 Kubernetes 工作?

隨著更多的人採用 Kubernetes,新的問題出現了;應該如何針對基於叢集環境進行開發?假設有 3 個環境,開發、質量保證和生產, 他們如何適應 Kubernetes?這些環境之間仍然存在著差異,無論是在開發週期(例如:在執行中的應用程式中我的程式碼的變化上花費時間)還是與資料相關的(例如:我不應該在我的質量保證環境中測試生產資料,因為它裡面有敏感資訊)。

那麼,我是否應該總是在 Kubernetes 叢集中編碼、構建映像、重新部署服務,在我編寫程式碼時重新建立部署和服務?或者,我是否不應該儘力讓我的開發環境也成為一個 Kubernetes 叢集(或一組叢集)呢?還是,我應該以混合方式工作?

用本地叢集進行開發

如果繼續我們之前的比喻,上圖兩邊的洞表示當使其保持在一個開發叢集中的同時修改應用程式的一種方式。這通常透過[3]來實現

Kubernetes 系列

本 Kubernetes 系列資源是開源的,可以在這裡找到: https://github.com/red-gate/ks 。

我們寫這個系列作為以不同的方式構建軟體的練習。我們試圖約束自己在所有環境中都使用 Kubernetes,以便我們可以探索這些技術對資料和資料庫的開發和管理造成影響。

這個系列從使用 Kubernetes 建立基本的 React 應用程式開始,並逐漸演變為能夠改寫我們更多開發需求的系列。最後,我們將改寫所有應用程式的開發需求,並且理解在資料庫生命週期中如何最好地迎合容器和叢集。

以下是這個系列的前 5 部分:

☉ ks1:使用 Kubernetes 構建一個 React 應用程式
☉ ks2:使用 minikube 檢測 React 程式碼的更改
☉ ks3:新增一個提供 API 的 Python Web 伺服器
☉ ks4:使 minikube 檢測 Python 程式碼的更改
☉ ks5:建立一個測試環境

本系列的第二部分將新增一個資料庫,並嘗試找出最好的方式來開發我們的應用程式。

透過在各種環境中執行 Kubernetes,我們被迫在解決新問題的同時也儘量保持開發週期。我們不斷嘗試 Kubernetes,並越來越習慣它。透過這樣做,開發團隊都可以對生產環境負責,這並不困難,因為所有環境(從開發到生產)都以相同的方式進行管理。

下一步是什麼?

我們將透過整合資料庫和練習來繼續這個系列,以找到使用 Kubernetes 獲得資料庫生命週期的最佳體驗方法。

這個 Kubernetes 系列是由 Redgate 研發部門 Foundry 提供。我們正在努力使資料和容器的管理變得更加容易,所以如果您正在處理資料和容器,我們希望聽到您的意見,請直接聯絡我們的開發團隊。 foundry@red-gate.com[5]


我們正在招聘。您是否有興趣開發產品、建立未來技術[6] 並採取類似創業的方法(沒有風險)?看看我們的軟體工程師 – 未來技術[7]的角色吧,並閱讀更多關於在 英國劍橋[8]的 Redgate 工作的資訊。


via: https://medium.com/ingeniouslysimple/adopting-kubernetes-step-by-step-f93093c13dfe

作者:santiago arias[10] 譯者:aiwhj 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

LCTT 譯者

aiwhj ? ?
共計翻譯:4 篇
貢獻時間:28 天


推薦文章

< 左右滑動檢視相關文章 >

點選圖片、輸入文章 ID 或識別二維碼直達

贊(0)

分享創造快樂