写点什么

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:003963

评论

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

打开CAD图纸提示缺少外部参照是什么原因?怎么解决?

在路上

cad cad看图 CAD看图王

全球社交媒体监控背后的AI技术革命

沃观Wovision

社交媒体 舆情监控 沃观Wovision

MemU:为 AI 伴侣打造的开源记忆框架;实时音乐生成模型 Magenta RealTime:听取音乐实时响应丨日报

声网

从社交平台看世界:全球社交媒体监控的情报价值

沃观Wovision

社交媒体 沃观Wovision 海外舆情监测

校园跑腿外卖论坛团购盲盒小程序:一体化校园服务解决方案

微擎应用市场

开源能源管理系统应用前景:以 MyEMS 为例

开源能源管理系统

开源 能源管理系统

跨国办公设备分散难管理?ManageEngine卓豪统一IT服务台

ServiceDesk_Plus

ManageEngine卓豪

Supersonic from Unity 深度剖析:大多数游戏测试可能毫无意义,出海手游开发者该如何破局?

极客天地

RWA 落地进行时:实体资产与区块链的深度融合之路

NFT Research

Ethereum blockchain rwa

抱歉!Java面试标准答案最不重要

王磊

PaddleMIX推出扩散模型推理加速Fast-Diffusers:自研蒸馏加速方法FLUX-Lightning实现4步图像生成

百度Geek说

CST帮助文档:SIMULIA网格处理软件---PowerDELTA

思茂信息

cst cst电磁仿真 CST Studio Suite

具身智能竞速时刻,百度百舸提供全栈加速方案

Baidu AICLOUD

具身智能 VLA

CAD中如何绘制圆弧?详细教程来了

在路上

cad cad看图 CAD看图王

【新模型速递】PAI-Model Gallery云上一键部署gpt-oss系列模型

阿里云大数据AI技术

人工智能 大数据 大模型 模型部署 gpt-oss

2025 App开发降本范式重构:技术杠杆撬动效能革命

xuyinyin

金蝶国际公布2025年中期业绩:云订阅收入增长22.1%,AI应用商业化加速

人称T客

请终结你的“混乱”工具库房,复制落地篇:工厂维修车间RFID智能工具库房管理方案

斯科信息

RFID解决方案 斯科信息 RFID智能工具库房 RFID智能工具柜

金蝶云•星辰基于 SLS 构建稳定高效可观测系统

阿里巴巴云原生

阿里云 云原生 日志服务 sls

自主可控成中国AI发展关键词,谁能担当重任?

新消费日报

TinyVue表格重构5大关键帧一次曝光!内存节省 27%,JS 执行时间减少 43% ,FPS 提升 110%

OpenTiny社区

开源 性能优化 前端 组件库 OpenTiny

AI智能体的开发优化

北京木奇移动技术有限公司

AI智能体 AI技术开发 软件外包公司

MyEMS:重塑能源管理,驱动高效节能新变革

开源能源管理系统

开源 能源管理系统

动态化开发范式跃迁:AI驱动应用架构的敏捷重构

xuyinyin

MyEMS 开源能源管理系统:双碳时代的能源革命引擎

开源能源管理系统

开源 能源管理系统

KubeEdge秋季带薪远程实习来了!2025年LFX Mentorship开启申请

华为云原生团队

云计算 容器 云原生

夜莺开源监控,模板函数一览

巴辉特

Nightingale 夜莺监控 开源监控

jobleap.cn是干什么用的?

安全乐谷

面试 找工作 简历 笔试 找实习

告别研发痛点!群核科技靠 “自动化左移” 重构质量效能,效能飙升有何秘诀?

杭州群核科技质量效能

比价寄快递独立版:快递行业解决方案

微擎应用市场

富士胶片集团发布2025财年第一季度财务报告

财见

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