Google Cloud Platform (GCP), offered by Google, is a suite of cloud computing services that runs on the same infrastructure that Google uses internally for its end-user products, such as Google Search, Gmail, file storage, and YouTube. Alongside a set of management tools, it provides a series of modular cloud services including computing, data storage, data analytics and machine learning.
Google Cloud Platform is essentially a public cloud-based machine whose services are delivered to customers on an as-you-go basis, by way of service components.
Creation of a Project:
You can easily create a project in GCP, using WebUI as well as CLI. A project consists of a set of users; a set of APIs; and billing, authentication, and monitoring settings for those APIs.
Using CLI, we can create project as:
$gcloud projects create <Project ID> — name <Project Name>
After creating Project, You will have to Setup a Billing Account for the same.
Creation of VPC in GCP:
VPC(Virtual Private Cloud) is an on-demand configurable pool of shared computing resources allocated within a public cloud environment, providing a certain level of isolation between the different organizations (denoted as users hereafter) using the resources. It enables us to launch resources into a virtual network that you’ve defined. This virtual network closely resembles a traditional network that you’d operate in your own data center, with the benefits of using the scalable infrastructure of GCP. VPC provide us border , which isolate us from outside .
Creation of VPC Peering:
Google Cloud VPC Network Peering allows internal IP address connectivity across two Virtual Private Cloud (VPC) networks regardless of whether they belong to the same project or the same organization.
VPC Network Peering enables you to connect VPC networks so that workloads in different VPC networks can communicate internally. Traffic stays within Google’s network and doesn’t traverse the public internet.
Note: You will have to create VPC Peering for Both Zones, i.e. USA and Singapore. Status is Inactive Till another VPC Peering is not Created in. As soon as, VPC Peering is created, They Become Active.
Google Cloud SDK Setup:
It’s the Gcloud command line tool. The gcloud CLI manages authentication, local configuration, developer workflow, interactions with Google Cloud APIs. With the gcloud command-line tool, it’s easy to perform many common cloud tasks. It includes Client Libraries, gsutil, bq, kubectl, Cloud Shell, Emulators etc.
Creation of Firewall Rule:
A Firewall is the Defense Mechanism which prevents the access of Outer Network Entities. For Creating a Web Server, we will have to change the firewall rule to allow traffic from Port Number: 80.
Creation of Kubernetes Cluster:
Creation of Cluster using CLI:
Kubernetes have a inbuilt capacity to keep on watching a container (POD) . As soon as, OS goes down or fails they automatically launch another OS . Kubernetes manages docker and having a feature of Load Balancing and Service Discovery. Kubernetes is an open-source container-orchestration system for automating application deployment, scaling, and management. Kubernetes is used to manage the complete Infrastructure because kubernetes is good in launching the container in a second and also manages the container automatically. A pod is a collection of containers and its storage inside a node of Kubernetes cluster .
Creation of MySQL Database:
Here, We created a MySQL DataBase in other zone to connect it with our Kuberenetes Cluster. So that they can work together.
Now, The Task is to Deploy an Application using App Engine with the Integration of K8S Cluster and MySQL DB.
(I couldn’t complete it as I was not having complete GCP account but using Qwiklabs to complete the task, So I couldn’t integrate the two instances.)
But I did followed everything in Command Line $gcloud too. and Launched Nginx and a Cluster separately without Integration.
Creation of another VM instance for this;
This is how I launched with some SSH commands and queries, I forgot to take screenshot :(
After this I launched the Cluster Application:
At last, I tried something different, using Network LoadBalancing and HTTP LoadBalancing, I deployed two application in single project with different instances.
This is How I completed the task given by Mr. Vimal Daga sir, By making some changes, due to unavailability of resources. But I did complete all the tasks assigned by him individually and with Integration in One Project itself.
Feel free to give your Feedback or ask any Query/Doubt you have: