雲原生製品那些事(3):OCI 製品Artifact

2021-02-15 亨利筆記

題圖攝於美加邊境和平門

註:微信公眾號不按照時間排序,請關注「亨利筆記」,並加星標以置頂,以免錯過更新。

《Harbor權威指南》招募英文版翻譯人員

VMware招聘機器學習和雲原生開發工程師

本篇繼續和大家說說鏡像那些事,是連載之三,從《Harbor權威指南》一書節選的純技術乾貨,敬請關注、轉發和收藏。

第一篇:容器鏡像的結構

第二篇:OCI 鏡像規範

第三篇:OCI 製品

第四篇:Registry 的作用原理

《Harbor權威指南》目前當當網優惠中,點擊下圖直接購買。

OCI 分發規範

OCI 還有一個正在制定的分發規範(Distribution Specification),這個規範在 OCI  鏡像規範的基礎上定義了客戶端和鏡像倉庫之間鏡像操作的交互接口。OCI 的指導思想是先有工業界的實踐,再將實踐總結成技術規範,因此儘管分發規範還沒有正式發布,但以 Docker Distribution 為基礎的鏡像倉庫已經在很多實際環境下使用, Docker Distribution 所使用的 Docker Registry HTTP API V2 也成為事實上的標準。

OCI 分發規範是基於 Docker Registry HTTP API V2 的標準化容器鏡像分發過程制定的。OCI 分發規範定義了倉庫服務和倉庫客戶端交互的協議,主要包括:面向命名空間(Namespace)的URI格式、能夠拉取和推送 v2 格式清單的倉庫服務、支持可續傳的推送過程及 v2 客戶端的要求等。(本文為公眾號:亨利筆記 原創文章)

OCI Artifact (OCI製品)

從第2篇文章 OCI 鏡像規範的圖1可以看到,OCI 鏡像規範的結構特點是由一個(可選的)鏡像索引來指向多個清單,每個清單都指向一個配置和若干個層文件(Layer)。如果鏡像沒有包括鏡像索引,則可以僅包含一個清單,且清單指向一個配置和若干個層文件。

無論是否有鏡像索引,在鏡像結構定義中都沒有涉及層文件所包含的內容,也就是說,不同用途的數據如 Helm Chart、CNAB 等製品,可依照 OCI 鏡像規範定義的結構(清單、索引等)把內容打包到層文件裡面,從而成為符合OCI規範的「鏡像」,既可以推送到支持 OCI 分發規範的 Registry 裡,也可以像拉取鏡像那樣從 Registry 中下載。(在搜狐、CSDN等網站轉載亨利筆記的文章均為未經授權的剽竊)

為了和 OCI 鏡像做區分,這種遵循 OCI 清單和索引的定義,能夠通過 OCI 分發規範推送和拉取的內容,可以統稱為 OCI Artifact(OCI製品),簡稱 Artifact(製品)。在 OCI 分發規範中,還可以給Artifact的清單或者索引標註若干個 Tag 來附加版本等信息,以方便後續的訪問和使用,如下圖所示。

如果 Artifact 沒有包含索引,則 Tag 可以被標註在清單上;如果 Artifact 使用了索引,則Tag可以被標註在索引上,而清單上的Tag則是可選的。一個 Artifact 如果沒有被標註 Tag,則只能通過清單或索引的摘要來訪問。從組成結構來看,OCI 鏡像只是 OCI Artifact 的一個「特例」。

把各類數據封裝成 OCI Artifact 的好處之一,是可以藉助已有的支持 OCI 分發規範的鏡像倉庫服務(如 Harbor 2.0 等)來實現不同類型數據的存儲、權限、複製和分發等能力,而無須針對每種特定類型的數據設立或開發不同的倉庫服務,使開發者能專注於新類型的 Artifact 的創新。

開發者如果希望自定義一種新的Artifact類型,就可以按照 OCI 的製品作者指導文檔(ArtifactAuthor Guidance)來定義配置、清單、索引等結構,可分4個步驟來完成。

(1)定義 OCI Artifact 的類型。Artifact的類型主要是為了 Artifact 的工具(如Docker 客戶端)能夠獲知Artifact的類型,從而確定能否處理該 Artifact。這有點像文件的擴展名(如.pdf、.jpg等),可以讓作業系統識別出文件的類型,從而啟動相應的應用程式來處理該文件。Artifact 的類型由清單中的 config.mediaType 屬性定義,因此 Artifact 的工具通常從清單開始分析Artifact的類型,以決定後續的處理流程。(在搜狐、CSDN等網站轉載亨利筆記的文章均為未經授權的剽竊)

(2)確保 Artifact 類型的唯一性。既然 Artifact 的類型很重要,開發者就需要確保所創建的 Artifact 類型是唯一的,和其他 Artifact 類型都不能重名。OCI 的指導文檔給出了類型必須符合的格式:(本文為公眾號:亨利筆記 原創文章)

[registration-tree].[org|company|entity].[objectType].[optional-subType].config.[version]+[optional-configFormat]

格式中各個欄位的含義如表2所示。

表2

字 段 名

說    明

registration-tree

IANA(Internet Assigned Numbers Authority,網際網路號碼分配機構)的註冊類型

org|company|entity

開源組織、公司名稱或其他實體

objectType

類型的簡稱

optional-subType

可選欄位,對objectType的補充說明

config

必須是字符串「config」

version

類型的版本

optional-configFormat

可選的配置格式說明(json、yaml等)

一些常見的 OCI Artifact 配置類型如表3所示。

表3

Artifact

類型名稱

OCI鏡像

application/vnd.oci.image.config.v1+json

Helm Chart

application/vnd.cncf.helm.chart.config.v1+json

CNAB

application/vnd.cnab.config.v1+json

Singularity

application/vnd.sylabs.sif.config.v1+json

(3)Artifact 的內容由一組層文件和一個可選的配置文件組成。每個層文件都可以是單個文件、一組文件或者 tar 格式的文件,能夠以 Blob 的形式存放在 registry 的存儲中。

開發者可以根據 Artifact 的需要確定每個層文件的內容格式,如.json、.xml、.tar等,然後在清單的 layer.mediaType 屬性中說明內容類型。內容類型可以沿用 IANA 通用格式,如 application/json 和 application/xml 等。如果需要自定義類型,則可以採用如下格式:(本文為公眾號:亨利筆記 原創文章)

[registration-tree].[org|company|entity].[layerType].[optional-layerSubType].layer.[version].[fileFormat]+[optional-compressionFormat]

格式中各個欄位的含義如表4所示。

表4

字 段 名

說    明

registration-tree

IANA(Internet Assigned Numbers Authority,網際網路號碼分配機構)的註冊類型

org|company|entity

開源組織、公司名稱或其他實體

layerType

類型的簡稱

optional-layerSubType

可選欄位,對layerType的補充說明

字 段 名

說    明

layer

必須是字符串「layer」

version

格式的版本

fileFormat

文件格式

optional-compressionFormat

可選的壓縮格式說明(gzip、zstd等)

一些常見的 OCI Artifact 層文件類型如表5所示。

表5

層 文 件

類型名稱

簡單的文本

application/text

非壓縮的OCI鏡像層

application/vnd.oci.image.layer.v1.tar

以gzip壓縮的OCI鏡像層

application/vnd.oci.image.layer.v1.tar+gzip

非壓縮的Helm Chart層

application/vnd.cncf.helm.chart.layer.v1.tar

以gzip壓縮的Helm Chart層

application/vnd.cncf.helm.chart.layer.v1.tar+gzip

以gzip壓縮的Docker鏡像層

application/vnd.docker.image.rootfs.diff.tar+gzip

(4)開發者在 IANA 中註冊 Artifact 的config.mediaType 和 layer.mediaType的類型,確保類型的唯一性和擁有者,同時可以讓其他用戶使用這些類型。(在搜狐、CSDN等網站轉載亨利筆記的文章均為未經授權的剽竊)

經過上述步驟,開發者自定義的 Artifact 類型就完成了,配上適當的客戶端軟體對數據打包、推送和拉取,即可與符合 OCI 分發規範的倉庫服務交互。

因為 OCI Artifact 帶來了管理和運維上的便利,所以開發者已經創建了多種 OCI Artifact,常見的 OCI Artifact 包括 Helm Chart、CNAB、Singularity 等。為適應雲原生用戶者的需求,Harbor 2.0 的架構做了比較大的調整和改進,以便用戶在 Harbor中存取和管理符合 OCI 規範的 Artifact。Harbor 中管理容器鏡像的各種功能,在適用的情況下,都可以擴展到 OCI Artifact 上,如訪問權限控制、推送和拉取、界面查詢、遠程複製等,這大大方便了用戶對雲原生 Artifact 的管理和使用。本公眾號文章也介紹過如何通過 Harbor 2.1 存儲和管理機器學習模型的方法。

(未完待續,歡迎點「再看」 或 轉發、分享、收藏)

(未經授權,請勿轉載本公眾號文章)

《Harbor權威指南》目前當當網優惠中,點擊上圖直接購買。

《Harbor權威指南》招募英文版翻譯人員

要想了解雲原生、區塊鏈和人工智慧等技術原理,請立即長按以下二維碼,關注本公眾號亨利筆記 ( henglibiji ),以免錯過更新。

相關焦點

  • 矽膠製品背膠技巧橡膠密封製品重要性
    在矽膠製品生產過程中,有的產品需要做到貼背膠或者是沾膠等工序,那麼這些工藝就是在成型工藝以外附加的,矽膠製品互相粘接會脫落下來,那麼我們應該要怎麼去做才能使矽膠製品很好的背膠呢。如我們平時所看到的各種矽橡膠腳墊,密封件等矽膠製品由於矽橡膠本身具有離模特性,很難與雙面膠之類的壓敏膠材料粘接,矽膠製品這需要使用到一種專用的處理劑來處理矽橡膠雜件的表面,使其可以與雙面膠緊密貼合。1.白澱油或甲苯將矽橡膠雜件需要貼雙面膠的區域清理乾淨。
  • 我市開展米麵製品、澱粉及其製品專項整治
    「粉絲、粉條、河粉、米粉等日常糧食製品的質量安全,關係到百姓生活及身體健康;尤其是粉絲、粉條、河粉、米粉和麵製品,易發生微生物汙染等問題,不可小覷。」有市民如此表示。日前,由市市場監管局組織開展的全市米麵製品、澱粉及其製品專項整治行動全面鋪開。
  • 矽膠製品產品和橡膠製品產品有什麼區別
    它的導熱性比一般橡膠製品稍高,一旦固化,就很難分離物體的粘附力。橡膠製品可分為合成橡膠和天然橡膠,天然橡膠是異戊二烯聚合物的結構,它是通過膠乳所得的橡膠工廠進行加工生產而製成的,而合成橡膠是由單體製成的聚合或縮聚,合成橡膠在外力作用下變形,還原原型的能力強,因為他具有良好的物理性能,市場上的橡膠製品有汽車輪胎,橡膠軟管,密封圈,膠帶,絕緣材料等產品,這些產品均為合成橡膠產品。
  • 「性藥製品」市場背後,哪些人在狂歡?
    你只關心心腦血管疾病的藥品是不是真的,卻從來不去想,在你生活的一些角落,那些更損傷人身體的東西在蔓延這就是消費勢頭不減的「性藥製品」!我想,當下市場消費普遍低迷,為何「性藥製品」依然消費勢頭旺盛?究竟是什麼樣的消費群體在維繫著這個「性藥製品」市場的運轉?針對這一現象,我做了一次調查,還真發現不少問題。
  • 普通塑料製品卻標「100%全降解」 海南鑫匯諾包裝製品有限公司擬被...
    此次會議通報了海南鑫匯諾包裝製品有限公司、海南創佳達生物科技有限公司、澄邁縣純塑塑料製品有限公司、海口龍華盛華貿易經銷部生產銷售偽造「中國環保標誌」的一次性塑料製品的違法情況。記者了解到,目前,除海南鑫匯諾包裝有限公司擬作出100萬元處罰決定外,另外3家企業被立案調查處理。
  • 矽膠製品定製廠家有哪些?矽膠製品定製廠家排名
    現如今,矽膠製品在日常生活中的使用越來越廣泛了。矽膠製品具有安全、良好的絕緣性、耐壓、耐高溫、化學性質穩定的特點被人們廣泛應用於生活之中。近年來人們對矽膠製品的需求越來越多了,從而流行起了矽膠製品定製,矽膠製品定製就能很好的滿足不同需求。那麼矽膠製品定製廠家有哪些呢?
  • 矽膠製品定製常見問題大總結_2020矽膠製品定製廠家深度解析
    矽膠製品定製常見問題大總結。隨著時代快速的發展,人們的觀念也需要不斷跟上時代發展的步伐。現在矽膠製品是被越來越多的人所認可了。近年來,矽膠製品市場逐漸被打開。許多投資者看中了矽膠製品的商機,紛紛尋找矽膠製品定製廠家進行合作。那麼,在矽膠製品定製時常見問題有哪些呢?
  • 矽橡膠製品廠告訴你加工毛邊二三事
    矽膠製品附帶的披鋒和毛邊,這對矽膠製品的外觀和實用性產生了嚴重影響,所以要對矽膠製品進行拆毛邊處理。有時會遇到產品毛邊一撕就斷,本來可以一下撕掉的,現在要撕好幾下,這樣嚴重影響了生產效率。相信不少人也因為撕毛邊而頭痛,下面博皓矽膠製品廠家給大家說說矽橡膠製品加工過程中遇到的麻煩事及原因。
  • 彩色乳膠製品如何配色
    以淺色廢天然膠製品、廢乳膠製品為原料加工而成的白乳膠再生膠顏色淺、色度白,替代天然膠生產彩色橡膠製品易於配色,可顯著降低原料成本。在實際生產中彩色乳膠製品需要配合不同的著色劑來展現不同的色彩,橡膠製品廠家需要謹慎選擇著色劑或著色劑組合,保證彩色橡膠鞋底、彩色膠板、彩色膠管等彩色乳膠製品滿足色彩需求,避免變色遷移。
  • 混凝土製品泛鹼治理研究
    由於製品中鹼性物質釋放緩慢,受天氣影響容易在制品表面及內部循環,造成泛鹼現象反覆出現,目前還沒有徹底的解決方法。國內外關於混凝土製品的泛鹼問題已有較廣泛研究,但鮮有對鋼渣混凝土製品表面泛鹼問題的研究。1.1 泛鹼造成的危害混凝土製品表面泛鹼主要帶來以下危害:在外觀質量方面,製品泛鹼會破壞其表面色澤、圖案,影響製品的美觀及鋪裝效果,對工程評定驗收帶來不利影響。在力學性能方面,隨著製品內部孔隙中可溶性鹽鹼類物質在制品表面持續聚集,內部原有的穩定平衡狀態被破壞,膠凝性化學組分隨之破壞分解,製品強度相應損失。
  • 2020年血液製品市場行情分析與趨勢預測 - 2020年版中國血液製品...
    4.2.2 中國血液製品行業發展現狀調研C    4.2.3 中國血液製品行業發展特徵i    4.2.4 中國血液製品與國外的差距r  4.3 2015-2019年中國血液製品產品產量>    6.2.2 血液製品原料使用相關規定中    6.2.3 血漿採集管理國    6.2.4 單採血漿站管理產  6.3 我國血液製品原材料供給分析業
  • 矽膠製品材料種類該如何辨別?2020矽膠製品廠家全網解析
    如何鑑定矽膠製品材料種類?矽膠製品有著穩定的性能、安全無毒,所以一直備受大家的青睞。同時要想生產出好的矽膠製品,那就一定得了解矽膠製品材料類型和矽膠性能。要對各個矽膠的收縮率、變不變形、耐高溫程度、粘度、膠質等特點都要了解清楚,那矽膠製品材料種類怎麼辨別你?
  • 我國血液製品的現狀
    今天小喬帶大家了解下血液製品的作用以及目前的供應情況。血液製品的作用新鮮的血液保質期只有 21 天,並且不易運輸,而血液製品保質期則在 2 年以上,很好地彌補了新鮮血液保質期不長、不易運輸的缺陷。血液製品的原料就是血漿,在我們的血液當中,僅有 50% 的血漿,其餘則是紅細胞、白細胞和血小板。
  • 紙漿模塑製品的生產工藝
    紙漿模塑製品,在早期通常使用廢紙作為基礎材料,利用特殊設備和模具通過獨特的工藝進行三維建模,生產各種形狀的包裝產品和物件。 2、成型工藝 紙漿模塑製品的成型工藝主要是通過真空模塑、灌漿模塑等一系列方法,使原紙漿纖維成形為由模具設計的形狀,其中真空模塑是最常用的也是最有效的一種。
  • 科普生活 | 玻璃製品和塑料製品相比,哪個危害更大?
    因此就有人提出用玻璃製品來代替塑料製品。然而在最近的研究中卻表明,玻璃瓶的危害可能是塑料瓶的4倍左右,會導致更多環境和健康問題出現!其次對地球本身的內在危害,塑料製品具有抗降解性,這也使得它們在自然中幾乎不可能完全分解,所以會造成長期的、深層次的生態環境問題。
  • 內部控制,矽橡膠製品廠家成本如何節制
    有人問矽橡膠製品廠好做嗎?是否有持續發展的可能性!對於這個話題就關聯矽膠製品行業無法預估的成本以及流失,成本 控制 道理大家都懂,不過計劃與實際不同,好比2017年,突如其來的國家政策與環保風波讓不少行業站在了懸崖的邊緣,當然矽橡 膠製品 行業也不例外,那麼在混煉膠行業當中有那些你無法預見的成本流失呢?
  • 如何辨別矽膠製品的真假?
    從手感方面來說,矽膠產品的韌性、彈性都是很好的,不容易因外力而永久變形,而且手感會感到比較光滑,而假冒的矽膠產品容易變形,而且摸起來也比較的粗糙,因為假冒的矽膠製品表面沒有一層油脂狀物質。矽膠杯套真矽膠製品從特性方面來說,矽膠禮品是無毒無味無色的產品,質地好,對人體沒有危害,而一般假冒的矽膠產品很難達到這些效果
  • 耐熱橡膠製品設計要點
    耐熱橡膠製品的品種和應用則與日俱增。關於耐熱橡膠的溫度範圍,迄今缺乏統一的認識。比較為業界認同的是「在80°C以上能長期使用後仍能保持原有性能和使用價值的橡膠」。過去幾十年來,耐熱橡膠製品的範圍在不斷擴大,原因在於:第一,若干傳統製品過去並不要求耐熱,而隨著使用條件的變化,也相繼提出耐熱要求。典型例子是輪胎。由於車速的加快,滾動生熱大幅上升,提高耐熱性是必須跨越的門檻。
  • 海綿橡膠製品的橡膠原料選擇
    海綿橡膠製品密度小、彈性好等,使用過程中具有良好的柔軟性和緩衝性,隔熱、隔音效果顯著,使用範圍廣。在實際生產中,不同使用場合的海綿橡膠製品所用橡膠品種不同,製造成本也不相同。海綿橡膠生產企業需要根據實際需求選擇合適的橡膠品種,綜合考慮性能、成本等各個因素。