Skip to main content

Secure nginx with Let's Encrypt on Ubuntu 18.04

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
deployment.apps/my-website created

it will pull the image of nginx from the docker registery and deploy to the cluster.

To check the deployment : 
$ kubectl get deployments
Now we will have to expose the nginx service over load balancer, So that we can able to access it form browse globally.

Deploy Nginx service : 
$ kubectl expose deployment my-website --type=LoadBalancer
service/my-website exposed

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.


Post a Comment

Popular posts from this blog

Another instance of Certbot is already running - Solved - Linux guru

Error : Another instance of Certbot is already runningcertbot --server --manual --preferred-challenges dns --installer nginx -d * Another instance of Certbot is already running Reason : when you run certbot form your machine and unexpectedly stop the command, Then cert bot is not running but it left some .certbot.lock files behind.You need to kill the certbot instance form your machine. Solution : Run the below command to find killed certbot.find / -type f -name ".certbot.lock" You can see result of the command, If there are, you can remove them. Run below command to remove them.find / -type f -name ".certbot.lock" -exec rm {} \; And try again.

Install Apache Using Ansible Playbooks

Ansible is a automation tool which is widely used, you can install and install, configure and manage number of system and services remotely. you can install software and manage services and tasks without needing manually log in to each servers. you have to install ansible in one machine and use ssh to communicate host each other.

Ansible uses Playbooks which is written in YAML format. it's uses module base format. with playbook can run multiple tasks at time and provide more advance functionality, YAML file always start with "---" syntax. In this article we will see how to install and configure apahce2 using ansible YAML script. Master server : [Ansible server, ] Slave 1 : [need to install apache2 in slave 1] Slave 2 : [need to install apache2 in slave 2] We need to configure slave server info in our ansible configuration file, click here to know how to add client machine to ansible. Let's update our apache2.yml file and install…

Create aws s3 bucket using cli

In this article i will explain you to how to manage s3 bucket and objects using AWS cli command line interface. for that you will have to configure AWS cli interface to your local linux machine. You can configure cli from. HERE.

After configured aws cli to your local machine, you can run all below commands. How to create bucket using AWS Cli.root@master:~# aws s3 mb s3://linuxgurubucket make_bucket: linuxgurubucket Listing Bucket : To list all bucket : root@master:~# aws s3 ls 2018-05-01 15:28:37 linuxgurubucket To list all objects from bucket :root@master:~# aws s3 ls s3://linuxgurubucket 2018-05-01 15:32:16 71515 vishal.jpg How to copy local file to s3 using aws cp command :root@master:~# aws s3 cp s3://linuxgurubucket/ upload: ./ to s3://linuxgurubucket/ To check it's upload or not :root@master:~# aws s3 ls s3://linuxgurubucket/ 2018-05-01 15:34:19 82 2018-05-01 15:32:16 71515 vishal.jpg To remove file from s3 bucket using cli: