容器宿主機到底怎么選,你只需要知道這5點

前言

容器宿主機的選擇需要考慮如下幾個問題

  1. 用物理機還是虛擬機?
  2. 用多大規格的服務器?
  3. CPU和內存配比多少合理?
  4. 一個集群,需要放多少節點?
  5. 主機越大越好,還是越小越好?

這些問題,每一個單獨拿出來,都不是很好回答,并且每個企業實際情況不盡相同,我將結合我們在生產環境的實際使用經驗,來談一談如何選擇容器的宿主機,你從本文中可以獲得一些啟發,來規劃符合自己的容器集群。

1. 采用物理機還是虛擬機;

采用物理機的好處

  1. 資源利用率高

采用虛擬機的好處

  1. 重啟速度快。
  2. 規格可以自由確定.并且方便修改。
  3. 方便重建

采用虛擬機,可以獲得虛擬機帶來的諸多好處,采用物理機唯一的優勢是資源利用率高。考慮到資源利用率并不是問題, 最終采用虛擬機。

為什么資源利用率不是問題?

http://openskill.cn/article/88 這里的測試數據可以看出, KVM 虛擬化

  1. 虛擬機相對物理機的 CPU 性能損失在 1% 以內
  2. 內存幾乎無損耗.
  3. virtio 網絡幾乎無損耗.
  4. 磁盤 損耗受影響因素較多,推薦使用 ext4, qcow2, writeback 緩存, virtio 驅動。磁盤 從其他渠道獲取的信息來看。 大致有 12% 的損耗。

實際生產需要落地的數據,放在共享存儲上 (cephfs, moosefs) , 其iops 由存儲系統提供,本地磁盤只用來存儲鏡像及容器運行的臨時數據。 對磁盤的性能要求,無需特別苛刻。

為什么考慮重啟速度?

在實際的運維過程中,我們發現部分場景下,會出現主機卡死,或者docker進程卡死, 這時,最快恢復業務的方法是重啟主機。 容器在主機重啟后,可以自動恢復,因此可以做到在1到2分鐘內快速恢復業務。這一點太重要了,物理機重啟由于需要做各種硬件檢測,重啟時間一般在5到10分鐘, 虛擬機重啟一般在1分鐘以內 , 物理機顯然無法滿足需求。

為什么重建能力很重要?

容器平臺經常需要更新操作系統,或者根據需要調整主機規格

  1. 運行一段時間后,發現內存配置偏少了, 需要添加內存。這時候申請一臺新的機器加入到集群中,將舊機器下線即可。
  2. 運行多年的 ubuntu 12.04 官方已經不再維護, 需要全量替換,工作量相當大。好的方法就是使用全新的服務器替換舊服務器。
  3. 當發生故障,主機無法恢復時, 直接申請新服務器加入集群即可。

2. 容器主機的規格是如何確定的?

我們起初上線了 8 核 32G規格的虛擬機。 運維過程中發現了如下的問題

  1. 部分應用啟動時就需要16G 內存。 32G 的虛擬機顯得捉襟見肘,一臺主機只能運行一個此類應用。 出故障時,集群中可能沒有滿足條件的主機可供遷移。
  2. 系統彈性較弱。 以80% 為警戒線,每臺主機的彈性內存空間為 6.4G . 很多應用在突發請求時,會占用遠超 6.4G的內存,導致主機內存耗盡。
  3. 內存是獨占性資源,即使程序沒有任何請求, 內存也會被獨占。其結果是一臺主機上的內存占用特別高。 CPU 資源占用比率則相對較少。

從以上角度來看, 容器主機的規格越大越好

后來,我們將主機規格調整為 32核 128G (為什么不用物理機請參考,為什么考慮重啟速度?,為什么資源利用率不是問題? )。 運維過程中發現了如下問題

  1. 主機故障時,影響范圍很大。當內存使用率為 60% 的時候, 我們運行了 72個容器, 涉及到 40個業務。 當主機故障時,會同時影響40個業務。
  2. 太多的進程數。 監控中發現有 too many process 的報警, 這在之前32G虛擬機時,不太會出現。
  3. 文件描述符數量,tcp 最大連接數量等等, 都有可能被用滿。

從以上角度來看, 容器主機的規格越小越好。 物理機的容量更加大(內存可以配置到 512G 甚至更高), 故障時,影響范圍更加巨大。

3. CPU與內存的配比是如何確定的?

8核32G 的配比為 1:4 ,從以往的運行監控數據來看。當內存使用到 90%左右時, CPU使用率 40%。

  1. 為了有效利用資源,以 1:8 配比。 比如 16核128G
  2. 為了穩定性和資源彈性,仍然以 1:4 配比 。 比如 16核64G

目前在資源利用率上,docker已經做得很好, 主要考慮穩定性和彈性。 采用 1:4 的配比。

4. 一個環境中配置幾臺主機?

假設一個環境中有2臺主機, 當其中一臺主機故障時,為了能將業務遷移到另外一臺主機, 這兩臺主機的利用率最高可以到 50% 。

為了給集群提供彈性, 當有主機故障時, 其他主機要有能力承載這臺主機上的業務。 我們可以算出相關關系, N為集群主機數量, M為能夠承受損壞的主機數量
(N - 1 )* (1 - usage% ) = M * usage%
N = (M*usage%) / (1- usage%) + 1

我們看一下,為了能夠承受一臺主機完全損壞, N= usage%/ ( 1- usage%) + 1 , usage% = N-1 /N
集群利用率和集群主機數量關系為

  • 2 臺主機 50%
  • 3 臺主機 66.6%
  • 4 臺主機 75%
  • 5 臺主機 80%
  • 6 臺主機 83%

我們挑選一個合理且方便計算的利用率 80% , 那么集群中最少需要5臺主機。

結合主機的規格,我們可以算出一個集群的最小容量。

  • 16核 64G, 集群容量最小為 80核320G
  • 32核128G,集群容量最小為 160核640G

按照一個業務占用 2G (QA環境經驗值)內存來算 , 集群可承載的業務數量為

  • 16核 64G, 承載 128個
  • 32核128G,承載 384個

5. 一臺主機是既是一個共享域, 又是一個沖突域。

  1. 共享域主機的資源越多越好。 這樣可以提供更好的資源彈性。 從而提高系統穩定性。
  2. 沖突域主機的資源越少越好,故障時,影響范圍可控。

過大或過小的規格,都會導致問題。 目前合理的規格為 16核64G, 或者 32核128G , 一個集群主機數量不少于5臺.

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,825評論 6 546
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,814評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,980評論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,064評論 1 319
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,779評論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,109評論 1 330
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,099評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,287評論 0 291
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,799評論 1 338
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,515評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,750評論 1 375
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,221評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,933評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,327評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,667評論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,492評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,703評論 2 380

推薦閱讀更多精彩內容

  • ## 標題: 容器宿主機到底怎么選,你只需要知道這5點. ##前言容器宿主機的選擇需要考慮如下幾個問題1. 用物理...
    DanielsCai閱讀 267評論 0 0
  • 寫這篇文章主要是為了今后畢業論文素材上的整理,同時對docker進行鞏固溫習。大綱: docker簡介docker...
    胡圖仙人閱讀 7,478評論 2 96
  • 導讀:容器對于物理機和虛擬機,單從監控上看就不是一個數量級的,但監控又是至關重要的,沒有監控如同閉眼開車。 本次分...
    優云數智閱讀 2,129評論 0 4
  • Stories.vc聯合創始人,項目投資孵化 & 孵化器戰略咨詢 前投資孵化(InnoSpace)、工程師(中興通...
    梅晨斐閱讀 382評論 0 1
  • 1. 引言 最近寫python用unittest模塊做單元測試,才發現自己過去寫C++居然都是手工測試。查了一番資...
    kophy閱讀 4,450評論 1 3