How To Deploy Applications To GKE Kubernetes Cluster

 In this blog post, I will show you how to deploy a containerized application to a GKE Kubernetes cluster on Google Cloud Platform.

This post, follow up from the previous post, where I deployed a GKE cluster.

Google Kubernetes Service (GKE)

GCP flagship Kubernetes service is called GKE, and it allows us to deploy a managed Kubernetes cluster inside GCP infrastructure.

Our management domain in the Cluster allows us to deploy, workloads, nodes, storage and pods.

Google’s management domain involves managing the underlying infrastructure, and the Kubernetes master nodes also are known as a control plane.

Install Kubectl command-line tool

To deploy apps to GKE, we need to use the Kubectl command-line tool, which allows us to deploy and manage deployment on our Kubernetes cluster.

Make sure you have Cloud SDK installed on your machine before running the below command if you don’t have installed, please install it using my previous post.

If you are using Cloud Shell, you need to run the command below.

gcloud components install kubectl

Set Project

After installing Kubectl, I will set my project using the following command; in this project, I have my GKE cluster.

gcloud config set project ntweekly
	

Deploy Application

To deploy an app to my Cluster, I will use the YAML file below.

kubectl apply -f deploy.yaml 

apiVersion: apps/v1
kind: Deployment
metadata:
  name: webserver
spec:
  replicas: 2
  selector:
    matchLabels:
      run: webserver
  template:
    metadata:
      labels:
        run: webserver
    spec:
      containers:
      - name: webserver
        image: nginx
        ports:
          - containerPort: 80

Deploy Create

We can also use the following command to deploy applications to Kubernetes.

kubectl create deployment webserer2 –image=nginx

Expose Deployment

In the last step, I will expose the deployment to the internet and make it accessible from everywhere.

To do so, I will use the following command to expose the deployment.

kubectl expose deployment webserver –type=LoadBalancer –port=80

To view the external IP address of the deployment, I will use the following command.

kubectl get service webserver

If I open my browser with the external IP address, I will see the nginx web page.

Kubernetes Engine Console

Back to the GKE console, If I click on Workloads, I will see my deployments and external IP address to access them over the internet.

Delete Service

To delete the service, I will run the following command.

kubectl delete service webserver 

Processing…
Success! You're on the list.