譯見 | 掌舵 Kubernetes(二):輕鬆駕馭 Kubernetes 的三個開源專案

DaoCloud發表於2017-08-15

譯見 | 掌舵 Kubernetes(二):輕鬆駕馭 Kubernetes 的三個開源專案

從對叢集狀態的管理到快照和 DR,與之配套的開源專案 Heptio、Kubed 和 Kubicorn 一直在填補 Kubernetes 相應領域的空白。

Kubernetes 顯然是一種解決問題的絕佳手段,它讓我們能在不忽略負載均衡、容器網路、確保應用程式的高可用性或者管理更新或回滾等相應細節的前提下,規模化地執行容器化應用程式,讓一切化繁為簡。

但使用 Kubernetes 也存在著一些挑戰。對於 Kubernetes 的起步和執行都需要工作量,並且圍繞其進行的管理和維護更是徹頭徹尾的棘手。

以 Kubernetes 如今這樣飛速發展的態勢,我們不能僅僅寄希望於他們的核心專案能很快解決所有問題。但是幸運的是,與 Kubernetes 有關的社群正在為這些現有的問題尋找解決辦法。

本文將向你介紹三個有關 Kubernetes 的新興專案,這些新專案能減輕容器編排的開發,維護,工作和監管的難度。


Heptio


Kubernetes 的兩位創始人離開 Google 後,共同創立了 Heptio,該公司致力於使 Kubernetes 變得更易於使用。與其自己創立的 Kubernetes 一樣,也與其他廠商一樣,他們將心力投身於提供開源工具,來提升與原版和上游版本 Kubernetes 的使用體驗。

本月初,Heptio 釋出了他們的首批專案,Heptio Ark 和 Heptio Sonobuoy。Ark 是一款基於 Kubernetes 叢集的容災恢復系統 — 可以對容器的應用程式進行快照,備份和恢復。Ark 記錄了 Kubernetes API 物件和持久卷(PV)磁碟的狀態。其預設示例允許你使用 S3 — 相容儲存服務(“Minio”),但是 Ark 同樣可以利用所有巨頭雲提供商(Amazon Web Services,Google Cloud Platform 和 Microsoft Azure)上的儲存空間。

那有沒有什麼是 Ark 不能實現的呢?它還無法提供一個完整的解決方案來在不同的環境中遷移現有的 Kubernetes 叢集。 Ark 也將在之後支援跨雲提供商的持久卷快照遷移。

而另一個專案 Sonobuoy 能夠檢驗給定 Kubernetes 的安裝,通過測試來檢測其 Kubernetes 版本是否匹配。

Kubernetes 開發過程通常供應商或使用者都會進行大量的修改,這可能會使它們與更新無法相容。Sonobuoy 便可以判定這些修改是否造成不相容。叢集的狀態也可以被拋棄並用於診斷報告,Sonobuoy 執行的測試也可以通過外掛架構進行擴充套件。

儘管如此,Sonobuoy 還處於發展的早期階段,因為它還無法在 Kubernetes 自身的一致性測試中檢查標識的所有問題。其發展的長期計劃是與核心的 Kubernetes 團隊建立的測試套件來保持緊密的同步。


Kubed


AppsCode 是容器化應用協作編碼平臺的製造商,他們最近釋出了一個專案,填補了管理 Kubernetes 叢集中的許多空白。

Kubed 將一系列有用的功能集中在一個單一的守護程式中。Kubed 可以定期地進行叢集快照,併為已刪除的物件提供臨時儲存(如果你需要再次使用),執行自動事件轉發,通過各種渠道傳送通知等等。

Kubernetes 還可以在 Elasticsearch 或 InfluxDB 的例項中儲存日誌資料,但清理舊資料便需要使用者進行手動操作了。Kubed 一個功能 — janitors,能通過在指定的時間段之後清除日誌資料來自動執行上述的過程。Kubed 還不支援進行清理執行的能力,但問題是開放的,以增加該功能。

Kubed 專案目前處於一個起步的還不穩定的狀態,但在其未來的計劃中將進行許多突破性的變化。這些功能之一便是支援 Kubernetes 最近推出的 Custom Resource Definitions(CRD),並通過 Kubernetes 使用者的 API 伺服器提供 Kubed API,這能讓 Kubernetes 提供允許生態應用以擴充套件其 API 集。


Kubicorn


Kubicorn 專案致力於幫助使用者在不同的雲服務上構建並管理 Kubernetes 基礎架構。像 Puppet 和其他管理基礎架構的現代化工具一樣,Kubicorn 採用了宣告性的理念:使用者描述他們在叢集中想要了解的狀態,並確保叢集的狀態與此目標保持同步更新。

Kubicorn 旨在作為一個獨立工具和作為其他工具可以呼叫的庫。同理,Kubicorn 利用 Kubernetes 中的現有工具(如 kubeadm 工具)進行操作。因此, Kubicorn 的目的是補充現有的工作流程,而不是取代它們。

Kubicorn 的主要功能是使用快照,它的工作原理是允許使用者定義他們的叢集狀態,並原子級地應用該狀態(如果它不奏效, 則進行回滾), 並將該狀態捕獲為快照。這些快照還可以用於新的部署。

必須要注意的是,Kubicorn 不是一個正式的 Kubernetes 專案,它仍然被認為是實驗性的。還不能正式用於生產工作。

當然, 對 Kubernetes 進行的相關實驗已經非常成熟。你可以通過 Kubicorn、Kubed 和 Heptio 輕鬆突破 Kubernetes 的相關問題帶來的挑戰!

點選檢視 Kubernetes 系列文章!

譯見 | 掌舵 Kubernetes(二):輕鬆駕馭 Kubernetes 的三個開源專案


相關文章