多臺linux服務器的集中統一批量佈署管理,用什麼工具最好?

YYY


現在最流行什麼?當然是docker容器啊。那麼怎麼管理和編排呢?當然是k8s啊。

如果服務器超過三臺的話,建議把所有服務器高可用部署成一套k8s集群,然後每個節點外掛一塊共享盤(nfs或者glusterfs),用來掛載給容器存檔數據,這樣由k8s統一管理,當容器當機,k8s會自動重新部署容器,並且由於共享盤的存在,無論我們的服務容器運行到哪個節點,都可以正常讀取數據。真正實現無干預 無感知的服務高可用。

簡單介紹下k8s的使用。

k8s統一由yaml或者json來描述任務,個人更喜歡yaml。直接通過kubectl命令行工具來管理k8s作業。

想要對外暴露容器內部服務,我用的比較多的是ingress+service的方式,k8s也提供loadblance等。可自行研究。

對於docker鏡像,我們統一由harbor進行管理,保證了我們製作的最新的鏡像,在任何節點都可以拉取。





牙牙的生活日誌


這個問題其實分為幾個層次來解答:

1. 基礎設施資源管理

2. runtime以及中間件管理

3. 應用自動化管理

基礎設施資源管理主要分為計算[cpu,mem],存儲,網絡等。那麼怎麼管理基礎設施資源呢?

1. 將底層硬件資源雲化整合成資源池,然後通過容器來做資源的切分給上層的中間件以及應用使用。資源的抽象整合可以使用的工具容器三大調度工具,swarm,k8s,mesos。當然隨著調度工具的發展,原生調度工具swarm,mesos都已經落寞了。谷歌主導的k8s新一代數據中心雲操作系統已經成為了事實標準。不過個人感覺如果公司較小沒有專業的k8s管理者,可以使用swarm簡單而且易用。

對於中間件以及runtime的自動化管理, 這其實是個paas的概念。那麼小公司如何去實踐使用呢?

1. 如果使用swarm作為調度工具的話,可以使用docker compose編排文件去定義中間件的部署yaml文件。比如:redis-ha集群。

2. 如果使用k8s作為平臺調度工具,建議使用helm應用包管理器,進行打包和發佈應用。helm每次發佈會依據charts模板生成一個release,應用可以根據release回退到特定的版本。管理十分方便。我一般都是通過這種方式管理mq,redis等集群。

應用的自動化管理,對於應用管理來說,其實繞不開這幾個話題,發佈部署,高可用,負載均衡,彈性伸縮,監控告警,日誌收集。那麼可以拆開來說:

1. 應用部署階段可以採用jenkins k8s helm的方式,來構建自動化的發佈流程。這個方案有興趣的可以關注我私聊我,我可以指導下。

2. 高可用和負載均衡的方案其實可以通過k8s自身帶有的功能去實現。這裡面其實也涉及到了應用的health check的問題。

3. 彈性伸縮的問題其實分為兩個問題,基礎設施的彈性伸縮已經應用的彈性伸縮。基礎設施的彈性伸縮這個只能依靠自己寫程序去幹,比如pxe等。應用彈性伸縮,可用k8s的hpa方式去做,對於彈性伸縮策略,可以cpu和mem。也可以基於其他方案策略,不做細說。

4. 監控可以採用prometheus -operator全家桶,爽的不要不要的。

5. 日誌收集建議採用efk方案。

筆者是以為從事多年雲計算的老司機,喜歡和大家一起分享雲計算的技術和解決方案。


雲計算搬瓦工


ANSIble saltstack


HomelessMan


做運維和程序一樣 關鍵是思路 有思路用shell一樣自動化 雖然最近在轉用ansible和docker 僅僅是為了用而用 不想被淘汰跟上時代 不然面試被鄙視


分享到:


相關文章: