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 通过提供程序与给定的运行时发生交互,支持 waSCC 和 WASI (支持的 WASM运行时在不断增加)。
实际上,Kubelet 是使用 Rust 实现的一种 Kubernetes kubelet。它监听 Kubernetes API,以获取新的 Pod 请求(在集群中运行基于 WASI 的应用程序),只要请求事件与节点选择器是匹配的。因此,要在 Krustlet 节点上运行应用程序,用户可以使用 taints、tolerations 和节点选择器。此外,用户必须为应用程序生成 WebAssembly 二进制文件。如果应用程序是用 C 语言开发的,就用 clang ,如果应用程序是用 Rust 开发的,就用 cargo 。然后,用户必须使用 wasm-to-oci 打包,并将容器镜像推送到容器注册中心。要部署应用程序,用户需要定义一个 Kubernetes 清单,其中包含 tolerations,如下所示:
apiVersion: v1 kind: Pod metadata: name: wasm-app spec: 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.wasm wasm-to-oci push demo.wasm registry/wasm-app:v1.0.0 kubectl 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 等提供支持。
【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/zhibo立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK
原文发布时间:2020-07-14
本文作者:Christian Melendez
本文来自:“InfoQ”,了解相关信息可以关注“InfoQ”
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
写好测试,提升应用质量
相信在国内一些中小型公司,开发者很少会去写软件测试相关的代码。当然这背后有一些原因在。本文就讲讲 iOS 开发中的软件测试相关的内容。 一、 测试的重要性 测试很重要!测试很重要!测试很重要!重要的事情说三遍。 场景1:每次我们写完代码后都需要编译运行,以查看应用程序的表现是否符合预期。假如改动点、代码量小,那验证成本低一些,假如不符合预期,则说明我们的代码有问,人工去排查问题花费的时间也少一些。假如改动点很多、受影响的地方较多,我们首先要大概猜测受影响的功能,然后去定位问题、排查问题的成本就很高。 场景2:你新接手的 SDK 某个子功能需要做一次技术重构。但是你只有在公司内部的代码托管平台上可以看到一些 Readme、接入文档、系统设计文档、技术方案评估文档等一堆文档。可能你会看完再去动手重构。当你重构完了,找了公司某条业务线的 App 接入测试,点了几下发现发生了奔溃。😂 心想,本地测试、debug 都正常可是为什么接入后就 Crash 了。其实想想也好理解,你本地重构只是确保了你开发的那个功能运行正常,你很难确保你写的代码没有影响其他类、其他功能。假如之前的 SDK 针对每个类...
- 下一篇
10万,买一辆自驾无忧的智能汽车
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! “我看着你们,满怀羡慕。” 这是2020刷屏宣传片《后浪》中,最令人印象深刻的台词。 其中说道,知识、见识、智慧和艺术等人类积攒了几千年的财富,正在实现历史性交融交汇,成为时代礼物。 而对于中国后浪、中国年轻一代来说,“礼物”还不止于上述“软实力”,还包括衣食住行用等方方面面的“硬福利”获得门槛。 比如智能汽车——百年汽车工业和AI、5G等智能技术交汇催生的新物种……现如今正在中国加速普及。 而中国后浪,将成为最大受惠群体。 那么问题也来了…… 年轻人到底需要怎样的智能汽车? 毫无疑问,年轻人正在成为汽车市场中的主力人群。 根据《2019中国汽车消费趋势报告》(巨量引擎-汽车数据策略研究院和中国汽车流通协会联合发布),2018年至2019年,到店、试驾、购车等行为人群中,“90后”的占比已经超过了25%。 其中,“95后”的占比,直接从2018年的4.8%到2019年的10.4%,增长率114.2%,涨势最强。 这一趋势,也在安信证券的一份报告中得到了证实。 安信证券在报告中指出,虽然中...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Mario游戏-低调大师作品
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Hadoop3单机部署,实现最简伪集群