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: 80
Playground
There’s also an Ingress and a Service present in the above file. The Ingress directs traffic arriving on the ...