Skip to main content
Version: 1.0

wasmCloud on Kubernetes

wasmCloud and Kubernetes integrate via the open source wasmcloud-operator, which utilizes the operator pattern and custom resource definitions (CRDs) to run wasmCloud hosts on Kubernetes—and thereby take full advantage of WebAssembly components in Kubernetes environments.

With a Kubernetes cluster running the wasmCloud operator, launching components as Kubernetes services can be as simple as running kubectl apply on a wadm manifest:

shell
kubectl apply -f wadm.yaml
application/echo created

For instructions on how to deploy wasmCloud with Kubernetes, see the Kubernetes page in our Operator Guide.

How we run WebAssembly on Kubernetes​

wasmCloud hosts can run on a Kubernetes cluster (using the wasmCloud operator) or external to it. Regardless of where hosts are running, they can be connected on a lattice. We call this the "alongside" model for running WebAssembly with Kubernetes. When using the wasmCloud operator, Kubernetes handles infrastructure management (the job for which it is designed) by orchestrating wasmCloud hosts, while wasmCloud handles application-level operations with full support for component capabilities.

The "alongside" model stands in contrast to a "wrapped" model that encapsulates all WebAssembly runtime operations within the container-centric frameworks and abstractions of Kubernetes—explicitly locking out hybrid compute options that can shape the future of computing.

'Wrapped' vs 'Alongside' models for deploying Wasm on K8s

A decoupled approach to WebAssembly on Kubernetes facilitates proper separation of concerns and gives users maximum flexibility and portability, while avoiding lock-in to proprietary systems and making it easy to run on existing cloud native infrastructure. Just as importantly, it allows users to leverage and build on the most powerful and singular features of the WebAssembly component model, such as its composability and interoperability.

Components and cloud native standards​

wasmCloud is designed to conform to cloud native standards, making it simple to use existing tooling for everything from observability to policy to registries.

  • Open Policy Agent: wasmCloud's policy service API makes it easy to communicate with external policy servers using engines like Open Policy Agent.
  • OpenTelemetry: wasmCloud emits OpenTelemetry signals for traces, logs, and metrics, compatible with your favorite observability tooling.
  • Backstage: Develop Backstage plugins with any language using Cosmonic Labs' bigband project.
  • Argo CD: Smoothly integrate Argo CD for GitOps flow using our concordance-gitops example.
  • Pull from OCI registries: wasmCloud pulls Wasm components packaged as Open Container Initiative (OCI) images—so it's simple to store application components and providers in your existing private registries.
  • Open Application Model (OAM): wasmCloud manifests use the same Open Application Model specification as most Kubernetes extensions. If you've worked with K8s, you should be right at home.

Further reading​

Get started with the wasmCloud operator on GitHub, and find more details on installation and configuration of the wasmCloud operator on the Kubernetes page of our Operator Guide.