81 lines
1.6 KiB
Markdown
81 lines
1.6 KiB
Markdown
# 1. Create a Deployment of nginx
|
|
kubectl create deployment my-nginx --image=nginx:latest --port=80
|
|
|
|
# 2. Expose the Deployment as a NodePort service
|
|
kubectl expose deployment my-nginx \
|
|
--type=NodePort \
|
|
--port=80 \
|
|
--target-port=80 \
|
|
--name=my-nginx-service
|
|
|
|
===============
|
|
# backend-deployment.yaml
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: backend
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: backend
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: backend
|
|
spec:
|
|
containers:
|
|
- name: http-echo
|
|
image: hashicorp/http-echo:0.2.3
|
|
args:
|
|
- "-listen=:8080"
|
|
- "-text=Hello from the Backend!"
|
|
ports:
|
|
- containerPort: 8080
|
|
-------------
|
|
|
|
# backend-service.yaml
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: backend-service
|
|
spec:
|
|
type: ClusterIP # Default
|
|
selector:
|
|
app: backend
|
|
ports:
|
|
- port: 80 # Service port (used by internal clients)
|
|
targetPort: 8080 # Container port in the backend Pod
|
|
------------
|
|
# frontend-deployment.yaml
|
|
-------
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: frontend
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: frontend
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: frontend
|
|
spec:
|
|
containers:
|
|
- name: curl-loop
|
|
image: curlimages/curl:7.86.0
|
|
command: ["/bin/sh"]
|
|
args:
|
|
- "-c"
|
|
- |
|
|
while true; do
|
|
echo "=== Calling backend-service:80 ==="
|
|
curl -s backend-service:80
|
|
echo
|
|
sleep 5
|
|
done
|
|
-----------
|
|
|