女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

iSulad Sandbox API簡化容器調(diào)用鏈

openEuler ? 來源:openEuler ? 2023-11-20 17:08 ? 次閱讀

背景

沙箱隔離技術(shù)是一種將進(jìn)程隔離到獨(dú)立環(huán)境中運(yùn)行的技術(shù),可以有效地隔離進(jìn)程間的相互影響,提高系統(tǒng)的安全性。隨著容器技術(shù)的興起,沙箱隔離技術(shù)也在云原生領(lǐng)域中得到了廣泛的應(yīng)用。例如容器編排組件 Kubernetes 的最小編排調(diào)度單元 Pod Sandbox 實(shí)際上是一個(gè)沙箱,為其中的容器提供了資源共享和安全隔離的運(yùn)行環(huán)境。

然而,由于容器技術(shù)的歷史原因,沙箱的概念在容器引擎和容器運(yùn)行時(shí)中沒有得到足夠的支持。OCI 標(biāo)準(zhǔn)[1]未定義沙箱管理,導(dǎo)致容器引擎和容器運(yùn)行時(shí)只能采用容器管理的方式管理沙箱,引發(fā)性能和穩(wěn)定性問題,具體可參見第一篇 Kuasar 系列文章[2]。

事實(shí)上,容器領(lǐng)域一直在深入研究和探索引入沙箱管理接口的問題。舉例來說,Containerd 社區(qū)于 2022 年 4 月將 Sandbox API 相關(guān)功能整合到主線[3],這一舉措對 Containerd 內(nèi)部沙箱管理邏輯進(jìn)行了優(yōu)化。然而,令人遺憾的是,它依然使用 OCI 標(biāo)準(zhǔn)接口來調(diào)用容器運(yùn)行時(shí)以管理沙箱。

2023 年 4 月 21 日,華為在 Kubecon+CloudNativeCon Europe 2023 云原生峰會上發(fā)布了多沙箱運(yùn)行時(shí) Kuasar[4],將沙箱管理邏輯引入了容器運(yùn)行時(shí)。至此,Kuasar 成為第一個(gè)支持 Sandbox API 的容器運(yùn)行時(shí)。容器引擎使用 Sandbox API 直接管理沙箱成為了可能。

iSulad[5]也率先通過 Sandbox API 支持 Kuasar,提供高效和穩(wěn)定的沙箱管理能力。openEuler 23.09 完成對 iSulad+Kuasar+StratoVirt 的集成,為用戶提供了一個(gè)極速輕量的安全容器解決方案,具體可參見第二篇 Kuasar 系列文章[6]。

Sandbox API 簡介

service Controller {
    rpc Create(ControllerCreateRequest) returns (ControllerCreateResponse);
    rpc Start(ControllerStartRequest) returns (ControllerStartResponse);
    rpc Platform(ControllerPlatformRequest) returns (ControllerPlatformResponse);
    rpc Prepare(PrepareRequest) returns (PrepareResponse);
    rpc Purge(PurgeRequest) returns (PurgeResponse);
    rpc UpdateResources(UpdateResourcesRequest) returns (UpdateResourcesResponse);
    rpc Stop(ControllerStopRequest) returns (ControllerStopResponse);
    rpc Wait(ControllerWaitRequest) returns (ControllerWaitResponse);
    rpc Status(ControllerStatusRequest) returns (ControllerStatusResponse);
    rpc Shutdown(ControllerShutdownRequest) returns (ControllerShutdownResponse);
}

Sandbox API 的引入解決了容器引擎和容器運(yùn)行時(shí)之間由來已久的痛點(diǎn)問題[2]:

引入 Sandbox 語義,增強(qiáng)了云原生架構(gòu)上的連貫性

削減 shim 進(jìn)程的冗余,減小資源開銷,加快啟動(dòng)速度

縮短調(diào)用鏈,可靠性倍增

消除 Pause 容器冗余

統(tǒng)一沙箱接口使容器運(yùn)行時(shí)支持多沙箱

生命周期與管理

Sandbox API[7] 定義了容器引擎如何與容器運(yùn)行時(shí)交互,其中 Controller Service 定義了沙箱的生命周期管理接口,包括創(chuàng)建 (Create) 、啟動(dòng) (Start) 、停止 (Stop) 、等待退出 (Wait) 、狀態(tài)查詢 (Status) 、銷毀 (Shutdown) 、平臺信息查詢 (Platform) 等。

通過 Sandbox API,容器引擎能夠直接對沙箱進(jìn)行管理,無需通過 OCI 標(biāo)準(zhǔn)接口間接管理沙箱,提高了容器引擎的性能和穩(wěn)定性。

資源管理

Sandbox API 還定義了沙箱的資源管理接口,包括資源準(zhǔn)備 (Prepare) 、資源清理 (Purge) 、資源更新 (UpdateResources) 等。容器引擎可以通過這些接口管理容器資源,例如在創(chuàng)建容器前準(zhǔn)備資源,運(yùn)行過程中更新資源,容器退出后清理資源。

iSulad 新架構(gòu)

53395ff8-7718-11ee-939d-92fbcf53809c.png

圖1. iSulad 架構(gòu)對比圖

在 Kuasar 發(fā)布以后,iSulad 第一時(shí)間采用了新的架構(gòu)以支持 Sandbox API ,使得它能夠通過 Kuasar 來直接管理沙箱。

為保持已有版本的兼容性與穩(wěn)定性,iSulad 只對 CRI V1 版本進(jìn)行了重構(gòu)升級,支持用戶使用 Sandbox API 管理沙箱。CRI V1alpha 版本繼續(xù)沿用 OCI 標(biāo)準(zhǔn)來處理沙箱管理請求。

沙箱與容器的解耦

在新的架構(gòu)中,iSulad 引入了 Sandbox 的語義,新增核心模塊 Sandbox ,使其成為容器引擎的一等公民,實(shí)現(xiàn)了容器管理與沙箱管理的解耦。從云原生整體架構(gòu)的角度看,容器編排組件、容器引擎和容器運(yùn)行時(shí)之間的沙箱管理變得更加流暢和高效,形成了一個(gè)完整的沙箱管理鏈路。

以 iSulad+Kuasar+StratoVirt 極速輕量的安全容器解決方案為例,iSulad 在北向接收來自 Kubernetes 的 CRI 請求,并創(chuàng)建 Sandbox 對象來處理 PodSandbox 相關(guān)調(diào)用,同時(shí)使用 Executor 模塊來處理 CRI 的 Container 請求。在南向,使用 Controller 模塊通過 Sandbox API 調(diào)用 Kuasar 的 Sandboxer 進(jìn)程來管理沙箱,同時(shí)使用 Runtime 中的 Shim V2 模塊來調(diào)用 Kuasar 的 Task 進(jìn)程,實(shí)現(xiàn)了對 StratoVirt 虛擬機(jī)中容器的管理。

沙箱控制器

53e45458-7718-11ee-939d-92fbcf53809c.png

圖2. 沙箱控制器類圖

Sandbox API 的實(shí)現(xiàn)使 iSulad 能夠直接通過 Controller 來管理沙箱,因此 Kuasar 容器運(yùn)行時(shí)也無需創(chuàng)建 Pause 容器以兼容 OCI 標(biāo)準(zhǔn),避免了 Pause 容器的冗余。

在新架構(gòu)中,Controller 模塊的設(shè)計(jì)充分考慮了對原有沙箱管理功能的兼容性,即支持用戶通過Sandbox 和 Controller 模塊創(chuàng)建普通容器(Pause 容器)作為沙箱。

如上圖所示,Controller 模塊對 Sandbox 提供了統(tǒng)一 Controller 接口,以及兩種不同的實(shí)現(xiàn):Sandboxer Controller 和 Shim Controller 。

Sandboxer Controller 是對 Sandbox API 的封裝,將用戶對沙箱的管理請求通過 gRPC 接口轉(zhuǎn)發(fā)給 Kuasar 的 Sandboxer 進(jìn)程,從而使 Sandboxer 執(zhí)行底層的沙箱管理邏輯。

Shim Controller 兼容原有的基于容器管理的接口,將對 Sandbox 的管理請求轉(zhuǎn)發(fā)給 Executor 模塊,以便創(chuàng)建和管理基于 Pause 容器的沙箱。Shim Controller 的實(shí)現(xiàn)使用戶能夠在新的架構(gòu)下繼續(xù)使用 OCI 標(biāo)準(zhǔn)接口來管理沙箱,以兼容原有已部署的業(yè)務(wù),確保功能的連續(xù)性。

Sandbox 和 Controller 的詳細(xì)設(shè)計(jì)可以參見 iSulad 社區(qū)的設(shè)計(jì)文檔[8]。

簡化容器調(diào)用鏈

53f4d4a4-7718-11ee-939d-92fbcf53809c.png

圖3. 容器啟動(dòng)流程圖

在支持了 Sandbox API 以后,iSulad 的容器管理流程也發(fā)生了一些變化。上圖以 iSulad+Kuasar+StratoVirt 解決方案為例,展示了 iSulad 從啟動(dòng)沙箱到啟動(dòng)容器的簡化流程。

在圖中,Kuasar Task 充當(dāng)虛擬機(jī)中的 init 進(jìn)程,同時(shí)也是虛擬機(jī)沙箱內(nèi)容器的管理進(jìn)程。它向 iSulad 提供容器管理接口 Task API ,當(dāng)前解決方案中的 Task API 接口的實(shí)現(xiàn)與 Shim V2 類似但又不完全相同。根據(jù) Shim V2 規(guī)范,容器引擎會調(diào)用一個(gè) Shim V2 的二進(jìn)制,創(chuàng)建 Shim 進(jìn)程并返回 Shim 地址,用于管理沙箱、容器和資源。然而,通過調(diào)用 Sandbox API,iSulad 不再需要通過 Shim 進(jìn)程來管理沙箱。相反,Sandbox API 的 Start 接口會在啟動(dòng)沙箱后返回一個(gè) Task 地址,使 iSulad 能夠與虛擬機(jī)中的 Kuasar Task 進(jìn)程直接通信,以管理容器的生命周期。這種設(shè)計(jì)消除 Shim 進(jìn)程以減少了管理面的內(nèi)存開銷并縮短調(diào)用鏈,從而提高了整個(gè)解決方案的性能和穩(wěn)定性。

總結(jié)

Sandbox API 是 iSulad、Kuasar 和 StratoVirt 這三個(gè)組件構(gòu)成的極速輕量的安全容器解決方案的核心紐帶。通過 Sandbox API,容器引擎能夠直接對沙箱進(jìn)行管理,無需通過 OCI 標(biāo)準(zhǔn)接口間接管理沙箱,從而顯著提高了容器引擎的性能和穩(wěn)定性。Sandbox API 的引入,也為容器引擎和容器運(yùn)行時(shí)之間的沙箱管理提供了一個(gè)標(biāo)準(zhǔn)化的接口,為容器領(lǐng)域的發(fā)展提供了新的可能性。當(dāng)前 Sandbox API 的實(shí)現(xiàn)已經(jīng)合入了 iSulad 社區(qū)的主線,用戶可以通過 openEuler 23.09 體驗(yàn)這一全棧自研的極速輕量安全容器解決方案,具體可參見 Kuasar 系列文章[6]。

openEuler 社區(qū)一直秉承開放、協(xié)作、共贏的理念,歡迎更多的開發(fā)者參與到 iSulad、Kuasar 和 StratoVirt 的建設(shè)中來,共同推動(dòng)容器領(lǐng)域的繁榮發(fā)展。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1559

    瀏覽量

    63493
  • 隔離技術(shù)
    +關(guān)注

    關(guān)注

    1

    文章

    59

    瀏覽量

    13363
  • 容器
    +關(guān)注

    關(guān)注

    0

    文章

    507

    瀏覽量

    22359
  • 云原生
    +關(guān)注

    關(guān)注

    0

    文章

    257

    瀏覽量

    8196

原文標(biāo)題:iSulad Sandbox API:簡化調(diào)用鏈,可靠性倍增

文章出處:【微信號:openEulercommunity,微信公眾號:openEuler】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    iSulad+Kuasar+StratoVirt安全容器解決方案的使用介紹

    進(jìn)程 1:1 的設(shè)計(jì),在容器并發(fā)時(shí)能夠提升啟動(dòng)速度 2 倍以上、并節(jié)省容器管理進(jìn)程 99% 的內(nèi)存增量。Kuasar 基于 Sandbox API [2] 接口開發(fā),區(qū)別于當(dāng)前的 S
    的頭像 發(fā)表于 11-20 17:00 ?2542次閱讀
    <b class='flag-5'>iSulad</b>+Kuasar+StratoVirt安全<b class='flag-5'>容器</b>解決方案的使用介紹

    HarmonyOS方舟開發(fā)框架容器API的介紹與使用

    在引擎中會初始化Constructor以及Prototype并返回,最后應(yīng)用側(cè)可以獲得該容器類并使用。 圖1 容器類初始化流程 (二)容器類接口調(diào)用 在方舟開發(fā)框架中,
    發(fā)表于 03-07 11:40

    API如何簡化敏捷區(qū)塊 API是區(qū)塊制勝保障

    區(qū)塊技術(shù)在未來的潛在用途非常的大,但是很多人不知道API才是區(qū)塊技術(shù)的強(qiáng)大鏈接保障。同時(shí)區(qū)塊卻是一項(xiàng)令人頭疼的議題,被很多人無限的夸大,其實(shí)A
    發(fā)表于 02-10 11:08 ?1918次閱讀

    python代碼示例之基于Python的日歷api調(diào)用代碼實(shí)例

    本文檔的主要內(nèi)容詳細(xì)介紹的是python代碼示例之基于Python的日歷api調(diào)用代碼實(shí)例。
    發(fā)表于 09-06 14:25 ?42次下載
    python代碼示例之基于Python的日歷<b class='flag-5'>api</b><b class='flag-5'>調(diào)用</b>代碼實(shí)例

    API-Shop-OCR-營業(yè)執(zhí)照識別API接口Python調(diào)用示例代碼說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是API-Shop-OCR-營業(yè)執(zhí)照識別API接口Python調(diào)用示例代碼說明
    發(fā)表于 01-10 11:48 ?6次下載
    <b class='flag-5'>API</b>-Shop-OCR-營業(yè)執(zhí)照識別<b class='flag-5'>API</b>接口Python<b class='flag-5'>調(diào)用</b>示例代碼說明

    調(diào)用監(jiān)控原理淺析

    調(diào)用監(jiān)控 」是在微服務(wù)興起后才有的一種新流行的監(jiān)控模式。
    的頭像 發(fā)表于 08-09 17:42 ?7181次閱讀

    使用Python實(shí)現(xiàn)游戲APP充值API調(diào)用的代碼實(shí)例

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用Python實(shí)現(xiàn)游戲APP充值API調(diào)用的代碼實(shí)例。
    發(fā)表于 01-15 11:34 ?38次下載

    如何使用Python實(shí)現(xiàn)購物比價(jià)API調(diào)用的代碼實(shí)例

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何使用Python實(shí)現(xiàn)購物比價(jià)API調(diào)用的代碼實(shí)例免費(fèi)下載。
    發(fā)表于 01-17 17:11 ?25次下載

    FreeRTOS中的API函數(shù)功能分析及調(diào)用方法

    FreeRTOS中的API函數(shù)功能分析及調(diào)用方法說明。
    發(fā)表于 03-26 11:50 ?33次下載

    iSulad云原生輕量級容器解決方案

    ./oschina_soft/gitee-iSulad.zip
    發(fā)表于 05-10 10:30 ?1次下載
    <b class='flag-5'>iSulad</b>云原生輕量級<b class='flag-5'>容器</b>解決方案

    openEuler開源項(xiàng)目iSulad加入 CNCF Landscape

    /card-mode?category=container-runtimegrouping=categoryselected=i-sulad iSulad是開放原子開源基金會旗下容器引擎項(xiàng)目,由華為龐
    的頭像 發(fā)表于 01-07 10:43 ?1757次閱讀

    什么是Kubernetes容器運(yùn)行時(shí)CRI

    起初,Docker是事實(shí)上的容器技術(shù)標(biāo)準(zhǔn),Kubernetes v1.5之前的代碼中直接調(diào)用Docker API,實(shí)現(xiàn)容器運(yùn)行時(shí)的相關(guān)操作。
    的頭像 發(fā)表于 02-20 16:22 ?1810次閱讀
    什么是Kubernetes<b class='flag-5'>容器</b>運(yùn)行時(shí)CRI

    Sandbox混合計(jì)量圖像處理工具可簡化新工藝配方的實(shí)驗(yàn)

    Sandbox上個(gè)月開始銷售的混合計(jì)量圖像處理工具有望提高蝕刻和沉積步驟的計(jì)量精度,簡化新工藝配方的實(shí)驗(yàn),并最終降低工藝技術(shù)開發(fā)成本。該工具Weave與SandBox Studio AI建模平臺配合
    的頭像 發(fā)表于 10-13 15:26 ?1114次閱讀

    使用 Splashtop REST API 簡化遠(yuǎn)程管理

    Splashtop 的 REST API 可無縫提高生產(chǎn)力和簡化集成,使用戶能夠自動(dòng)執(zhí)行任務(wù)、定制工作流程,輕松與現(xiàn)有系統(tǒng)集成。
    的頭像 發(fā)表于 06-25 17:28 ?484次閱讀
    使用 Splashtop REST <b class='flag-5'>API</b> <b class='flag-5'>簡化</b>遠(yuǎn)程管理

    華為云 Flexus 云服務(wù)器 X 實(shí)例之 openEuler 系統(tǒng)下玩轉(zhuǎn) iSulad 容器技術(shù)

    的靈活性與性能。結(jié)合華為自研的 iSulad 容器技術(shù),用戶能夠在 openEuler 系統(tǒng)上享受到更輕量級、更安全的應(yīng)用程序部署體驗(yàn)。本文將帶領(lǐng)讀者深入了解如何在華為云 Flexus 云服務(wù)器 X 實(shí)例上利用 iSulad
    的頭像 發(fā)表于 12-30 14:53 ?391次閱讀
    華為云 Flexus 云服務(wù)器 X 實(shí)例之 openEuler 系統(tǒng)下玩轉(zhuǎn) <b class='flag-5'>iSulad</b> <b class='flag-5'>容器</b>技術(shù)