deislabs/containerd-wasm-shims
Fork: 48 Star: 311 (更新于 2024-10-25 18:51:11)
license: Apache-2.0
Language: Rust .
containerd shims for running WebAssembly workloads in Kubernetes
最后发布版本: v0.11.1 ( 2024-02-16 03:02:32)
Containerd Wasm Shims
This project aims to provide containerd shim implementations that can run Wasm / WASI workloads using runwasi as a library. This means that by installing these shims onto Kubernetes nodes, we can add a runtime class to Kubernetes and schedule Wasm workloads on those nodes. Your Wasm pods and deployments can act just like container workloads!
runwasi is a project that aims to run WASI workloads managed by containerd.
Shims
We are moving the spin shim to a separate repository, follwoing the annoucement of SpinKube project. Please check out the SpinKube organization for the latest updates on the Spin shim.
This repo currently maintains four shims for Wasm application runtimes/frameworks:
- Spin - a developer tool for building and running serverless Wasm applications.
- Slight - a wasmtime-based runtime for running Wasm applications that use SpiderLightning (aks WASI-Cloud-Core) capabilities
- Wasm Workers Server - a tool to develop and run serverless applications server on top of Wasm.
- Lunatic - an Erlang-inspired runtime for fast, robust and scalable server-side Wasm applications.
Below is a table of the shims and the the most recent versions of the shims that are supported by this project.
shim version | v0.11.1 | v0.10 | v0.9 | v0.8 | v0.7 | v0.5.1 | v0.5.0 |
---|---|---|---|---|---|---|---|
Spin | v2.2.0 | v2.0.1 | v1.4.1 | v1.4.0 | v1.3.0 | v1.0.0 | v0.9.0 |
Slight | v0.5.1 | v0.5.1 | v0.5.1 | v0.5.0 | v0.5.0 | v0.4.0 | v0.4.0 |
Wasm Workers Server | v1.7.0 | v1.7.0 | v1.5.0 | v1.4.0 | v1.2.0 | / | / |
Lunatic | v0.13.2 | v0.13.2 | / | / | / | / | / |
Compare to runwasi
shims
As mentioned above, this project uses runwasi's containerd-shim-wasm
to build shim implementations for higher level Wasm application runtimes/frameworks. The runwasi
shims are more lower level that are intended to run WASI-compatible Wasm modules, instead of Wasm applications that are built on top of a framework. If you are looking for Wasmtime
, WasmEdge
or Wasmer
shims, please check out runwasi.
Quickstarts
- Start k3d and run a sample WASM application.
- Create a Spin application on k3d
- Deploy a SpiderLightning application with k3d
- Deploy a Wasm Workers Server application with k3d
Building the shims
To build the shims in this project, run make build
.
Running the integration tests
To run the integration tests, run make integration-tests
.
To clean up, run make tests/clean
.
Example Kubernetes Cluster Deployments
In the deployments directory you will find examples of deploying the shims to Kubernetes clusters and using them in example Kubernetes workloads.
Using a shim in Kubernetes
To use one of these containerd shims in Kubernetes, you must do the following:
- Install the shim binary somewhere on the path of your Kubernetes worker nodes. For example, copy
containerd-shim-spin-v2
to/bin
. - Add the following to the containerd config.toml that maps the runtime type to the shim binary from step 1.
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.spin]
runtime_type = "io.containerd.spin.v2"
- Apply a runtime class that contains a handler that matches the "spin" config runtime name from step 2.
apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
name: wasmtime-spin
handler: spin
- Deploy a Wasm workload to your cluster with the specified runtime class name matching the "wasmtime-spin" runtime class from step 3.
apiVersion: apps/v1
kind: Deployment
metadata:
name: wasm-spin
spec:
replicas: 1
selector:
matchLabels:
app: wasm-spin
template:
metadata:
labels:
app: wasm-spin
spec:
runtimeClassName: wasmtime-spin
containers:
- name: spin-hello
image: ghcr.io/deislabs/containerd-wasm-shims/examples/spin-rust-hello:latest
command: ["/"]
Code of Conduct
This project has adopted the Microsoft Open Source Code of Conduct.
For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
最近版本更新:(数据更新于 2024-09-03 01:30:29)
2024-02-16 03:02:32 v0.11.1
2024-02-14 09:27:38 v0.11.0
2023-11-15 08:46:33 v0.10.0
2023-11-09 15:33:02 v0.9.3
2023-11-01 07:26:20 v0.9.2
2023-09-21 19:23:02 v0.9.1
2023-09-03 09:43:11 v0.9.0
2023-07-18 04:57:56 v0.8.0
2023-06-27 02:01:53 v0.7.0
2023-05-05 05:25:15 v0.6.0
主题(topics):
containerd, kubernetes, wasi, wasm, webassembly
deislabs/containerd-wasm-shims同语言 Rust最近更新仓库
2024-11-05 08:48:52 lapce/lapce
2024-11-04 19:47:57 dashpay/platform
2024-11-01 02:26:55 mediar-ai/screenpipe
2024-10-30 06:09:45 electric-capital/crypto-ecosystems
2024-10-29 10:21:58 rustdesk/rustdesk
2024-10-27 15:42:03 jtroo/kanata