SlideShare a Scribd company logo
1 of 18
Google Kubernetes Engine (GKE)
Topics we will be covering in the presentation are:
• What is GKE
• Why GKE is different from other cloud
• How to implement an application in GKE (A Demo)
• CI CD implémentation on GKE
1. What is GKE?
Google Kubernetes Engine (GKE) is a management and orchestration system for Docker
container and container clusters that run within Google's public cloud services.
Google Kubernetes Engine is based on Kubernetes, Google's open source container
management system.
We use Google Kubernetes commands and resources to deploy and manage your
applications, perform administration tasks and set policies, and monitor the health of your
deployed workloads.
Some main features of GKE :
 Create or resize Docker container clusters
 Create container pods, replication controllers, jobs, services or load balancers
 Update and upgrade container clusters
 Automatic scaling of your cluster's node instance count
2. Why GKE is different from other cloud
 Differences on the basis of below parameters
GKE AKS EKS
Scalability GKE provide the ability to add
different ‘nodepools’ (or
‘nodegroups’) which allows
different machine types to join
the worker pool.
In AKS you can only scale up to
similar nodes.
In GKE addition of a nodepool is a
single step process, in EKS you
need to additionally connect the
new nodepool to the cluster
manually.
Availability GKE provides high availability of
their clusters in two modes: multi-
zonal and regional. In multi-zonal
mode, there is only one master
node but there can be worker
nodes in different zones. In
regional mode, the master nodes
are also spread across all the
zones to provide even better HA.
AKS does not have high availability
for their master nodes, as of date.
The worker nodes are part of
Availability Zones so they provide
HA
EKS also provides HA master and
worker nodes spread across
multiple availability zones very
similar to GKE’s regional mode
Add-ons GKE provides support for Calico as
its network plugin which
enables Network Policies to be
defined for inter-pod
communication
AKS supports Network Policies
through kube-router project which
has to be installed manually
EKS also provides Calico
integration though it has to be
setup manually. Network policies
are crucial for securing the
platform especially in a multi-
tenant environment.
Pricing Short-term (100 hrs)/per
month
40$ 60$ 50$ + 20$* (* master)
.
Application Deployment in GKE
In our demo we are going to deploy a Node.js application
on our GKE cluster. The flow will be like:
 We will take the application source from GitHub.
 We will create a Dockerfile, which will copy all the important libraries and
other important packages used for running the application, with that we will
build a docker image, later which will be used at the time of deployment
 We will create a Deployment.yaml file for deployment purpose
 We will create a Service.yaml file for exposing our application with outer
world.
Fetching the code from GitHub
 Go the GKE cluster that you have created and do
#git clone https://github.com/Piyushkamboj/NodeJS-GKE.git
Front End of Application will look like:
DockerFile
We will Build Image using Docker build command:
#docker build –t (path of dockerfile)
After Successfully creation of Docker image, we will push the image to google container
registry using below command:
#docker tag (source_image) gcr.io/testproject-piyush/nodejsapp:v1
#docker push gcr.io/testproject-piyush/nodejsapp:v1
Note : Instead gcr.io we can also use : us.gcr.io , eu.gcr.io , asia.gcr.io Depends on which location our
registry exist.
Deployment and Service File
 Deployment.yaml  Service.yaml
Creating deployment and exposing the application
We will use the deployment.yaml and service.yaml file we have created earlier
Note: run the below command in the location where above two files are present
#kubectl apply -f deployment.yaml
#kubectl apply -f service.yaml
The Front Page of application on Browser
CI/CD implementation on GKE
We will learn how to create CI/CD pipeline and thus deploying the build(Docker
image) on Google k8s cluster.
The steps in whole process would be:
 Creating a Dockerfile which will include all the libraries and dependencies to run the application
in dockerised form. The Dockerfile must be in the root directory of application.
 Creating Deployment.yaml and service.yaml file. It will includes the steps of our deployment and
exposure of created image on k8s cluster
 Creating a cloudbuild.yaml file, the cloudbuild.yaml file will perform the complete task.
 Setting up IAM for cloud builder so that it has permissions to deploy the images in GKE.
 Setup build trigger.
Creation of Dockerfile and Deployment.yaml File
As we have created Docker and deployment file earlier so we will just push both of
the file to the source code repository (GitHub) and we will synch google cloud
source repository with GitHub
Create Cloudbuild.yaml file
Cloudbuild.yaml file with the help of Build trigger will automate
everything which we were doing manually. From creating a docker file
to deploying it to the GKE cluster.
Set up IAM
 We will setup IAM for cloud builder so that it has permissions to deploy the images in
GKE.
To do this, navigate to IAM & Admin →IAM on the side menu.
Here, you would see an entry in the format :-
“<project-number>@cloudbuild.gserviceaccount.com”
with the role, Cloud Build Service Account. Edit the role and add Kubernetes Engine
Admin role to it as well.
Setup Build Trigger
In the Cloudbuild section there is one option to setup build trigger by clicking it we
have to fill some details as below
Run the created Trigger
After running check the history in cloudbuild section

More Related Content

What's hot

Kubernetes best practices.odf
Kubernetes best practices.odfKubernetes best practices.odf
Kubernetes best practices.odfAkash Agrawal
 
Google container engine (GKE)
Google container engine (GKE)Google container engine (GKE)
Google container engine (GKE)Md. Sadhan Sarker
 
Introduction to Kubernetes and Google Container Engine (GKE)
Introduction to Kubernetes and Google Container Engine (GKE)Introduction to Kubernetes and Google Container Engine (GKE)
Introduction to Kubernetes and Google Container Engine (GKE)Opsta
 
Azure kubernetes service (aks)
Azure kubernetes service (aks)Azure kubernetes service (aks)
Azure kubernetes service (aks)Akash Agrawal
 
GKE Tip Series - Usage Metering
GKE Tip Series -  Usage MeteringGKE Tip Series -  Usage Metering
GKE Tip Series - Usage MeteringSreenivas Makam
 
CD, docker and kubernetes
CD, docker and  kubernetesCD, docker and  kubernetes
CD, docker and kubernetesMartin Podval
 
GCP CloudRun Overview
GCP CloudRun OverviewGCP CloudRun Overview
GCP CloudRun OverviewOliver Fierro
 
Introduction of Kubernetes - Trang Nguyen
Introduction of Kubernetes - Trang NguyenIntroduction of Kubernetes - Trang Nguyen
Introduction of Kubernetes - Trang NguyenTrang Nguyen
 
Dynamic management of kubernetes
Dynamic management of kubernetesDynamic management of kubernetes
Dynamic management of kubernetesMartin Podval
 
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...Edureka!
 
Google Cloud Computing compares GCE, GAE and GKE
Google Cloud Computing compares GCE, GAE and GKEGoogle Cloud Computing compares GCE, GAE and GKE
Google Cloud Computing compares GCE, GAE and GKESimon Su
 
Introduction to Serverless and Google Cloud Functions
Introduction to Serverless and Google Cloud FunctionsIntroduction to Serverless and Google Cloud Functions
Introduction to Serverless and Google Cloud FunctionsMalepati Bala Siva Sai Akhil
 
Going Serverless with Kubeless In Google Container Engine (GKE)
Going Serverless with Kubeless In Google Container Engine (GKE)Going Serverless with Kubeless In Google Container Engine (GKE)
Going Serverless with Kubeless In Google Container Engine (GKE)Bitnami
 
Dockerize Your Project - GDGBogor
Dockerize Your Project - GDGBogorDockerize Your Project - GDGBogor
Dockerize Your Project - GDGBogorImre Nagi
 
Building Resilient Cloud Native Apps in GKE
Building Resilient Cloud Native Apps in GKEBuilding Resilient Cloud Native Apps in GKE
Building Resilient Cloud Native Apps in GKEJerry Jalava
 
Intro to Helm for Kubernetes
Intro to Helm for KubernetesIntro to Helm for Kubernetes
Intro to Helm for KubernetesCarlos E. Salazar
 
Tooling Matters - Development tools
Tooling Matters - Development toolsTooling Matters - Development tools
Tooling Matters - Development toolsSimon Dittlmann
 

What's hot (20)

Kubernetes best practices.odf
Kubernetes best practices.odfKubernetes best practices.odf
Kubernetes best practices.odf
 
Google container engine (GKE)
Google container engine (GKE)Google container engine (GKE)
Google container engine (GKE)
 
Introduction to Kubernetes and Google Container Engine (GKE)
Introduction to Kubernetes and Google Container Engine (GKE)Introduction to Kubernetes and Google Container Engine (GKE)
Introduction to Kubernetes and Google Container Engine (GKE)
 
Azure kubernetes service (aks)
Azure kubernetes service (aks)Azure kubernetes service (aks)
Azure kubernetes service (aks)
 
GKE Tip Series - Usage Metering
GKE Tip Series -  Usage MeteringGKE Tip Series -  Usage Metering
GKE Tip Series - Usage Metering
 
CD, docker and kubernetes
CD, docker and  kubernetesCD, docker and  kubernetes
CD, docker and kubernetes
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
GCP CloudRun Overview
GCP CloudRun OverviewGCP CloudRun Overview
GCP CloudRun Overview
 
Introduction of Kubernetes - Trang Nguyen
Introduction of Kubernetes - Trang NguyenIntroduction of Kubernetes - Trang Nguyen
Introduction of Kubernetes - Trang Nguyen
 
Dynamic management of kubernetes
Dynamic management of kubernetesDynamic management of kubernetes
Dynamic management of kubernetes
 
Swarm migration
Swarm migrationSwarm migration
Swarm migration
 
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...
Kubernetes Deployment Tutorial | Kubernetes Tutorial For Beginners | Kubernet...
 
Google Cloud Computing compares GCE, GAE and GKE
Google Cloud Computing compares GCE, GAE and GKEGoogle Cloud Computing compares GCE, GAE and GKE
Google Cloud Computing compares GCE, GAE and GKE
 
Knative Intro
Knative IntroKnative Intro
Knative Intro
 
Introduction to Serverless and Google Cloud Functions
Introduction to Serverless and Google Cloud FunctionsIntroduction to Serverless and Google Cloud Functions
Introduction to Serverless and Google Cloud Functions
 
Going Serverless with Kubeless In Google Container Engine (GKE)
Going Serverless with Kubeless In Google Container Engine (GKE)Going Serverless with Kubeless In Google Container Engine (GKE)
Going Serverless with Kubeless In Google Container Engine (GKE)
 
Dockerize Your Project - GDGBogor
Dockerize Your Project - GDGBogorDockerize Your Project - GDGBogor
Dockerize Your Project - GDGBogor
 
Building Resilient Cloud Native Apps in GKE
Building Resilient Cloud Native Apps in GKEBuilding Resilient Cloud Native Apps in GKE
Building Resilient Cloud Native Apps in GKE
 
Intro to Helm for Kubernetes
Intro to Helm for KubernetesIntro to Helm for Kubernetes
Intro to Helm for Kubernetes
 
Tooling Matters - Development tools
Tooling Matters - Development toolsTooling Matters - Development tools
Tooling Matters - Development tools
 

Similar to Google kubernetes Engine with Google CI/CD Implementation

Dockerized .Net Core based app services in azure K8s
Dockerized .Net Core based app services in azure K8s Dockerized .Net Core based app services in azure K8s
Dockerized .Net Core based app services in azure K8s Ranjeet Bhargava
 
Serverless Container with Source2Image
Serverless Container with Source2ImageServerless Container with Source2Image
Serverless Container with Source2ImageQAware GmbH
 
Serverless containers … with source-to-image
Serverless containers  … with source-to-imageServerless containers  … with source-to-image
Serverless containers … with source-to-imageJosef Adersberger
 
Run K8s on Local Environment
Run K8s on Local EnvironmentRun K8s on Local Environment
Run K8s on Local EnvironmentGanesh Pol
 
Deploy the blockchain network using kubernetes ap is on google cloud
Deploy the blockchain network using kubernetes ap is on google cloudDeploy the blockchain network using kubernetes ap is on google cloud
Deploy the blockchain network using kubernetes ap is on google cloudAjeet Singh
 
Rome .NET Conference 2024 - Remote Conference
Rome .NET Conference 2024  - Remote ConferenceRome .NET Conference 2024  - Remote Conference
Rome .NET Conference 2024 - Remote ConferenceHamida Rebai Trabelsi
 
Pragmatic software development in kdb+
Pragmatic software development in kdb+Pragmatic software development in kdb+
Pragmatic software development in kdb+Ajay Rathore
 
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...Oleg Shalygin
 
Build containerized application using Docker and Azure.pdf
Build containerized application using Docker and Azure.pdfBuild containerized application using Docker and Azure.pdf
Build containerized application using Docker and Azure.pdfHamida Rebai Trabelsi
 
Deploy With Codefresh to Kubernetes in 3 steps
Deploy With Codefresh to Kubernetes in 3 stepsDeploy With Codefresh to Kubernetes in 3 steps
Deploy With Codefresh to Kubernetes in 3 stepsJenny Passi
 
CI/CD Development in Kubernetes - Skaffold
CI/CD Development in Kubernetes -  SkaffoldCI/CD Development in Kubernetes -  Skaffold
CI/CD Development in Kubernetes - SkaffoldSuman Chakraborty
 
Kochi Mulesoft Meetup #11 - Runtime Fabric on Google Kubernetes Engine (GKE)
Kochi Mulesoft Meetup #11 - Runtime Fabric on Google Kubernetes Engine (GKE)Kochi Mulesoft Meetup #11 - Runtime Fabric on Google Kubernetes Engine (GKE)
Kochi Mulesoft Meetup #11 - Runtime Fabric on Google Kubernetes Engine (GKE)sumitahuja94
 
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...Michael Hofmann
 
CI/CD Development in Kubernetes - Skaffold
CI/CD Development in Kubernetes -  SkaffoldCI/CD Development in Kubernetes -  Skaffold
CI/CD Development in Kubernetes - SkaffoldSuman Chakraborty
 
Mete Atamel "Resilient microservices with kubernetes"
Mete Atamel "Resilient microservices with kubernetes"Mete Atamel "Resilient microservices with kubernetes"
Mete Atamel "Resilient microservices with kubernetes"IT Event
 
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB201904_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019Kumton Suttiraksiri
 

Similar to Google kubernetes Engine with Google CI/CD Implementation (20)

Dockerized .Net Core based app services in azure K8s
Dockerized .Net Core based app services in azure K8s Dockerized .Net Core based app services in azure K8s
Dockerized .Net Core based app services in azure K8s
 
Serverless Container with Source2Image
Serverless Container with Source2ImageServerless Container with Source2Image
Serverless Container with Source2Image
 
Serverless containers … with source-to-image
Serverless containers  … with source-to-imageServerless containers  … with source-to-image
Serverless containers … with source-to-image
 
Run K8s on Local Environment
Run K8s on Local EnvironmentRun K8s on Local Environment
Run K8s on Local Environment
 
Deploy the blockchain network using kubernetes ap is on google cloud
Deploy the blockchain network using kubernetes ap is on google cloudDeploy the blockchain network using kubernetes ap is on google cloud
Deploy the blockchain network using kubernetes ap is on google cloud
 
Rome .NET Conference 2024 - Remote Conference
Rome .NET Conference 2024  - Remote ConferenceRome .NET Conference 2024  - Remote Conference
Rome .NET Conference 2024 - Remote Conference
 
My kubernetes toolkit
My kubernetes toolkitMy kubernetes toolkit
My kubernetes toolkit
 
Pragmatic software development in kdb+
Pragmatic software development in kdb+Pragmatic software development in kdb+
Pragmatic software development in kdb+
 
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
GCP - Continuous Integration and Delivery into Kubernetes with GitHub, Travis...
 
Build containerized application using Docker and Azure.pdf
Build containerized application using Docker and Azure.pdfBuild containerized application using Docker and Azure.pdf
Build containerized application using Docker and Azure.pdf
 
Deploy With Codefresh to Kubernetes in 3 steps
Deploy With Codefresh to Kubernetes in 3 stepsDeploy With Codefresh to Kubernetes in 3 steps
Deploy With Codefresh to Kubernetes in 3 steps
 
CI/CD Development in Kubernetes - Skaffold
CI/CD Development in Kubernetes -  SkaffoldCI/CD Development in Kubernetes -  Skaffold
CI/CD Development in Kubernetes - Skaffold
 
Cicd.pdf
Cicd.pdfCicd.pdf
Cicd.pdf
 
Kochi Mulesoft Meetup #11 - Runtime Fabric on Google Kubernetes Engine (GKE)
Kochi Mulesoft Meetup #11 - Runtime Fabric on Google Kubernetes Engine (GKE)Kochi Mulesoft Meetup #11 - Runtime Fabric on Google Kubernetes Engine (GKE)
Kochi Mulesoft Meetup #11 - Runtime Fabric on Google Kubernetes Engine (GKE)
 
A battle tested CI/CD Pipeline
A battle tested CI/CD PipelineA battle tested CI/CD Pipeline
A battle tested CI/CD Pipeline
 
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
 
CI/CD Development in Kubernetes - Skaffold
CI/CD Development in Kubernetes -  SkaffoldCI/CD Development in Kubernetes -  Skaffold
CI/CD Development in Kubernetes - Skaffold
 
Mete Atamel "Resilient microservices with kubernetes"
Mete Atamel "Resilient microservices with kubernetes"Mete Atamel "Resilient microservices with kubernetes"
Mete Atamel "Resilient microservices with kubernetes"
 
Overview of Docker
Overview of DockerOverview of Docker
Overview of Docker
 
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB201904_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
 

Recently uploaded

My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 

Recently uploaded (20)

My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 

Google kubernetes Engine with Google CI/CD Implementation

  • 1. Google Kubernetes Engine (GKE) Topics we will be covering in the presentation are: • What is GKE • Why GKE is different from other cloud • How to implement an application in GKE (A Demo) • CI CD implémentation on GKE
  • 2. 1. What is GKE? Google Kubernetes Engine (GKE) is a management and orchestration system for Docker container and container clusters that run within Google's public cloud services. Google Kubernetes Engine is based on Kubernetes, Google's open source container management system. We use Google Kubernetes commands and resources to deploy and manage your applications, perform administration tasks and set policies, and monitor the health of your deployed workloads. Some main features of GKE :  Create or resize Docker container clusters  Create container pods, replication controllers, jobs, services or load balancers  Update and upgrade container clusters  Automatic scaling of your cluster's node instance count
  • 3. 2. Why GKE is different from other cloud  Differences on the basis of below parameters GKE AKS EKS Scalability GKE provide the ability to add different ‘nodepools’ (or ‘nodegroups’) which allows different machine types to join the worker pool. In AKS you can only scale up to similar nodes. In GKE addition of a nodepool is a single step process, in EKS you need to additionally connect the new nodepool to the cluster manually. Availability GKE provides high availability of their clusters in two modes: multi- zonal and regional. In multi-zonal mode, there is only one master node but there can be worker nodes in different zones. In regional mode, the master nodes are also spread across all the zones to provide even better HA. AKS does not have high availability for their master nodes, as of date. The worker nodes are part of Availability Zones so they provide HA EKS also provides HA master and worker nodes spread across multiple availability zones very similar to GKE’s regional mode Add-ons GKE provides support for Calico as its network plugin which enables Network Policies to be defined for inter-pod communication AKS supports Network Policies through kube-router project which has to be installed manually EKS also provides Calico integration though it has to be setup manually. Network policies are crucial for securing the platform especially in a multi- tenant environment. Pricing Short-term (100 hrs)/per month 40$ 60$ 50$ + 20$* (* master)
  • 4. .
  • 5. Application Deployment in GKE In our demo we are going to deploy a Node.js application on our GKE cluster. The flow will be like:  We will take the application source from GitHub.  We will create a Dockerfile, which will copy all the important libraries and other important packages used for running the application, with that we will build a docker image, later which will be used at the time of deployment  We will create a Deployment.yaml file for deployment purpose  We will create a Service.yaml file for exposing our application with outer world.
  • 6. Fetching the code from GitHub  Go the GKE cluster that you have created and do #git clone https://github.com/Piyushkamboj/NodeJS-GKE.git Front End of Application will look like:
  • 7. DockerFile We will Build Image using Docker build command: #docker build –t (path of dockerfile) After Successfully creation of Docker image, we will push the image to google container registry using below command: #docker tag (source_image) gcr.io/testproject-piyush/nodejsapp:v1 #docker push gcr.io/testproject-piyush/nodejsapp:v1 Note : Instead gcr.io we can also use : us.gcr.io , eu.gcr.io , asia.gcr.io Depends on which location our registry exist.
  • 8. Deployment and Service File  Deployment.yaml  Service.yaml
  • 9. Creating deployment and exposing the application We will use the deployment.yaml and service.yaml file we have created earlier Note: run the below command in the location where above two files are present #kubectl apply -f deployment.yaml #kubectl apply -f service.yaml
  • 10. The Front Page of application on Browser
  • 11. CI/CD implementation on GKE We will learn how to create CI/CD pipeline and thus deploying the build(Docker image) on Google k8s cluster. The steps in whole process would be:  Creating a Dockerfile which will include all the libraries and dependencies to run the application in dockerised form. The Dockerfile must be in the root directory of application.  Creating Deployment.yaml and service.yaml file. It will includes the steps of our deployment and exposure of created image on k8s cluster  Creating a cloudbuild.yaml file, the cloudbuild.yaml file will perform the complete task.  Setting up IAM for cloud builder so that it has permissions to deploy the images in GKE.  Setup build trigger.
  • 12. Creation of Dockerfile and Deployment.yaml File As we have created Docker and deployment file earlier so we will just push both of the file to the source code repository (GitHub) and we will synch google cloud source repository with GitHub
  • 13. Create Cloudbuild.yaml file Cloudbuild.yaml file with the help of Build trigger will automate everything which we were doing manually. From creating a docker file to deploying it to the GKE cluster.
  • 14.
  • 15.
  • 16. Set up IAM  We will setup IAM for cloud builder so that it has permissions to deploy the images in GKE. To do this, navigate to IAM & Admin →IAM on the side menu. Here, you would see an entry in the format :- “<project-number>@cloudbuild.gserviceaccount.com” with the role, Cloud Build Service Account. Edit the role and add Kubernetes Engine Admin role to it as well.
  • 17. Setup Build Trigger In the Cloudbuild section there is one option to setup build trigger by clicking it we have to fill some details as below
  • 18. Run the created Trigger After running check the history in cloudbuild section