主頁 >  其他 > 理論+實操,帶你了解多沙箱容器運行時Kuasar

理論+實操,帶你了解多沙箱容器運行時Kuasar

2023-05-23 09:06:18 其他

摘要:華為云DTSE技術布道師張天陽結合沙箱容器發展歷程,介紹華為云多沙箱容器運行時 Kuasar 專案優勢,開啟多沙箱容器運行時上手實踐體驗,

本文分享自華為云社區《理論+實操,帶你了解多沙箱容器運行時Kuasar》,作者:華為云社區精選,

本期《多沙箱容器運行時Kuasar開發上手實踐》主題直播中,華為云DTSE技術布道師張天陽結合沙箱容器發展歷程,介紹華為云多沙箱容器運行時 Kuasar 專案優勢,為開發者演示 Kuasar 的安裝運行方式,開啟多沙箱容器運行時上手實踐體驗,

順勢而出的沙箱容器

2013年,docker 橫空出世,云計算進入容器時代,所謂的容器也就是運行在宿主機上的行程,通過 Namespace 和 Cgroup 技術進行隔離和限制,和主機共享內核,

2014年,kubernetes 開源并成為主流的容器編排工具,在 kubernetes 中,Pod 是一個或多個容器的集合,容器間可以共享網路和存盤,為此引入了 pause 容器來實作這一特性,

“與宿主機系統共享內核的容器,是存在著巨大的安全隱患,”華為云DTSE技術布道師張天陽講到,

也正是看到這個問題,在2017年底,沙箱(Sandbox)容器技術興起,它將容器行程限制在一個封閉的沙箱環境中,防止其對系統和其他容器造成破壞,具有極高的安全性,

沙箱天然符合 Pod 的定義,它為一組容器提供了一個隔離的環境,在沙箱環境中運行的容器,就是沙箱容器,根據沙箱隔離的邊界可分為:

  • 輕量虛擬機沙箱(MicroVM Sandbox):在宿主機上模擬一套完整的虛擬機,容器運行在虛擬機內,具有非常高的安全隔離效果,
  • 用戶態內核沙箱(Application Kernel Sandbox):通過一個運行在用戶態的內核程式,攔截并實作容器的系統呼叫,從而保證容器間的安全隔離性,
  • WebAssembly沙箱(Wasm Sandbox):將容器運行在 WebAssembly 的運行時中,依賴 WebAssembly 的能力提供進行程級別的隔離,

每種沙箱在極速彈性、安全隔離和標準通用維度有各自的優勢,目前云廠商都已在生產環境布局了沙箱容器產品,每個沙箱借助 containerd Shim v2 均實作了一套管理面的程式,彼此之間不相兼容,

2023年3月,containerd 在其 v1.7.0 版本中發布了 Sandbox API 特性,該特性提供了一套管理沙箱的API,它的出現使得容器和沙箱的概念解耦,“容器歸容器,沙箱歸沙箱”,創建 Pod 就是創建沙箱,不再需要借助 pasue 容器,

沙箱容器已成為云原生場景下的安全的解決方案,我們希望借助 Sandbox API 的力量,實作一種支持多種沙箱技術的容器運行時,

然而單一容器隔離技術無法滿足用戶云上業務對安全隔離、極速彈性、標準通用等多個維度的訴求,基于此,華為云于2023 年 4 月在荷蘭阿姆斯特丹舉辦的 KubeCon + CloudNativeCon Europe 2023 云原生峰會上正式開源Kuasar ,新開源的多沙箱容器運行時 Kuasar 可以充分利用節點資源、降本增效,為用戶提供更安全高效的沙箱場景解決方案,

Kuasar架構技術大揭秘

Kuasar 是一個多沙箱容器運行時,那么什么是容器運行時?簡單說容器運行時是一個負責拉起容器,管理容器運行狀態的運行時組件,可以分為高階容器運行時和低階容器運行時兩類:

  • 高階容器運行時:負責 CRI 的實作,從高維度管理容器和鏡像實體,containerd, CRI-O, docker 還有 iSulad 都是典型的高階容器運行時,
  • 低階容器運行時:負責 OCI 實作,真正操作容器,Kata-containers 和 runC 等都是低階容器運行時,

Kuasar 屬于低階容器運行時,和高階容器運行 containerd 互動,Kuasar 主要由兩個模塊組成:

  • Kuasar-Sandboxer:實作了 Sandbox API,負責管理沙箱生命周期和資源分配,Sandboxer 以插件的形式和 containerd 互動,
  • Kuasar-Task:實作了 Task API,負責管理容器的生命周期和資源分配,

MicroVM Sandboxer:虛機行程提供了完整的虛擬化層和 Linux 內核, vmm-sandboxer 負責創建虛機和呼叫 API, vmm-task 作為虛機里的 init 行程負責拉起容器行程,容器的 IO 流則可通過虛機的 vsock 或 uds 匯出,

App Kernel Sandboxer: Quark 是一種新型的 App Kernel Sandbox,使用自己的 QVisor 作為 hypervisor 和自定義內核 QKernel,QVisor 只負責KVM虛擬機的生命周期管理,Qkernel 攔截所有的系統呼叫,并通知 QVisor 處理,quark-sandboxer 拉起 Qvisor 和 Qkernel,每當需要啟動容器時,QVisor 中的 quark-task 將呼叫 Qkernel 來啟動一個新的容器,同一 Pod 中的所有容器都將在同一個行程中運行,

Wasm Sandboxer:WebAssembly 沙箱定義了一套新的指令集和虛擬機,所有程式必須編譯成 Wasm 指令集才能在 Wasm 虛擬機中運行,因此對應用程式有很高的要求,wasm-sandboxer 和 wasm-task 為一個獨立的行程,每當需要在沙箱中啟動容器時,wasm-task 將 fork 一個新行程,啟動一個新的 WasmEdge runtime,并在其中運行 Wasm 代碼,

Kuasar改變當前的Shim V2 的管理模型,帶來以下收益:

  1. sandbox 管理邏輯清晰:sandbox 管理邏輯和 container 管理邏輯完全分開,開發友好,語意清晰
  2. 簡化 container 呼叫鏈:取消 Task API 到 Shim v2 API 的轉化,直接呼叫,鏈路簡化
  3. 高效的sandboxer行程: Sandboxer 行程常駐減掉了冷啟動 Shim 行程的耗時, 1:N 管理模型大幅減少了行程數量,Rust 程式記憶體安全,相比 Golang 開銷小
  4. pause 容器消失:創建 Pod 不再創建 pause 容器,不再需要準備 pause 容器鏡像快照

為了更好地展現Kuasar 性能優勢,張天陽選擇 “端到端容器啟動時間”和“管理面組件記憶體消耗”作為衡量 Kuasar 性能的兩個指標,在保持環境變數一致的前提下和同類競品進行對比測驗,

啟動時間測驗分為兩組,一組統計單個 Pod 的啟動時間,另一組統計并行啟動50個 Pod 的時間:

Kuasar 100% 的啟動速度提升主要得益于兩方面,一方面是 Sandbox API 的實作,使得創建容器不再單獨創建 pause 容器,節省了準備pause容器鏡像快照的時間;另一方面得益于1:N 的管理模型,Sandboxer 行程常駐,從而節省了冷啟動 Shim 行程的時間,這使得容器的啟動速度大大提升,

記憶體消耗測驗共分三輪,每輪分別啟動了1、5、10、20、30和50個Pod,查詢Sandboxer 行程和所有 Shim 行程的 PSS 數值,

Kuasar 節省近99%的記憶體,原因也可分為兩點:主要是 1:N 的管理模型使得 N 個行程減少為1個行程,帶來的記憶體收益與 Pod 數成正比;其次,Kuasar 采用了 Rust 編程語言,相比于 Kata Shim 行程使用的 Golang 語言,語言本身也會帶來一些記憶體收益,

五分鐘教你操作Kuasar

了解了Kuasar相關技能和特性,相信大家對產品有了一個大致的了解,接下來,就花幾分鐘帶大家從安裝上手,實際操作了解和認識Kuasar,

為了讓大家更好地體驗,在Kuasar安裝配置操作上,為大家準備了一指禪,如下:

  • 方式一:Ubuntu 22.04 作業系統,可按照 Github Release 發布說明直接下載安裝: https://github.com/kuasar-io/kuasar/releases/tag/v0.0.1-alpha1
  • 方式二:如果是原始碼編譯,需要按照 README 里的說明進行:https://github.com/kuasar-io/kuasar#quick-start

溫馨小提醒,在安裝配置前需要大家預準備一下內容:

面向未來,作為一個開放和可擴展的 多沙箱容器運行時,Kuasar 將發揮沙箱介面的優勢,擁抱業界最新的 DRA(Dynamic Resource Allocation)、CDI(Container Device Interface) 等管理介面,為云原生場景帶來更安全、高效、便捷的容器解決方案,為云原生應用提供更安全的保障,

 

點擊關注,第一時間了解華為云新鮮技術~

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/553102.html

標籤:其他

上一篇:面了一個4年經驗的測驗工程師,自動化都不會也要15k,我也是醉了····

下一篇:返回列表

標籤雲
其他(159488) Python(38162) JavaScript(25441) Java(18096) C(15230) 區塊鏈(8267) C#(7972) AI(7469) 爪哇(7425) MySQL(7204) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5871) 数组(5741) R(5409) Linux(5340) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4574) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2433) ASP.NET(2403) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1975) 功能(1967) Web開發(1951) HtmlCss(1940) C++(1919) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1878) .NETCore(1861) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 理論+實操,帶你了解多沙箱容器運行時Kuasar

    摘要:華為云DTSE技術布道師張天陽結合沙箱容器發展歷程,介紹華為云多沙箱容器運行時 Kuasar 專案優勢,開啟多沙箱容器運行時上手實踐體驗。 本文分享自華為云社區《理論+實操,帶你了解多沙箱容器運行時Kuasar》,作者:華為云社區精選。 本期《多沙箱容器運行時Kuasar開發上手實踐》主題直播 ......

    uj5u.com 2023-05-23 09:06:18 more
  • 面了一個4年經驗的測驗工程師,自動化都不會也要15k,我也是醉了&#18

    看到了很多份簡歷,好幾個都是幾個月測驗經驗的來面試,最離譜的是令我印象最深刻的,一個4年經驗的,問薪資一張口就是要15k,這份自信也讓我對他極其感興趣,以為是來了個大佬,沒想到我一問不提測驗工具,僅僅基礎的技術很多也知之不詳,多數人數年的作業經驗僅僅是功能測驗堆起來的,毫無深度,對于APP自動化等等... ......

    uj5u.com 2023-05-23 09:05:58 more
  • Pytest - pytest 命令(3) - 常用命令的使用

    ## pytest 常用命令 ### 測驗資訊輸出 ```python # 設定pytest的執行引數 "-q":安靜模式, 不輸出環境資訊 pytest.main(["-q"]) # 設定pytest的執行引數 "-s":顯示程式中的print/logging輸出 pytest.main(["-s ......

    uj5u.com 2023-05-23 09:04:56 more
  • 機器學習資料順序隨機打亂:Python實作

    本文介紹基于**Python**語言,實作機器學習、深度學習等模型訓練時,**資料集打亂**的具體操作。 # 1 為什么要打亂資料集 在機器學習中,如果不進行資料集的打亂,則可能導致模型在訓練程序中出現具有“**偏見**”的情況,降低其泛化能力,從而降低訓練精度。例如,如果我們做深度學習的分類,其中 ......

    uj5u.com 2023-05-23 09:04:52 more
  • 摳圖黨福音:教你一鍵分割影像

    摘要:輸入一個影像,通過Segment Anything模型即可獲得影像所有目標的分割點位置,再通過位置將影像進行分割保存。 本文分享自華為云社區《一鍵分割影像》,作者:雨落無痕 。 Segment Anything Segment Anything Model(SAM)通過點或框等輸入提示生成高質 ......

    uj5u.com 2023-05-23 09:04:40 more
  • GPS北斗校時服務器(時間同步裝置)助力橋梁檢測系統建設

    GPS北斗校時服務器(時間同步裝置)助力橋梁檢測系統建設 GPS北斗校時服務器(時間同步裝置)助力橋梁檢測系統建設 京準電子科技官微——ahjzsz 一、系統概述 整個采集系統分散在橋梁的各個部位。橋梁按照區域劃分為若干區段,在主要幾個區段中安置著信號采集機站,每組采集機站均和GPS校時器相連,GP ......

    uj5u.com 2023-05-23 09:04:10 more
  • 紅黑樹是怎么來的

    本文從二叉搜索樹傾斜的原因(自上而下生長)出發,推出維持樹形資料結構平衡性的關鍵:自下而上裂變式生長,進而引出裂變式生長的理論模型:2-3 樹。由于 2-3 樹實作上的復雜性,引出其實作上的替代品:紅黑樹。最后,我們討論如何通過左旋、右旋以及顏色翻轉這“三板斧”來維護紅黑樹插入和洗掉元素后的動態平衡... ......

    uj5u.com 2023-05-23 09:03:20 more
  • 解密Prompt7. 偏好對齊RLHF-OpenAI&#183;DeepMind&#183;Anthropi

    RLHF是針對有用,無害,事實性等原則,把模型輸出和人類偏好進行對齊的一種方案。以OpenAI為基礎,本章會對比DeepMind, Anthropic在RLHF步驟中的異同,試圖理解RLHF究竟做了啥 ......

    uj5u.com 2023-05-23 09:02:10 more
  • AIGC持續火爆大模型爭相推出,龐大市場造就算力供應模式演變

    本圖由AI生成 黃仁勛說的AI發展迎來iPhone時刻,對NVIDIA有什么影響? 文/王吉偉 近期的AIGC領域仍舊火爆例外。 但火的不只是AIGC應用,還有巨頭之間的AI競賽,以及接連不斷上新的AI大模型(LLM,Large Language Model)。 面對ChatGPT帶來的技術沖擊,為 ......

    uj5u.com 2023-05-23 09:01:07 more
  • 機器學習資料順序隨機打亂:Python實作

    本文介紹基于**Python**語言,實作機器學習、深度學習等模型訓練時,**資料集打亂**的具體操作。 # 1 為什么要打亂資料集 在機器學習中,如果不進行資料集的打亂,則可能導致模型在訓練程序中出現具有“**偏見**”的情況,降低其泛化能力,從而降低訓練精度。例如,如果我們做深度學習的分類,其中 ......

    uj5u.com 2023-05-23 09:01:02 more