mobile menu
  • About us
  • Services
  • Case Studies
  • Careers
  • Blog
  • Contact us

Deploying a Node.js app to the Google Kubernetes Engine (GKE)

Let us show you how quickly and easily you can deploy your app to Kubernetes on Google Kubernetes Engine (GKE).

Create a new Kubernetes cluster

Deploying a Node.js app to the Google Kubernetes Engine-create a new kubernetes clucter

Enter a name for your cluster, the location, the number of nodes and the machine type. Then click More Options.

Deploying a Node.js app to the Google Kubernetes Engine-center a name for your cluster

If you need to automatically add new nodes to the cluster, then click Enable autoscaling.

Deploying a Node.js app to the Google Kubernetes Engine-enable autoscaling

You can allow access to some APIs from the cluster. For example, I allow access to Google Cloud Storage (GCS).

Deploying a Node.js app to the Google Kubernetes Engine-GCS

After your cluster has been created, click Connect.

Deploying a Node.js app to the Google Kubernetes Engine-connect

Now you’ll see a Cloud Shell containing the command; press Enter to execute it and get GKE credentials. After that, you can execute any commands with kubectl.

For example, let’s check the nodes of a cluster.

Deploying a Node.js app to the Google Kubernetes Engine-the nodes

Push docker image to Google Container Registry

I’ll use my GitHub repo, which includes a simple Node.js app, Dockerfile, and deployment.yaml. I’ll enter all the following commands in Cloud Shell.

git clone https://github.com/sonufrienko/gke-simple-app
cd gke-simple-app

Replace [PROJECT_ID] in deployment.yaml with your GCP project ID.

Get credentials to Google Container Registry

gcloud auth configure-docker

Build and push the docker image to Google Container Registry

docker build -t gcr.io/[PROJECT_ID]/app:v1 .
docker push gcr.io/[PROJECT_ID]/app:v1

Deploy docker image to Kubernetes

A deployment YAML file contains two parts:

  • Deployment – describes the containers to be deployed
  • Service – will create a LoadBalancer to expose our containers to the internet

Deploying a Node.js app to the Google Kubernetes Engine-Create deployment and service.

Create deployment and service

kubectl apply -f deployment.yaml --record

Check the deployment process

kubectl get deployments

Check the pods (containers)

kubectl get pods

Check the service and copy the external IP address (LoadBalancer)

kubectl get services

Deploying a Node.js app to the Google Kubernetes Engine-IP address

Now, you can open this URL in your browser:

http://<EXTERNAL-IP>/encrypt?secret=abc&message=i-love-you

How to release a new version?

Push a new version of a docker image to the Container Registry, change the docker image version in deployment.yaml and then run this command to set desired deployment state:

kubectl apply -f deployment.yaml --record

How to rollback a new release?

kubectl rollout undo deployment/my-app-deployment

Useful tips

Check container logs

kubectl logs <POD NAME>

Go inside a container

kubectl exec -it <POD NAME> bash

Delete a whole deployment

kubectl delete deployment my-app-deployment

Set horizontal pod autoscaling policy for deployment

kubectl autoscale deployment <DEPLOYMENT_NAME> --max 6 --min 1 --cpu-percent 60

Check horizontal pod autoscaling policy (HorizontalPodAutoscaler object)

kubectl get hpa

Check pod Events to investigate issues with pod deployment, polling docker image, etc.

Share
Loading...
Leave a comment
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service .
Thank you for your feedback. After moderation, your comment will be published.

Related posts

Stay informed onour latest news
Subcribing to our blog you agree with ourPrivacy Policy
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service .
HOW CAN WE HELP YOU?

HOW CAN WE HELP YOU?

We will get in touch with you within 24 business hours
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service .
About us
CONTACT US:
321 328 8379
© Copyright - Sirin Software.
All Rights Reserved.
Privacy Policy

Sirin Software is updating its Privacy Policy on Jan 01, 2020. See the updated Privacy Policy here.

We use cookies to improve your experience with our site, including analytics and personalisation. By continuing to use the service, you agree to our use of cookies as described in the Privacy Policy