KevsRobots Learning Platform
60% Percent Complete
By Kevin McAleer, 2 Minutes
Page last updated May 24, 2025

Now that your K3s cluster is running and accessible via services and ingress, itβs time to deploy a real-world application.
In this lesson, youβll deploy a simple web app with a backing Redis database using Deployments, Services, and an Ingress rule.
Weβll deploy:
web)redis)These will be connected using environment variables and services.
Create a file called webapp.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web
spec:
replicas: 1
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: web
image: kevdev/web-redis-demo:latest
ports:
- containerPort: 5000
env:
- name: REDIS_HOST
value: redis
---
apiVersion: v1
kind: Service
metadata:
name: web
spec:
selector:
app: web
ports:
- protocol: TCP
port: 80
targetPort: 5000
This assumes you have a Docker image like kevdev/web-redis-demo on Docker Hub β update it with your own image if needed.
Append this to the same file or create a separate redis.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: redis
spec:
replicas: 1
selector:
matchLabels:
app: redis
template:
metadata:
labels:
app: redis
spec:
containers:
- name: redis
image: redis:alpine
---
apiVersion: v1
kind: Service
metadata:
name: redis
spec:
selector:
app: redis
ports:
- protocol: TCP
port: 6379
kubectl apply -f webapp.yaml
kubectl apply -f redis.yaml
Verify everything is running:
kubectl get pods
kubectl get svc
Create a file called webapp-ingress.yaml:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: web-ingress
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web
spec:
rules:
- host: web.local
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: web
port:
number: 80
Apply it:
kubectl apply -f webapp-ingress.yaml
Add this to /etc/hosts on your local machine:
192.168.1.100 web.local
Visit http://web.local in your browser!
kubectl scale deployment web --replicas=3
See the load balancing in action (especially with Ingress).
You now know how to:
Next up: Using Helm
You can use the arrows β β on your keyboard to navigate between lessons.
Comments