Oracle開源三個(gè)容器工具
Smith——安全微容器構(gòu)建者
傳統(tǒng)的容器構(gòu)建過程需要一系列的復(fù)雜操作步驟。Smith就是一個(gè)解決構(gòu)建一致性和安全性的問題的微容器構(gòu)建工具??煞奖愕耐ㄟ^rpms、yum庫,甚至已有容器來構(gòu)建微容器。更多構(gòu)建微容器的信息可參考資料:the Microcontainer Manifesto。
Crashcart——微容器調(diào)試工具
若生產(chǎn)環(huán)境應(yīng)用容器的精簡(jiǎn)配置,導(dǎo)致的診斷工具缺失,對(duì)運(yùn)維來說是一個(gè)巨大挑戰(zhàn)。雖然大部分診斷可在主節(jié)點(diǎn)上完成,但有時(shí)也需要在容器節(jié)點(diǎn)可訪問的文件系統(tǒng)上進(jìn)行診斷。Crashcart便是應(yīng)用在這個(gè)場(chǎng)景下,它為正在運(yùn)行的容器加載一組數(shù)據(jù)用來定位故障原因。了解crashcart是如何定位單邊加載數(shù)據(jù)故障的原理可參考資料:Hardcore Container Debugging。
Railcar——可選的容器Runtime
Go語言對(duì)于容器runtime不一定是***選擇。(注:runtime是通過命名空間和cgroups完成隔離的組件。Go語言對(duì)于容器鏡像和CLIS仍然是一個(gè)非常明智的選擇。)為便于理解,可閱讀博客: Linux Namespaces And Go Don’t Mix。 Runc(runc是oci runtime的默認(rèn)組件)的部分代碼是由C語言編寫,在Go運(yùn)行時(shí)態(tài)啟動(dòng)之前調(diào)用的。Go雖然是一個(gè)偉大的語言,但對(duì)于僅需輕量線程控制及大量系統(tǒng)調(diào)用的小型組件而言,還有更好的選擇。Rust語言則可以提供類似C語言的輕量控制,但是內(nèi)存安全且避免了類的BUG和漏洞。更多Railcar的開發(fā)信息可參考資料:Building a Container Runtime in Rust。