Deploy and Test the App
Learn how we can deploy and test a WebAssembly app on Kubernetes.
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 ...
Ask