Skip to main content

Secure nginx with Let's Encrypt on Ubuntu 18.04

Deploy Simple React App with Kubernetes gcp | Linux Guru

Here i will explain that how to deploy simple react app to kubernetes easy way, i am using ubuntu machine So , First you need to install npm and node on your local system.





Install required package to the system.

$ apt-get update
$ apt-get install curl
$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ apt-get install -y nodejs
$ apt-get install -y build-essential

To check npm and Node version  : 
$ node -v
$ npm -v

Now we will clone the simple react code from github and build it.
$ git clone https://github.com/imvishalvyas/simple-react-app.git

Go to the directory and install npm in to that and create build.
$ cd simple-react-app
$ npm install 
$ npm run build # it will create build folder from code.

Now we will deploy that build to the kubernetes deployments. for that we will have require docker for build that code and upload it to docker container, So now we will create one Dockerfile for build.

Build the docker file. It will copy build directory in to docker image container.

$ vim Dockerfile

FROM nginx:1.15.2-alpine
COPY ./build /var/www
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
ENTRYPOINT ["nginx","-g","daemon off;"]


-- it will copy your build folder to container.also copy nginx file to the container and expose it to port 80.

Build the images and push to Google container engine. here i am using google container registery for the store docker image which i have build. you can also use docker hub. 

To build Docker image :
$ docker build -t us.gcr.io/gcp-project-name/mysite:v1 .


Push Docker image to GCR. this command will push the docker image to google container registery.
$ docker push us.gcr.io/gcp-project-name/mysite:v1



Now we will create kubernetes cluster and deploy our build to that cluste. here we assumed that you have created kubernetes cluster already. Connect to the cluster with gcloud and create kubernetes deployment.

To create Deployment on Kubernetes :
$ kubectl run mysite --image=us.gcr.io/gcp-project-name/mysite:v1 --port=80

To Expose service : 
$ kubectl expose deployment mysite --type=LoadBalancer


Done. Now you can access your react website using load balancer ip.


Comments

Popular posts from this blog

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

Error : Another instance of Certbot is already runningcertbot --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns --installer nginx -d *.vishalvyas.com 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 : 10.80.253.11 [Ansible server, ] Slave 1 : 10.80.253.12 [need to install apache2 in slave 1] Slave 2 : 10.80.253.13 [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 ansible.sh s3://linuxgurubucket/ upload: ./ansible.sh to s3://linuxgurubucket/ansible.sh To check it's upload or not :root@master:~# aws s3 ls s3://linuxgurubucket/ 2018-05-01 15:34:19 82 ansible.sh 2018-05-01 15:32:16 71515 vishal.jpg To remove file from s3 bucket using cli: