Deploy Nginx on Kubernetes GCP - Linux Guru
|Image source nginx|
I have created this tutorial for the beginners who are just started working on kubernetes, and wants to know how to deploy apps on Kubernetes, So i will install simple Nginx app on Kubernetes. i am using gcp for Kubernetes, So first we will have to create Kubernetes cluster over GCP account. So let's create Kubernetes cluster with minimum node requirement. we will use f1-micro instance for the Nginx deployment, You can also deploy multiple app on cluster. if you are using google cloud then you have already setup gcloud on your local machine so that we can manage cluster from local machine using gcloud.
Cluster Specifications :
Cluster name : my-cluster
Zone : europe-west1-b, europe-west1-c, europe-west1-d
Disk : 10 GB
Node pool : 1 (it will create 3 instance in each zone).
Machine Type : f1-micro
Create cluster command :
$ gcloud container clusters create my-cluster --zone europe-west1-b --additional-zones europe-west1-c,europe-west1-d --disk-type=pd-ssd --disk-size=10GB --num-nodes=1 --machine-type=f1-micro
Connect the cluster using below command :
$ gcloud container clusters get-credentials my-cluster --zone europe-west1-b --project verdant-sprite-228006
Now we have ready Kubernetes cluster to deploy app, We will deploy Nginx app now on the cluster.
Deploy Nginx app using below command.
$ kubectl run my-website --image=nginx --port=80
it will pull the image of nginx from the docker registery and deploy to the cluster.
To check the deployment :
$ kubectl get deployments
Deploy Nginx service :
$ kubectl expose deployment my-website --type=LoadBalancer
Now we have expose the "my-website" deployment service to the load balancer, Now you have to check the service information to get the load balancer ip.
To check the service :
$ kubectl get svc
first time it will show external ip to the pending state, it will take few seconds to create loadbalancer endpoint. you can check it after some time again. it will provide you global ip to access your app.
Now check again service status :
$ kubectl get svc
Now we have an external loadbalancer IP, Using that ip we can access our Nginx app over browser. So let's check it.