
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Create a Service Account for Cloud SQL.
/ 25
Deploy a lightweight GKE application.
/ 25
Connect the GKE application to an external load balancer
/ 25
Verify full read/write capabilities of application to database.
/ 25
Cloud SQL is a fully managed relational database service for MySQL, PostgreSQL, and Microsoft SQL Server that offers many services for common adminstrative tasks such as backups, replication, and logging. You can easily connect your applications to a Cloud SQL instance to leverage these useful services.
In this lab, you first create a Kubernetes cluster and deploy a simple application to that cluster. You then connect the application to a supplied Cloud SQL for PostgreSQL instance and confirm that it is able to write to and read from it.
Read these instructions. Labs are timed and you cannot pause them. The timer, which starts when you click Start Lab, shows how long Google Cloud resources are made available to you.
This hands-on lab lets you do the lab activities in a real cloud environment, not in a simulation or demo environment. It does so by giving you new, temporary credentials you use to sign in and access Google Cloud for the duration of the lab.
To complete this lab, you need:
Click the Start Lab button. If you need to pay for the lab, a dialog opens for you to select your payment method. On the left is the Lab Details pane with the following:
Click Open Google Cloud console (or right-click and select Open Link in Incognito Window if you are running the Chrome browser).
The lab spins up resources, and then opens another tab that shows the Sign in page.
Tip: Arrange the tabs in separate windows, side-by-side.
If necessary, copy the Username below and paste it into the Sign in dialog.
You can also find the Username in the Lab Details pane.
Click Next.
Copy the Password below and paste it into the Welcome dialog.
You can also find the Password in the Lab Details pane.
Click Next.
Click through the subsequent pages:
After a few moments, the Google Cloud console opens in this tab.
Cloud Shell is a virtual machine that is loaded with development tools. It offers a persistent 5GB home directory and runs on the Google Cloud. Cloud Shell provides command-line access to your Google Cloud resources.
Click Activate Cloud Shell at the top of the Google Cloud console.
Click through the following windows:
When you are connected, you are already authenticated, and the project is set to your Project_ID,
gcloud
is the command-line tool for Google Cloud. It comes pre-installed on Cloud Shell and supports tab-completion.
Output:
Output:
gcloud
, in Google Cloud, refer to the gcloud CLI overview guide.
Certain Compute Engine resources live in regions and zones. A region is a specific geographical location where you can run your resources. Each region has one or more zones.
Run the following gcloud commands in Cloud Shell to set the default region and zone for your lab:
To complete this task you must initialize the APIs and create an IAM service account that will be used to allow your application to connect to the Cloud SQL database.
You must enable the required APIs for this lab. You will build and push a container to the Artifact Registry in a later task, so you must enable the Artifact Registry API first.
You need to configure IAM service account credentials for the application that you will deploy later. The service account must be bound to a role that allows it to create and access Cloud SQL databases.
The file will be saved to your home folder in Cloud Shell.
Click Check my progress to verify the objective.
In this task you will create a Kubernetes cluster and deploy a lightweight Google Kubernetes Engine (GKE) application on that cluster. You will configure the application to have access to the supplied Cloud SQL instance.
The application provided is a simple Flask-SQLAlchemy web application called gMemegen. It creates memes by supplying a set of photographs and capturing header and footer text, storing them in the database and rendering the meme to a local folder. It runs on a single pod with two containers; one for the application and one for the Cloud SQL Auth Proxy deployed in the side-car pattern.
A load balancer will marshal requests between the app and the database through the side-car. This load balancer will expose an external Ingress IP address through which you will access the app in your browser.
In this step, you will create a minimal Kubernetes cluster. The cluster will take a couple of minutes to be deployed.
In this step you will create a pair of Kubernetes secrets containing the credentials that are needed to connect to the Cloud SQL instance and database.
Before you can deploy the gMemegen application to your GKE cluster you need to build the container and push it to a repository.
Y
if you are asked for confirmation.For the purposes of this lab, you may ignore the warning about running 'pip' as the 'root' user, although you should note that, in general, especially when working on your local machine, it is best practice to use a virtual environment.
You must modify the Kubernetes deployment manifest for the gMemegen application to point at the correct container and configure the Cloud SQL Auth Proxy side-car with the connection string for the Cloud SQL PostgreSQL instance.
The instructions explain how to edit the file using the Cloud Shell Editor, but if you prefer you can use another editor, such as vi
or nano
, from Cloud Shell for these steps.
On the Cloud Shell menu bar, click Open Editor to open the Cloud Shell Editor.
Navigate the Explorer panel on the left hand side, expanding the gmemegen
folder and then selecting gmemegen_deployment.yaml
to edit the file.
On line 33, in the image
attribute, replace ${REGION}
with ${PROJECT_ID}
with
${REGION}
with ${PROJECT_ID}
with To confirm that the connection name is correct, in the Cloud Console, navigate to Databases > SQL, select the postgres-gmemegen
instance and compare with the Connection name in the Overview pane. A valid connection name is of the format PROJECT_ID:REGION:CLOUD_SQL_INSTANCE_ID
.
Save your changes by selecting File > Save from the Cloud Shell Editor menu.
In the Cloud console click the Open Terminal to re-open Cloud Shell. You may need to resize the Terminal window by dragging down the handle at the centre top of the menu bar, in order to see your Cloud Console window above.
In Cloud Shell, deploy the application by running the following command:
It may take a minute or so for the pods to start up, because they need to pull the image from the repository. Repeat the above command until you see a pod, with 2 containers, with status Running
.
Click Check my progress to verify the objective.
In this task you will create a load balancer to marshal requests between the containers in your GKE pods and access the application using its external IP address from your browser.
In this step you will create a Kubernetes load balancer service that will provide your application with a public IP address.
In this step you will access the gMemegen application from your web browser.
The application has a very simple interface. It launches to the application home page, which displays 6 candidate images for making memes. You can select an image by clicking on it.
The Create Meme page is displayed, where you enter two items of text, to be displayed at the top and bottom of the image. Clicking Submit renders the meme and displays it. The interface provides no navigation from the completed meme page. You will have to use the browser's back button to return to the home page.
There are two other pages, Recent and Random, which display a set of recently generated memes and a random meme, respectively. Generating memes and navigating the UI will generate database activity which you can view in the logs as described below.
Wait for the load balancer to expose an external IP, which you can retrieve as follows:
LoadBalancer Ingress
from the output of:Output:
It will take a minute or so for the LoadBalancer Ingress
attribute to be included in the output (see above), so repeat the command until it is there before performing the next step.
You can create a clickable link to the external IP address of the load balancer in Cloud Shell using the following commands:
Click the link in Cloud Shell and you will see the gMemegen application running in a new tab in your browser.
Create a meme as follows:
Your new meme is displayed.
To create more memes, use the browser's back buttton to navigate to the home page.
To view existing memes, click Recent or Random in the application menu. (Note that Random opens a new browser tab)
In Cloud Shell, view the application’s activity by running the following:
This queries the logs from the gmemegen
container and will display the activity of the application on the pod, including the SQL statements, which are logged to stderr as they are executed.
Click Check my progress to verify the objective.
In this task you will verify that the application is able to write to and read from the database.
In this step you will connect to the Cloud SQL instance by running PL/SQL in Cloud Shell.
In Google Cloud Console, navigate to Databases > SQL and select the postgres-gmemegen
instance.
In the Overview pane , scroll down to Connect to this instance and click the Open Cloud Shell button.
Run the auto-populated command in Cloud Shell.
When prompted, enter the password: supersecret!
At the postgres=>
prompt enter the following command to select the gmemegen_db database:
When prompted, enter the password: supersecret!
At the gmemegen_db=>
prompt enter:
This will display a row for each meme you have generated through the gMemegen app.
Click Check my progress to verify the objective.
In this lab, you configured an application to access a Cloud SQL for PostgreSQL database. You created a Kubernetes cluster and deployed a simple meme generation application to that cluster, as well as connected the application to the supplied Cloud SQL for PostgreSQL database instance and confirmed that it is able to write to and read from it.
...helps you make the most of Google Cloud technologies. Our classes include technical skills and best practices to help you get up to speed quickly and continue your learning journey. We offer fundamental to advanced level training, with on-demand, live, and virtual options to suit your busy schedule. Certifications help you validate and prove your skill and expertise in Google Cloud technologies.
Manual Last Updated April 23, 2024
Lab Last Tested September 20, 2023
Copyright 2025 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.
현재 이 콘텐츠를 이용할 수 없습니다
이용할 수 있게 되면 이메일로 알려드리겠습니다.
감사합니다
이용할 수 있게 되면 이메일로 알려드리겠습니다.
One lab at a time
Confirm to end all existing labs and start this one