56/100 Deploy Nginx Web Server on Kubernetes Cluster
Some of the Nautilus team developers are developing a static website and they want to deploy it on Kubernetes cluster. They want it to be highly available and scalable. Therefore, based on the requirements, the DevOps team has decided to create a deployment for it with multiple replicas. Below you can find more details about it:
- Create a deployment using
nginximage withlatesttag only and remember to mention the tag i.enginx:latest. Name it asnginx-deployment. The container should be named asnginx-container, also make sure replica counts are3. - Create a
NodePorttype service namednginx-service. The nodePort should be30011.
First, create the yaml file which will be called nginx-deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx-container
image: nginx:latest
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
type: NodePort
selector:
app: nginx
ports:
- port: 80
targetPort: 80
nodePort: 30011
Apply the configuration created above:
thor@jumphost ~$ kubectl apply -f nginx-deployment.yaml
deployment.apps/nginx-deployment created
service/nginx-service created
# Check the deployment has been successful and pods are available:
thor@jumphost ~$ kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-deployment 3/3 3 3 31s
thor@jumphost ~$ kubectl get pods -l app=nginx
NAME READY STATUS RESTARTS AGE
nginx-deployment-5b58668cfc-2zfjh 1/1 Running 0 86s
nginx-deployment-5b58668cfc-cwr5z 1/1 Running 0 87s
nginx-deployment-5b58668cfc-xdhld 1/1 Running 0 86s
Click the App button in the UI to verify via the URL: