Lab setup instructions and requirements
Protect your account and progress. Always use a private browser window and lab credentials to run this lab.

Running SQL Server on Google Kubernetes Engine

Lab 45 minutes universal_currency_alt 5 Credits show_chart Intermediate
info This lab may incorporate AI tools to support your learning.
This content is not yet optimized for mobile devices.
For the best experience, please visit us on a desktop computer using a link sent by email.

Overview

In this lab, you create a Kubernetes cluster in Google Kubernetes Engine (GKE). You configure and deploy a Microsoft SQL Server database into the cluster and connect to it from a client machine.

Objectives

In this lab, you learn how to perform the following tasks:

  • Create a Kubernetes cluster.
  • Configure and deploy SQL Server into the cluster.
  • Connect to the SQL Server database from a client machine.

Setup and requirements

In this task, you perform initialization steps for your lab.

For each lab, you get a new Google Cloud project and set of resources for a fixed time at no cost.

  1. Sign in to Google Skills using an incognito window.

  2. Note the lab's access time (for example, 1:15:00), and make sure you can finish within that time. There is no pause feature. You can restart if needed, but you have to start at the beginning.

  3. When ready, click Start lab.

  4. Note your lab credentials (Username and Password). You will use them to sign in to the Google Cloud Console.

  5. Click Open Google Console.

  6. Click Use another account and copy/paste credentials for this lab into the prompts. If you use other credentials, you'll receive errors or incur charges.

  7. Accept the terms and skip the recovery resource page.

Task 1. Create a Kubernetes cluster

  1. Open a new web browser window and navigate to the Google Cloud Console.

  2. Use the project selector to choose the first project with a leading name of 'qwiklabs-gcp.'

  3. Click Activate Cloud Shell (Activate Cloud Shell icon) in the upper right of the Console.
    The Cloud Shell terminal will open in a pane at the bottom of the window.

  4. To create a Kubernetes cluster, enter the following command:

gcloud container clusters create kubernetes-cluster --zone={{{project_0.default_zone|Zone}}}

It will take a few minutes for the cluster to be ready.

  1. When the cluster is ready, enter the following command to connect to it:
gcloud container clusters get-credentials kubernetes-cluster --zone {{{project_0.default_zone|Zone}}}
  1. To test your connection, enter the following command:
kubectl get nodes

Machines (nodes) that make up the cluster are listed.

Click Check my progress to verify the objective. Create a Kubernetes cluster

Task 2. Configure and deploy SQL Server into the cluster

  1. Clone the following GitHub repository, which has the SQL Server configuration files already created for you:
git clone https://github.com/GoogleCloudPlatform/training-data-analyst
  1. Change to the following folder:
cd ~/training-data-analyst/courses/db-migration/sql-server-on-gke
  1. Click Open Editor, and then select the training-data-analyst/courses/db-migration/sql-server-on-gke folder.

  2. Select the volume-claims.yaml file.
    This file configures three volumes: one for the SQL Server software, one for the data, and one for the transaction logs.

  3. Select the mssql-deployment.yaml file.
    This file configures the SQL Server deployment. On line 18, the Microsoft SQL Server image is specified.

Note: The environment variables start at line 21 and continue through 32. These variables accept the license agreement, set the password for the SA account using a Kubernetes secret, and specify the paths required by the database.

Starting at line 34, the volumes from the previous file are used.
  1. Select the mssql-service.yaml file.
    The service provides access to the database. In this case, the service is type LoadBalancer.
Note: A load balancer will create a public IP address, which makes the database available outside the cluster. If you removed the last line, the service would have only a private IP address, thus making the database available only from within the cluster.
  1. To return to the command line, click Open Terminal.

  2. To create the Kubernetes secret that is used to set the password, enter the following command:

kubectl create secret generic mssql-secrets --from-literal=SA_PASSWORD="Passw0rd!" Note: If the password isn't strong, the deployment will fail when you set the password for the sa account.
  1. To deploy the database, enter the following commands:
kubectl apply -f volume-claims.yaml kubectl apply -f mssql-deployment.yaml kubectl apply -f mssql-service.yaml
  1. Wait a minute for the deployment to succeed, and then type the following command to see whether the database is ready:
kubectl get pods
  1. If the status is Running, continue; otherwise, wait a few seconds and run the previous command again.

  2. To get the IP address of the load balancer, enter the following command:

kubectl get services
  1. If the status of the external IP address of the load balancer is Pending, wait a few seconds and try again; otherwise, copy the external IP address to the clipboard and paste it in a text file. (You will need it later.)

Click Check my progress to verify the objective. Configure and deploy SQL Server into the cluster

Task 3. Connect to the SQL Server database from a client machine

You now create a virtual machine and connect to the SQL Server database running in the GKE cluster.

  1. In the Cloud console, on the Navigation menu (☰), click Compute Engine > VM Instances.

  2. To create a new instance, click Create instance.

  3. On the Machine configuration page, enter the following values:

    • Name: sql-server-client
    • Region:
    • Zone:
  4. Click OS and storage.

    Click Change to begin configuring your boot disk and select the values for:

    • Operating system: Container Optimized OS
    • Version: Accept the default version

    Click on Select.

  5. Once all sections are configured, scroll down and click Create to launch your virtual machine instance.

Click Check my progress to verify the objective. Connect to the SQL Server database from a client machine

  1. When the machine is ready, click SSH to connect to it.
    You now run a Docker container provided by Microsoft that has the SQL client tools already installed.

  2. To start the container in interactive mode, enter the following command:

sudo docker run -it mcr.microsoft.com/mssql-tools

It will take a few seconds for the container to be downloaded and executed.

  1. To connect to your SQL Server database running inside the GKE cluster, enter the following command at the prompt, changing the <IP-address> to your load balancer's IP address:
sqlcmd -S <IP-address> -U sa -P Passw0rd!
  1. Test your connection:
EXEC sp_databases; GO
  1. Exit from the client, close the SSH window, and return to Cloud Shell.

  2. To delete the SQL Server deployment, enter the following commands:

kubectl delete -f mssql-service.yaml kubectl delete -f mssql-deployment.yaml kubectl delete -f volume-claims.yaml kubectl delete secrets/mssql-secrets

Congratulations! You have created a Kubernetes cluster in Google Kubernetes Engine. You configured and deployed a Microsoft SQL Server database into the cluster and connected to it from a client machine.

End your lab

When you have completed your lab, click End Lab. Google Skills removes the resources you’ve used and cleans the account for you.

You will be given an opportunity to rate the lab experience. Select the applicable number of stars, type a comment, and then click Submit.

The number of stars indicates the following:

  • 1 star = Very dissatisfied
  • 2 stars = Dissatisfied
  • 3 stars = Neutral
  • 4 stars = Satisfied
  • 5 stars = Very satisfied

You can close the dialog box if you don't want to provide feedback.

For feedback, suggestions, or corrections, please use the Support tab.

Copyright 2026 Google LLC All rights reserved. Google and the Google logo are trademarks of Google LLC. All other company and product names may be trademarks of the respective companies with which they are associated.

Before you begin

  1. Labs create a Google Cloud project and resources for a fixed time
  2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
  3. On the top left of your screen, click Start lab to begin

Use private browsing

  1. Copy the provided Username and Password for the lab
  2. Click Open console in private mode

Sign in to the Console

  1. Sign in using your lab credentials. Using other credentials might cause errors or incur charges.
  2. Accept the terms, and skip the recovery resource page
  3. Don't click End lab unless you've finished the lab or want to restart it, as it will clear your work and remove the project

This content is not currently available

We will notify you via email when it becomes available

Great!

We will contact you via email if it becomes available

One lab at a time

Confirm to end all existing labs and start this one

Use private browsing to run the lab

Using an Incognito or private browser window is the best way to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.