簡體   English   中英

Docker K8s 優化鏡像以減少加載時間

[英]Docker K8s optimize images to reduce load time

我們有很多 docker 鏡像需要上傳到 k8s,它可以工作,但是當我們啟動一個新節點時,這個過程可能需要很多時間。

我們嘗試更改圖像以使用“多階段”構建,但是這個過程仍然需要很多時間,而且我們沒有看到新節點的啟動時間發生重大變化。

現在我們嘗試以下操作:(但是我們不確定我們會看到多大的影響......)

  1. 嘗試(就像我們可以)使用相同的泊塢窗圖像from ,例如,所有的圖像使用完全相同的版本(3.11),而不是使用版本的其中一些利用的高山3.10有的3.10.1有的3.11等,這將阻止docker對已經兌現的層的重用機制......

  2. 減少層數,將RUN命令組合為一個而不是多個。(我們需要為許多 docker 文件執行此操作...),不確定 docker 機制將如何幫助實現我們的目標

所有這些改變使用相同版本和減少層的過程可能需要很多時間,我們是在浪費時間還是在那里,或者這是可以減少加載時間的東西? 還有其他想法可以幫助我們嗎?

我們有很多基於 Golang、NodeJS、java 等的 docker 鏡像。

所以你在正確的軌道上

  • 使用最小層
  • 重用層
  • 使用相同的標簽來緩存圖層
  • 使用高山或苗條的圖像
  • 使用多階段構建

我認為你不能進一步縮小尺寸。 試試docker squash但這不會有太大幫助。

那么如何更快地啟動節點呢?

  • 是否可以在其中烘焙包含所需圖像層的節點圖像?
  • 是否可以在您的節點旁邊設置一個 docker 注冊表? 以便在沒有網絡延遲的情況下更快地拉取圖像
  • 是否可以在運行時將庫保留在映像之外並掛載庫? (例如,如果您的代碼是 nodejs 代碼,請將 npm 保留在容器之外並在運行時掛載 npms 目錄)
  • k8s 可以運行除 docker 鏡像之外的其他鏡像。 cri-o 您可以構建 cri-o 圖像嗎? 它們很輕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM