Sealos 云操作系统一键集成 runwasi,解锁 Wasm 的无限潜力

这篇具有很好参考价值的文章主要介绍了Sealos 云操作系统一键集成 runwasi,解锁 Wasm 的无限潜力。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

WebAssembly (通常缩写为 Wasm) 是一种为网络浏览器设计的低级编程语言。它旨在提供一种比传统的 JavaScript 更快、更高效的方式来执行代码,以弥补 JavaScript 在性能方面的不足。通过使用二进制格式,WebAssembly 能够提供比传统 JavaScript 更快的解析和执行速度。

原文链接:https://forum.laf.run/d/1095

Wasm 扩展到云原生领域

然而但随着时间的发展,它的应用范围已经扩展到了云原生领域。相比于容器和虚拟机,WebAssembly 具有以下优势:

  1. 性能和安全:随着云原生生态系统的发展,大家对于高性能和安全的需求日益增长。WebAssembly 以其快速、安全、沙箱化的特点,成为了一个吸引人的选择。
  2. 跨平台特性:WebAssembly 的跨平台特性使得它非常适合云原生环境,因为它可以在任何支持 Wasm 运行时的环境中运行,与底层硬件或操作系统均无关。
  3. 轻量化:相比于传统的虚拟机和容器技术,Wasm 提供了更轻量级的解决方案,这对于需要快速扩展和缩放的云原生应用尤为重要,例如函数计算场景。
  4. 微服务和边缘计算:Wasm 适合被用于微服务架构和边缘计算场景,因为它能够提供快速的启动时间和更高的资源利用效率。

随着技术的成熟和社区的发展,已经有越来越多的工具和平台被开发出来以支持在云原生环境中使用 WebAssembly,runwasi 便是其中之一。它是一个 Containerd 插件,用来将 Wasm 运行时整合到 Containerd 中,以支持使用 Containerd 来创建和管理 Wasm 应用。

本文将会给大家介绍如何在 Sealos 云操作系统中快速集成 runwasi,并使用 runwasi 来运行 Wasm 应用。

⚠️ 注意:runwasi 目前还是 Alpha 版,不建议在生产环境中使用。

runwasi 介绍

先来看一眼 runwasi 骚气的 Logo:

Sealos 云操作系统一键集成 runwasi,解锁 Wasm 的无限潜力

在理解 runwasi 之前,我们先来明确几个概念:

WebAssembly (Wasm) 运行时

  • WebAssembly 基础:WebAssembly 提供了一个沙箱环境,允许在其中以接近原生性能执行预编译的二进制代码。这些代码模块独立于平台,能够在任何支持 Wasm 的环境中运行。
  • Wasm 运行时:这是一个软件栈,用于加载、验证、编译,并最终执行 Wasm 二进制文件。例如,Wasmtime 或 Wasmer 就是这样的运行时。

Containerd 架构

Containerd 是一个达到工业标准的容器运行时,负责容器的创建、启动、停止和管理,它的架构被设计为模块化,可以通过插件来扩展其功能。这包括快照插件、运行时插件等。runwasi 就是其中一个快照插件。

runwasi 的工作原理

  1. 作为插件runwasi 作为一个 Containerd 快照插件存在,使得 Wasm 应用能够作为容器运行。
  2. 加载 Wasm 应用:当 Containerd 请求启动一个容器时,runwasi 插件负责加载 Wasm 应用。
  3. Wasm 运行时集成runwasi 使用一个 Wasm 运行时(如 Wasmtime)来执行 Wasm 应用。这意味着它会处理 Wasm 二进制文件的加载、验证和执行。
  4. 容器化的 Wasm 应用:通过 runwasi,Wasm 应用在 Containerd 的管理下以类似于传统容器应用的方式运行,但实际上是在 Wasm 运行时中执行。

Sealos 集成 runwasi

下面我们来演示如何在 Sealos 云操作系统中集成 runwasi,步骤非常简单,只需要一条命令即可。

Sealos 提供了 3 个不同的集群镜像:labring/containerd-shim-wasmtime、labring/containerd-shim-wasmedge 和 labring/containerd-shim-wasmer,分别对应三个不同的 Wasm 运行时:WasmEdge、Wasmtime 和 Wasmer。

以 Wasmtime 运行时为例,只需执行下面这条命令就可以将 runwasi 集成到 Sealos 集群中:

$ sealos run docker.io/labring/containerd-shim-wasmtime:v0.3.0

然后使用 Rust 编写一个 Wasm 应用:

// hello.rs

use std::thread::sleep;

fn main() {
    loop {
        sleep(std::time::Duration::from_secs(5));
        println!("{}", "This is from a main function from a wasm module");
    }
}

编译并运行:

$ rustup target add wasm32-wasi
$ rustc quick-start.rs --target wasm32-wasi
$ wasmtime quick-start.wasm
This is from a main function from a wasm module

这个仓库里已经编译好了 wasm 文件:https://github.com/labring-actions/wasi-image/tree/main/applications/quick-start/main

你可以克隆该仓库,进入 applications/quick-start/main,然后执行以下命令构建 wasi 镜像并推送到 Sealos 本地镜像仓库:

$ sealos build --platform "wasi/wasm" -t sealos.hub:5000/quick-start:latest .
$ sealos push sealos.hub:5000/quick-start:latest

编写一个 Job 配置清单:

# wasm-demo.yaml
apiVersion: batch/v1
kind: Job
metadata:
  name: wasm-demo
spec:
  template:
    metadata:
      labels:
        app.kubernetes.io/name: wasm-demo
    spec:
      containers:
        - name: wasm-demo
          image: sealos.hub:5000/quick-start:latest
      runtimeClassName: runwasi-wasmtime # 修改成对应的 runtime 名字
      restartPolicy: Never

创建 Job:

$ kubectl apply -f wasm-demo.yaml

查看 demo 日志:文章来源地址https://www.toymoban.com/news/detail-746427.html

$ kubectl logs jobs/wasm 
This is from a main function from a wasm module

到了这里,关于Sealos 云操作系统一键集成 runwasi,解锁 Wasm 的无限潜力的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 应用系统与钉钉集成案例及操作步骤

    1.1、注册钉钉账号 作为钉钉的企业管理员,首先登录钉钉官网,注册一个钉钉账号。 如果已经有账号,则直接使用即可。 钉钉官网:https://www.dingtalk.com/ 1.2、开通企业团队 企业管理员使用账号登录钉钉。 如果没有创建过企业团队,则出现下图,点击“创建企业/组织/团队”

    2024年02月06日
    浏览(36)
  • 什么是集成测试?它和系统测试的区别是什么? 操作方法来了

    集成测试是软件测试的一种方法,用于测试不同的软件模块之间的交互和协作是否正常。集成测试的主要目的是确保不同的软件模块能够无缝协作,形成一个完整的软件系统,并且能够满足系统的需求和规格。 在集成测试中,测试人员将已经通过单元测试的软件模块组合起来

    2024年02月04日
    浏览(43)
  • Linux操作系统下Docker和Docker Compose的安装教程(包含x86和arm64平台离线一键安装资源包)

    本文章将详细介绍Linux下Docker和Docker Compose的安装教程。 目录3为x86和arm64平台Docker离线安装资源包,包含Docker Compose、一键安装脚本使用教程。 相关文章参考: Docker常用基础命令 Docker批量清理删除镜像和容器常用命令 版本如下 名称 版本 CentOS 7.6+ openEuler等其他操作系统可以使

    2024年02月06日
    浏览(50)
  • 使用 Sealos 一键部署 Kubernetes 集群

    Sealos 是一款以 Kubernetes 为内核的 云操作系统发行版 ,使用户能够 像使用个人电脑一样 简单地使用云。 与此同时,Sealos 还提供一套强大的工具,可以便利地管理整个 Kubernetes 集群的生命周期。 Sealos 不仅可以一键安装一个单节点的 Kubernetes 开发环境,还能构建数千节点的生

    2024年02月03日
    浏览(34)
  • 使用 Sealos 一键部署高可用 MinIO,开启对象存储之旅

    大家好!今天这篇文章主要向大家介绍如何通过 Sealos 一键部署高可用 MinIO 集群。 对象是二进制数据,例如图像、音频文件、电子表格甚至二进制可执行代码。对象的大小可以从几 B 到几 TB 不等。像 MinIO 这样的对象存储平台提供了专用工具和功能,使用标准的 S3 兼容 API 存

    2024年02月08日
    浏览(62)
  • 太强了!本地存档一键导入 Sealos 帕鲁专属服务器

    上一篇:幻兽帕鲁 Palworld 私有服务器一键部署教程 作为一名资深帕鲁,我的职责就是帮助各位帕鲁主人们闭着眼睛部署私服,完全不用带脑子。 我就喜欢群里的帕鲁老板们压榨我,拿鞭子抽我让我赶紧上新功能,这不, 今天给各位带来一个王炸新功能:本地存档导入 Seal

    2024年02月19日
    浏览(39)
  • 一键将 Laf 迁移到 Sealos 云开发(Sealaf),有手就行!

    Laf 云开发最近已正式与 Sealos 融合,成为 Sealos 云开发(Sealaf) ,Sealaf 继承了 Laf 的核心功能,默认配置专用数据库,拥有 更好的稳定性 ,未来我们会将迭代重心转向 Sealaf,强烈建议将 Laf 上的应用 立刻迁移 至 Sealaf! 可联动丰富应用生态 :Sealos 应用市场中有丰富的应用

    2024年04月11日
    浏览(38)
  • Sealos 国内集群正式上线,可一键运行 LLama2 中文版大模型!

    2023 年 7 月 19 日,MetaAI 宣布开源旗下的 LLama2 大模型,Meta 首席科学家、图灵奖得主 Yann LeCun 在推特上表示 Meta 此举可能将改变大模型行业的竞争格局。一夜之间,大模型格局再次发生巨变。 不同于 LLama,LLama2 免费可商用 ! LLama2 的能力在 GPT-3 ~ GPT-3.5 之间,对于关注数据隐

    2024年02月12日
    浏览(51)
  • 操作系统——操作系统用户界面

    操作系统入门知识合集 目录 3.1操作系统启动过程 3.1.1BIOS和主引导记录MBR 思考题:  3.1.2操作系统的启动过程 思考题: 3.2用户界面 3.2.1用户界面概念  思考题: 3.2.2系统调用 计算机有两种模式: 1.实模式:当计算机刚开机、刚上电、还没有加载操作系统的时候,计算器处于

    2024年02月02日
    浏览(52)
  • linux操作系统与Windows操作系统

    【1】Windows 操作系统和Linux操作系统有什么不同? 1、首先是他们的开放性不同 所谓的开放性就是linux操作系统是开放源du码系统,可以对其程序进行编辑修改。而微软的daoWindows系统是受微软版权保护,只能微软内部进行开发及修改。 2、其次是它们的价格不同 linux系统是免费

    2024年02月04日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包