容器化 | 一文搞定鏡像構(gòu)建方式選型

作者:安樹博 青云科技 PaaS 中間件開發(fā)工程師

從事 PaaS 中間件服務(wù)(Redis/Memcached 等)開發(fā)工作,熱衷對 NoSQL 數(shù)據(jù)庫領(lǐng)域內(nèi)技術(shù)的學(xué)習(xí)與研究

  • 官方鏡像版本無法滿足功能需求
  • 鏡像內(nèi)存在的漏洞無法規(guī)避
  • 傳統(tǒng)構(gòu)建方式鏡像體積越來越大

你在使用鏡像時是否遇到過以上問題呢侦副?

隨著云原生技術(shù)的普及拘领,業(yè)務(wù)負(fù)載上容器就越來越普遍。很多企業(yè)已經(jīng)碰到路呜,或正在解決以上這些容器鏡像的問題蝗肪。隨著云原生業(yè)務(wù)覆蓋范圍越來越大词顾、越來越貼近業(yè)務(wù)核心,對于鏡像安全和可維護(hù)等要求也越來越高垃它。

那么構(gòu)建鏡像的方式如何選型就需要根據(jù)應(yīng)用的具體情況來做判斷鲜屏。本文將對目前常見的幾種鏡像構(gòu)建方式進(jìn)行分析,幫您判斷国拇。

主流鏡像構(gòu)建方式

傳統(tǒng)鏡像

不特指某一鏡像洛史,本文中代指 Debian/Centos/Ubuntu 等系統(tǒng)下構(gòu)建的鏡像,對于 C/C++ 編寫的復(fù)雜程序酱吝,這是最常用的一種構(gòu)建方式也殖。

Alpine[1]

Alpine 操作系統(tǒng)是一個面向安全的輕型 Linux 發(fā)行版。通過 Alpine 構(gòu)建的鏡像容量非常小务热,通常 5 MB 左右忆嗜,包管理機(jī)制友好。具有下載速度快崎岂,安全性提高等優(yōu)點(diǎn)捆毫。

Distroless[2]

源自于 Google 的鏡像,比 Alpine 更精簡冲甘。除了基礎(chǔ)文件其它都不包含绩卤,甚至沒有 Shell。大多數(shù) Operator 都是基于此系列基礎(chǔ)鏡像編譯损合。

選型對比

以 Redis 基礎(chǔ)鏡像構(gòu)建為例省艳,將三種構(gòu)建方式在漏洞修復(fù)、Shell 支持嫁审、C 庫跋炕、鏡像體積等方面進(jìn)行對比。

Alpine Distroless 傳統(tǒng)鏡像 備注
漏洞修復(fù) 極快 一般 Debian 11 更新到最新 cve 漏洞還有 80 多個律适,Alpine 和 Distroless 最新版全部修復(fù)辐烂。
Shell sh bash Distroless 沒有 Shell 也就沒辦法進(jìn)入鏡像去管理和后期維護(hù)。
C 庫 musl 可選 glibc Alpine 的 C 庫是 musl捂贿,雖然理論上和 glibc 差異不大, 但 C/C++ 程序在此編譯可能會有不同纠修,要進(jìn)行充分測試。
鏡像體積 約 5MB 約 2MB 30MB - 500MB
包管理器 apk apt/yum Alpine 的 apk 包管理器包含軟件較少, 只有 1000 多個厂僧,且都是精簡版扣草,但覆蓋了常用軟件。
Distroless 沒有管理器,需要自己找依賴文件拷貝到鏡像里辰妙。
傳統(tǒng)鏡像 apt/yum 軟件豐富鹰祸,但比較臃腫。

選型決策樹

根據(jù)上面總結(jié)的三種方式的異同密浑,再根據(jù)用戶需求抽象成選型決策樹蛙婴,可根據(jù)判斷做出相應(yīng)的構(gòu)建方式。

1.png

選型總結(jié)

  1. 如果需要進(jìn)入鏡像管理維護(hù)(Shell 工具)尔破,不推薦 Distroless 構(gòu)建街图;
  2. 如果需要考慮跨平臺并減少非必要依賴庫,推薦 Alpine 或 Distroless 構(gòu)建懒构;
  3. 如果原應(yīng)用是基于 C/C++ 編寫且很復(fù)雜餐济,建議使用傳統(tǒng)鏡像;
  4. 如果基于 Go 編寫胆剧,傳統(tǒng)鏡像可以排除颤介。

下一期,我們將演示如何使用 Alpine 構(gòu)建一個 Redis 鏡像赞赖,盡情期待滚朵!

參考引用

  1. Alpine www.alpinelinux.org
  2. Distroless https://github.com/GoogleContainerTools/distroless
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市前域,隨后出現(xiàn)的幾起案子辕近,更是在濱河造成了極大的恐慌,老刑警劉巖匿垄,帶你破解...
    沈念sama閱讀 210,835評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件移宅,死亡現(xiàn)場離奇詭異,居然都是意外死亡椿疗,警方通過查閱死者的電腦和手機(jī)漏峰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,900評論 2 383
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來届榄,“玉大人浅乔,你說我怎么就攤上這事÷撂酰” “怎么了靖苇?”我有些...
    開封第一講書人閱讀 156,481評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長班缰。 經(jīng)常有香客問我贤壁,道長,這世上最難降的妖魔是什么埠忘? 我笑而不...
    開封第一講書人閱讀 56,303評論 1 282
  • 正文 為了忘掉前任脾拆,我火速辦了婚禮馒索,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘名船。我一直安慰自己双揪,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,375評論 5 384
  • 文/花漫 我一把揭開白布包帚。 她就那樣靜靜地躺著,像睡著了一般运吓。 火紅的嫁衣襯著肌膚如雪渴邦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,729評論 1 289
  • 那天拘哨,我揣著相機(jī)與錄音谋梭,去河邊找鬼。 笑死倦青,一個胖子當(dāng)著我的面吹牛瓮床,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播产镐,決...
    沈念sama閱讀 38,877評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼隘庄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了癣亚?” 一聲冷哼從身側(cè)響起丑掺,我...
    開封第一講書人閱讀 37,633評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎述雾,沒想到半個月后街州,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,088評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡玻孟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,443評論 2 326
  • 正文 我和宋清朗相戀三年唆缴,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片黍翎。...
    茶點(diǎn)故事閱讀 38,563評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡面徽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出匣掸,到底是詐尸還是另有隱情斗忌,我是刑警寧澤,帶...
    沈念sama閱讀 34,251評論 4 328
  • 正文 年R本政府宣布旺聚,位于F島的核電站织阳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏砰粹。R本人自食惡果不足惜唧躲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,827評論 3 312
  • 文/蒙蒙 一造挽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧弄痹,春花似錦饭入、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,712評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蚓让,卻和暖如春乾忱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背历极。 一陣腳步聲響...
    開封第一講書人閱讀 31,943評論 1 264
  • 我被黑心中介騙來泰國打工窄瘟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人趟卸。 一個月前我還...
    沈念sama閱讀 46,240評論 2 360
  • 正文 我出身青樓蹄葱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親锄列。 傳聞我的和親對象是個殘疾皇子图云,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,435評論 2 348

推薦閱讀更多精彩內(nèi)容