Deploy and Test the App
Learn how we can deploy and test a WebAssembly app on Kubernetes.
We'll cover the following...
We'll cover the following...
The app is defined in the app.yml file in the wasm folder of the course’s GitHub repository and comprises a Deployment, a Service, and an Ingress.
https://github.com/Educative-Content/TheK8sBook/tree/main/wasm/app.yml
Configuring the resources
The important part of the Deployment YAML is the reference to the RuntimeClass in the Pod spec. This will ensure all 3 replicas get scheduled to a node that meets the nodeSelector requirements in the RuntimeClass (nodes with the wasm=yes label). All 3 replicas will be scheduled to the agent-1 node in our example.
apiVersion: apps/v1
kind: Deployment
metadata:
name: wasm-spin
spec:
replicas: 3
selector:
matchLabels:
app: wasm
template:
metadata:
labels:
app: wasm
spec:
runtimeClassName: rc-spin
containers:
- name: testwasm
image: nigelpoulton/k8sbook:wasm-0.1
command: ["/"]
---
apiVersion: v1
kind: Service
metadata:
name: svc-wasm
spec:
ports:
- protocol: TCP
port: 80
targetPort: 80
selector:
app: wasm
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ing-wasm
annotations:
ingress.kubernetes.io/ssl-redirect: "false"
spec:
ingressClassName: traefik
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: svc-wasm
port:
number: 80Playground
There’s also an Ingress and a Service present in the above file. The Ingress directs traffic arriving on the ...