【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

Krustlet:使用 Rust 开发的 kubelet,用于运行 WASM 工作负载

  • 2020-07-14
  • 本文字数:1475 字

    阅读完需:约 5 分钟

Krustlet:使用Rust开发的kubelet,用于运行WASM工作负载

Deis Labs发布了Krustlet,一个用 Rust 开发的开源 Kubernetes kubelet,用于在 Kubernetes 中运行 WebAssembly 工作负载。在某种程度上,Krustlet 的初始版本是一种概念验证,因为它还不支持 Pod 事件或Init容器等特性。应用程序必须实现WebAssembly系统接口(WASI),因为 Krustlet 只支持 WebAssembly 容器。


WebAssembly,也称为 WASM,是一种二进制格式,用于栈式虚拟机。它对执行速度进行了优化,占用空间小,也是一种开放的 Web 标准。WASM 以其在浏览器方面的应用(如微软的Blazor框架)而闻名,不过 Mozilla 最近推出了WASI,这样就可以让编译器以这个接口作为编译目标,而不是操作系统。在服务器端支持 WASM 为用户提供了另一种 Docker 之外的容器运行时选择,而这就是 Krustlet 所提供的。


此外,Lin Clark 在Mozilla博客上解释说,从安全的角度来看,“如果调用一个需要访问文件的函数,必须传入一个带有权限限制的文件描述符”。WASI 可用于构建只有显式权限的沙箱环境,从而提高了容器的安全性。



图片来源: Standardizing WASI: A system interface to run WebAssembly outside the web.


Krustlet 的初始版本支持基本的Pod生命周期、用于露出 Pod 或容器字段的API、环境变量和宿主卷、secrets 或 configMaps。不过,Kurstlet 还没有准备好投入生产使用。例如,Krustlet 不支持 ARM 处理器、Init 容器、云提供商数据卷、Pod 事件、Pod Condition,并且只支持部分在 Windows 上运行。此外,Krustlet 通过提供程序与给定的运行时发生交互,支持waSCCWASI(支持的 WASM运行时在不断增加)。


实际上,Kubelet 是使用 Rust 实现的一种 Kubernetes kubelet。它监听 Kubernetes API,以获取新的 Pod 请求(在集群中运行基于 WASI 的应用程序),只要请求事件与节点选择器是匹配的。因此,要在 Krustlet 节点上运行应用程序,用户可以使用 taints、tolerations 和节点选择器。此外,用户必须为应用程序生成 WebAssembly 二进制文件。如果应用程序是用 C 语言开发的,就用clang,如果应用程序是用 Rust 开发的,就用cargo。然后,用户必须使用wasm-to-oci打包,并将容器镜像推送到容器注册中心。要部署应用程序,用户需要定义一个 Kubernetes 清单,其中包含 tolerations,如下所示:


apiVersion: v1kind: Podmetadata:  name: wasm-appspec:  containers:    - name: wasm-app      image: registry/wasm-app:v1.0.0  tolerations:    - key: "krustlet/arch"      operator: "Equal"      value: "wasm32-wasi"      effect: "NoExecute"
复制代码


一个构建、推送和部署应用程序到 Kurstlet 节点的典型工作流如下:


clang main.c -o demo.wasmwasm-to-oci push demo.wasm registry/wasm-app:v1.0.0kubectl apply -f wasm-app.yaml
复制代码


对于想要在现有 Kubernetes 集群中使用 Krustlet 的人,该项目为他们提供了指南,包括如何在不同集群部署(如 Azure Kubernetes Service(AKS)、Amazon Elastic Kubernetes Service(EKS)、MicroK8s、Minikube 等)中启动工作节点。


Krustlet 的开发非常活跃,每个版本都有一个完整的问题列表,他们计划接下来解决这些问题。例如,Krustlet 的最新版本是v0.3.0,在这个版本中,用户可以看到有哪些新特性、接下来会有什么以及他们计划修复的已知问题列表。对于即将发布的版本,Krustlet 正在努力为网络、云存储卷提供程序和一些 Pod Condition 等提供支持。


如果社区开发者对学习或参与贡献感兴趣,可以在GitHub上发布问题,或者每周一加入Zoom每周电话会议


原文链接


Krustlet: a kubelet Written in Rust to Run WebAssembly Workloads in Kubernetes


2020-07-14 08:003567

评论

发布
暂无评论
发现更多内容

鸿蒙系统明年将不再适配安卓

不在线第一只蜗牛

鸿蒙 安卓 HarmonyOS

HDD行业沙龙举办,火火兔、看护家、乐普健康官宣开发鸿蒙原生应用

最新动态

软件测试/人工智能|利用ChatGPT写一份不一样的简历

霍格沃兹测试开发学社

无/低代码等于BPM吗?

代码生成器研究

如何选择适合的开源框架来构建微服务架构?

EquatorCoco

开源 微服务 框架

api如何使用淘宝API接口获取店铺的所有商品

技术冰糖葫芦

API 文档

通过AppLink把拼多多热门榜单商品同步至小红书

RestCloud

APPlink

2024年10大比特币以太坊钱包排行测评推荐

EOSdreamer111

bitget钱包VS imtoken 钱包大比拼,全方面对比

石头财经

云计算:开辟数字时代的无限可能

快乐非自愿限量之名

云计算 云原生

终于搞明白ChatGPT是个什么玩意

Geek_ccdd7f

ChatGPT, FastGPT

bitget钱包和imtoken 钱包应该选择哪个?哪个更靠谱?

BlockChain先知

「X」Embedding in NLP|初识自然语言处理(NLP)

Zilliz

nlp NLP 大模型 Milvus Zilliz

inBuilder低代码平台新特性推荐-第九期

inBuilder低代码平台

低代码

软件测试/人工智能|述职报告头很大,ChatGPT来帮你

霍格沃兹测试开发学社

为什么说低代码是编程初学者的理想选择。

代码生成器研究

评测10大比特币以太坊钱包排行,其中一款支持Ordinals协议

鳄鱼视界

全栈程序员太难了,这个报表工具别再错过了!!

秃头小帅oi

程序员 前端 后端 低代码 全栈

SQL DELETE 语句:删除表中记录的语法和示例,以及 SQL SELECT TOP、LIMIT、FETCH FIRST 或 ROWNUM 子句的使用

小万哥

MySQL 数据库 sql 程序员 后端开发

软件测试/人工智能|使用ChatGPT帮我们绘制产品架构图

霍格沃兹测试开发学社

以色列企业浏览器 Talon,成立 2 年卖了 45 亿,国内安全浏览器看到曙光了?

连续创业的Janky

数据安全 安全浏览器 企业浏览器 数影星球 数影企业浏览器

OpenAI“政变”进行时,“百模大战”接下来该战什么?

脑极体

AI

Oracle实时同步技术

RestCloud

oracle ETL CDC

2024年10大比特币以太坊钱包排行测评推荐

股市老人

LED Driver数码屏应用解决方案

攻城狮Wayne

革新突破!智能指标平台引领时代,国产大模型与企业级部署的完美结合

Kyligence

Kyligence Zen 指标平台

为什么用 iVX 开发程序更快?快在哪里?

代码生成器研究

什么才是真正的低代码平台?

代码生成器研究

IoTDB Summit,12 月 3 日北京等你 | 专属马克杯免费获得

Apache IoTDB

分享一款自己制作的实现可视化操作的代码生成器

LazyCoder

低代码 无代码平台 可视化软件 代码生成器 代码可视化

评测10大比特币以太坊钱包排行,其中一款支持Ordinals协议

威廉META

Krustlet:使用Rust开发的kubelet,用于运行WASM工作负载_DevOps & 平台工程_Christian Melendez_InfoQ精选文章