Join our Discord Server
Abraham Dahunsi Web Developer 🌐 | Technical Writer ✍️| DevOps Enthusiast👨‍💻 | Python🐍 |

How to Integrate Kubernetes with Google Cloud Platform(GCP)

2 min read

Introduction

Google Kubernetes Engine (GKE) is Google’s managed Kubernetes service that simplifies deploying, managing, and scaling containerized applications. It is highly integrated with Google Cloud services, leveraging features such as autoscaling, workload security, and efficient storage. In this tutorial, we will guide you through the process of integrating Kubernetes with Google Cloud Platform (GCP), focusing on creating and managing clusters with GKE.

Prerequisites

Before starting, ensure you have the following:

  1. Google Cloud Account: You need a Google Cloud account to access Google Cloud Platform.
  2. gcloud SDK: This command-line tool is required to manage GCP resources. Install it on your local machine if it’s not already installed.
  3. kubectl: The Kubernetes command-line tool for managing clusters and resources.
  4. Billing Enabled: Ensure billing is enabled on your GCP project.

Step 1: Set Up Google Cloud SDK and Authenticate

Install Google Cloud SDK

If you don’t have the Google Cloud SDK installed, follow these steps:

Initialize the SDK:

gcloud init

Authenticate your Google Cloud account using:

gcloud auth login

Set the Default Project

After authentication, set the project where your GKE clusters will be created:

gcloud config set project PROJECT_ID

Replace PROJECT_ID with your actual project ID.

Step 2: Create a GKE Cluster

Enable the Required APIs

To manage GKE clusters, you must enable the Kubernetes Engine API and Compute Engine API:

gcloud services enable container.googleapis.com compute.googleapis.com

Create the Cluster

Now, create a GKE cluster. GKE allows you to create clusters in either Standard or Autopilot mode. We will focus on the Standard mode:

gcloud container clusters create my-cluster --zone us-central1-a

Here, my-cluster is the cluster name, and us-central1-a is the zone where the cluster will be created. You can choose a different zone based on your requirements.

Get Cluster Credentials

To manage your newly created cluster, fetch the credentials:

gcloud container clusters get-credentials my-cluster --zone us-central1-a

This command configures kubectl to interact with your GKE cluster.

Step 3: Deploy a Containerized Application

Deploy an Application Using kubectl

Now that your cluster is ready, deploy a simple containerized application. For this tutorial, we’ll deploy Nginx as an example:

kubectl create deployment nginx --image=nginx

Expose the Deployment

Expose the Nginx deployment as a service to make it accessible:

kubectl expose deployment nginx --type=LoadBalancer --port 80

This command creates a load balancer to expose the Nginx service to the internet. To get the external IP of the service:

kubectl get services

The external IP will take a few minutes to provision. Once available, you can visit the IP in your browser to see the Nginx default page.

Step 4: Set Up Autoscaling

Enable Autoscaling

One of the key features of GKE is autoscaling. To enable horizontal pod autoscaling, execute the following command:

kubectl autoscale deployment nginx --cpu-percent=80 --min=1 --max=5

This command configures autoscaling to adjust the number of pods based on CPU utilization, between 1 and 5 replicas, scaling up when CPU usage exceeds 80%.

Step 5: Monitor the Cluster

Use Google Cloud Console

GKE integrates seamlessly with Google Cloud Monitoring, giving you full visibility into your cluster’s health, performance, and usage. Navigate to Google Cloud Console > Kubernetes Engine > Workloads to view cluster details.

You can also monitor logs, performance metrics, and alerts through Google Cloud Operations.

Step 6: Manage Persistent Storage

To manage persistent storage in GKE, you can create Persistent Volumes (PVs) and Persistent Volume Claims (PVCs) for your workloads. Use Google Cloud’s Persistent Disks to provide reliable storage:

kubectl apply -f - <<EOF
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nginx-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
EOF

This creates a 10GB persistent volume for Nginx.

Step 7: Clean Up Resources

When you’re done, avoid unnecessary charges by cleaning up resources:

gcloud container clusters delete my-cluster --zone us-central1-a

This command deletes your GKE cluster and all associated resources.

Conclusion

Integrating Kubernetes with Google Cloud Platform via GKE simplifies container orchestration and management. GKE’s robust features like autoscaling, managed infrastructure, and seamless monitoring enable efficient management of containerized applications. By following this tutorial, you’ve learned how to set up a GKE cluster, deploy an application, enable autoscaling, and manage persistent storage. For further customization and optimizations, refer to the official GKE documentation.

Have Queries? Join https://launchpass.com/collabnix

Abraham Dahunsi Web Developer 🌐 | Technical Writer ✍️| DevOps Enthusiast👨‍💻 | Python🐍 |
Join our Discord Server
Index