Kubernetes無疑是容器化領域里一個優(yōu)雅的解決方案。 Kubernetes能夠讓我們大規(guī)模地運行容器化應用程序,而不用淹沒在負載平衡,網(wǎng)絡容器,確保應用程序的高可用性或管理更新或回滾的細節(jié)上。許多復雜性被安全地隱藏起來。
但是使用Kubernetes并不是沒有挑戰(zhàn)。Kubernetes的啟動和運行需要一些工作,許多圍繞Kubernetes的管理和維護任務是很棘手的。
即便Kubernetes社區(qū)發(fā)展很活躍,我們也不能指望Kubernetes主體項目能立即解決每個問題。幸運地是,Kubernetes社區(qū)正在對那些Kubernetes團隊由于種種原因沒有關注到的問題找尋解決方案。
下面是3個新涌現(xiàn)出來的Kubernetes項目,目的是使操作人員不再那么難以部署,維護,操作和監(jiān)督容器。
Heptio
兩位從原谷歌Kubernetes開發(fā)團隊離職的員工創(chuàng)建了Heptio,旨在使Kubernetes更易于使用。和其他旨在提供自己Kubernetes發(fā)行版本公司不同的是,香港主機租用 香港高防服務器,他們注重在源頭上提供開源工具來提升Kubernetes的使用效果。
本月早些時候,日本游戲代理 歐洲服務器,Heptio發(fā)布了第一批項目,Heptio Ark和Heptio Sonobuoy。Ark是Kubernetes 集群的災難恢復系統(tǒng)–一種基于容器的集快照、備份和恢復于一體的應用程序。Ark記錄了Kubernetes API對象和持久存儲卷(PV)的狀態(tài)。Ark的默認示例使用和S3兼容的存儲服務(“Minio”),但Ark也可以使用其他主要云提供商的存儲服務–比如亞馬遜的AWS,谷歌的云平臺和微軟的Azure。
Ark現(xiàn)在還沒有提供一個在不同環(huán)境之間隨意切換現(xiàn)有Kubernetes集群的解決方案。對此,Heptio解釋說,Ark需要在不同的云提供商之間支持持久存儲卷快照的遷移,目前尚不支持這一功能。
另外一個項目,Sonobuoy,用來檢查給定的Kubernetes安裝,看它是否能通過用于驗證 Kubernetes發(fā)布版本的測試。
Kubernetes的部署通常會被供應商或用戶做大量修改,這可能會使他們與更新不兼容。Sonobuoy的工作是去發(fā)現(xiàn)這些更改是否引起了不兼容。集群的狀態(tài)也可以導出并用于診斷報告,Sonobuoy的測試也可以通過一個插件架構來擴展。
Sonobuoy仍在早期的開發(fā)階段,不過,它不能檢查Kubernetes一致性測試中標識出的所有問題。它的長期計劃是和由Kubernetes核心團隊創(chuàng)建的測試集保持同步。
Kubed
AppsCode,一個針對容器應用開發(fā)的協(xié)同編碼平臺供應商,最近發(fā)布了一個項目來填補Kubernetes集群管理方面的許多空白。
Kubed–發(fā)音為“Cube-dee”,是“Kubernetes守護進程”的簡稱,它將一大堆有用的功能整合到一個守護進程中。 Kubed可以執(zhí)行定期集群快照,為已刪除的對象提供臨時存儲(萬一你需要再次使用它的話),執(zhí)行自動事件轉發(fā),通過各種渠道發(fā)送通知等等。
Kubernetes也可以在Elasticsearch或InfluxDB的實例中存儲日志數(shù)據(jù),但清理舊數(shù)據(jù)是用戶自己的責任。一個Kubed的功能,janitors,可以在指定的時間段之后自動清除日志數(shù)據(jù)。 Kubed還不支持執(zhí)行這種清理的‘干運行’功能,但是添加該功能的請求已經(jīng)被提交。
Kubed項目目前處于alpha、不穩(wěn)定的狀態(tài),未來計劃有許多突破性的變化。這些計劃包括支持 Kubernetes最近推出的自定義資源定義(CRDs)和通過Kubernetes提供的用戶API 服務器來將Kubed API作為Kubernetes擴展API集使用。
Kubicorn
Kubicorn項目旨在幫助用戶在各種云服務中構建和管理Kubernetes的基礎設施。 像Puppet和其他用于管理基礎設施的現(xiàn)代化工具一樣,Kubicorn采用了聲明式理念:用戶描述他們想要在其集群中看到的狀態(tài),Kubicorn確保集群的狀態(tài)與該目標一致。
Kubicorn旨在可以作為一個獨立工具來使用,同時也可以作為其他工具調(diào)用的庫來使用。 同理,Kubicorn利用了Kubernetes的現(xiàn)有工具,例如kubeadm工具。 因此,Kubicorn旨在補充現(xiàn)有的工作流程,而不是替代它們。
Kubicorn采用的方法主要是使用快照。Kubicorn通過允許用戶定義其集群的狀態(tài),檢查該狀態(tài)是否符合原子性(如果不符合,它將被回滾),并將該狀態(tài)捕獲為快照。這些快照也可以用于新的部署。
請注意,Kubicorn不是官方的Kubernetes項目,它仍然被認為是實驗性的,不應該在生產(chǎn)環(huán)境中使用它。
但是當然,試驗Kubernetes的時機已經(jīng)成熟了。你可能也想試試Kubicorn,Kubed和Heptio。