Kubernetes 基礎:首先學習如何使用

Scott Mccarty發表於2019-06-30

不要被新專案分心,而是專注於取得你的 Kubernetes 翻斗車駕駛執照。

Truck steering wheel and dash

在本系列的前兩篇文章中,我解釋了為何 Kubernetes 像翻斗車,並且想要理解像 Kubernetes(和翻斗車,起重機等)這樣優雅、專業工具總是有學習曲線的。本文是下一步:學習如何駕駛。

最近,我在 Reddit 上看到了一個關於重要的 Kubernetes 專案的帖子。人們似乎很想知道他們應該學習如何開始使用 Kubernetes。“駕駛翻斗車的類比”有助於確保這個問題回到軌道上去。在這個帖子中的某個人提到,除非必要,你不應該執行自己的映象倉庫,所以人們開始逐漸接受駕馭 Kubernetes 而不是構建它的想法。

API 是 Kubernetes 的引擎和變速器。像翻斗車的方向盤、離合器、汽油和制動踏板一樣,用於構建應用程式的 YAML 或 JSON 檔案是機器的主要介面。當你第一次學習 Kubernetes 時,這應該是你的主要關注點。瞭解你的控制部件。不要分心於最新和最大的那些專案。當你剛學會開車時,不要嘗試駕駛實驗性的翻斗車。相反,請專注於基礎知識。

定義狀態和實際狀態

首先,Kubernetes 遵循定義狀態和實際狀態的原則。

Defined state and actual state

人類(開發人員/系統管理員/運維人員)使用他們提交給 Kubernetes API 的 YAML/JSON 檔案指定定義的狀態。然後,Kubernetes 使用控制器來分析 YAML/JSON 中定義的新狀態與叢集中的實際狀態之間的差異。

在上面的例子中,Replication Controller 可以看到使用者指定的三個 pod 之間的差異,其中一個 pod 正在執行,並排程另外兩個 Pod。如果你登入 Kubernetes 並手動殺死其中一個 Pod,它會不斷啟動另一個來替換它。在實際狀態與定義的狀態匹配之前,Kubernetes 不會停止。這是非常強大的。

原語

接下來,你需要了解可以在 Kubernetes 中指定的原語。

Kubernetes primitives

這些原語不僅僅有 Pod,還有部署Deployment持久化卷宣告Persistent Volume Claim服務Service路由route等。使用支援 Kubernetes 的平臺 OpenShift,你可以新增構建build和 BuildConfig。你大概需要一天左右的時間來了解這些原語。你可以在你的用例變得更加複雜時再深入瞭解。

將原生開發者對映到傳統 IT 環境

最後,考慮這該如何對映到你在傳統 IT 環境中的操作。

Mapping developer-native to traditional IT environments

儘管是一個技術問題,但使用者一直在嘗試解決業務問題。從歷史上看,我們使用諸如劇本playbook之類的東西將業務邏輯與單一語言的 IT 系統繫結起來。對於運維人員來說,這很不錯,但是當你嘗試將其擴充套件到開發人員時,它會變得更加繁瑣。

直到 Kubernete 出現之前,我們從未能夠以原生開發者的方式真正同時指定一組 IT 系統應如何表現和互動。如果你考慮一下,我們正在使用在 Kubernetes 中編寫的 YAML/JSON 檔案以非常便攜和宣告的方式擴充套件了管理儲存、網路和計算資源的能力,但它們總會對映到某處的“真實”資源。我們不必以開發者身份擔心它。

因此,快放棄關注 Kubernetes 生態系統中的新專案,而是專注開始使用它。在下一篇文章中,我將分享一些可以幫助你使用 Kubernetes 的工具和工作流程。


via: https://opensource.com/article/19/6/kubernetes-basics

作者:Scott McCarty 選題:lujun9972 譯者:geekpi 校對:wxy

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

相關文章