wasm 要做到哪些方面才能取代容器运行时来被 kubernetes 调度 - V2EX
mightybruce

wasm 要做到哪些方面才能取代容器运行时来被 kubernetes 调度

  •  
  •   mightybruce Jan 31, 2024 2180 views
    This topic created in 837 days ago, the information mentioned may be changed or developed.
    wasm 和 wasi 目前就看到一些边缘计算场景有用上,尽管 docker 创建者力捧 wasm, 但是 krustlet 无容器运行 wasm 的项目已经停止更新了。最近 WASI 预览 2 正式发布。

    https://mp.weixin.qq.com/s?__biz=MzI5ODk5ODI4Nw==&mid=2247542560&idx=1&sn=c001f1ce4f90e6fac3fb3a1941f8988c&chksm=ec9f2840dbe8a156aa4bcf213beb1027d3996af6e6e8efc463e96913a8c59366bcf2cfeff00c
    9 replies    2024-03-05 15:14:24 +08:00
    thet
        1
    thet  
       Jan 31, 2024
    目前接口太少了,只能做一些 demo
    flyqie
        2
    flyqie  
       Jan 31, 2024 via Android
    能科普下 wasm 在 k8s 上的作用吗?

    对 wasm 的用途理解还局限在浏览器上。
    mightybruce
        3
    mightybruce  
    OP
       Jan 31, 2024
    @flyqie wasm 通过 wasm 运行时 运行在各种操作系统上,wasm 运行时 比 容器运行时资源消耗更少,wasi 是用来让 wasm 和 操作系统交互的各种接口调用
    k8s 运行 wasm 有两者方法
    一种是兼容 Wasm 的组件替换本机 Linux 容器运行时, 使用 krustlet 代替 kubelet , ( krustlet 目前停止更新)
    另一种解决方案是使用带有 Wasm 运行时的基本镜像,并手动调用编译后的二进制文件, 这种依然是依靠容器运行。

    目前流行的几种 wasm 运行时 Wasmtime ( Rust ,JIT )、WAVM ( C/C++,JIT )、Wasmer ( Rust ,JIT )、Wasm3 ( C ,解释型)、WAMR (C, 解释型)。
    go 编译器 以及 tinygo 都支持编译为 wasm 指令集架构的文件
    mightybruce
        4
    mightybruce  
    OP
       Jan 31, 2024
    在 Web 上,WebAssembly 使用浏览器提供的现有 API 。WebAssembly 系统接口( WASI )的创建填补了 WebAssembly 和运行在浏览器外部的系统之间的空白。这使非浏览器系统能够利用 WebAssembly 的可移植性,使 WASI 成为在分发时具有可移植性和在运行负载时具有隔离性的良好选择。
    qq135449773
        5
    qq135449773  
       Feb 1, 2024
    正好最近也在研究关于 wasm 替代容器化技术这块的内容。

    但我翻了下 wasmer ,感觉还是没太理解这东西到底怎么能替代 docker ?

    比如我想去在服务器上运行 Java ,那么按照 docker 的思想,我应该先去写一个 Dockerfile ,去完成编译打包优化镜像体积,然后分发镜像到服务器上,因为 docker 容器内部就是一个比较完整的 linux 环境,一切都很好去理解。

    但是 wasm 方案如果想这么用的话应该怎么做?如何把我的 Java 项目打包成为 wasm 格式?

    依照官网给的信息还是没太理解这个用法。
    mightybruce
        6
    mightybruce  
    OP
       Feb 1, 2024   1
    @qq135449773 如果是基于 java 来做, 就不要研究了,java 社区对这个关注不高,远远没有成熟度。
    wasi 目前支持的比较好的是 rust ,其次是 c++ 和 go 。
    容器的资源隔离 wasi 是可以做到的。
    qq135449773
        7
    qq135449773  
       Feb 1, 2024
    @mightybruce #6 那么这三个语言,哪个都能直接编译到对应平台的二进制上,除了放在浏览器里为什么还需要 wasm 呢
    ExplodingDragon
        9
    ExplodingDragon  
       Mar 5, 2024
    跑 JIT / 解释最后也会变得和 JVM / V8 一样 ...
    About     Help     Advertise     Blog     API     FAQ     Solana     933 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 49ms UTC 18:54 PVG 02:54 LAX 11:54 JFK 14:54
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86