From 30faeb07d9d7b571b7c51d5082f476b2cbb863da Mon Sep 17 00:00:00 2001 From: Hiiruki Date: Thu, 7 Sep 2023 08:16:56 +0700 Subject: [PATCH] writeups/google-cloudskillsboost: [GSP305] Scale Out and Update a Containerized Application on a Kubernetes Cluster --- .../GSP305/images/bucket.webp | Bin 0 -> 12064 bytes .../GSP305/images/kubernetes_cluster.webp | Bin 0 -> 15282 bytes .../google-cloudskillsboost/GSP305/index.md | 139 ++++++++++++++++++ 3 files changed, 139 insertions(+) create mode 100644 content/writeups/google-cloudskillsboost/GSP305/images/bucket.webp create mode 100644 content/writeups/google-cloudskillsboost/GSP305/images/kubernetes_cluster.webp create mode 100644 content/writeups/google-cloudskillsboost/GSP305/index.md diff --git a/content/writeups/google-cloudskillsboost/GSP305/images/bucket.webp b/content/writeups/google-cloudskillsboost/GSP305/images/bucket.webp new file mode 100644 index 0000000000000000000000000000000000000000..c586fe5f7634c3d63a88d4b570a1885f38b7759a GIT binary patch literal 12064 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 Q*#aCu>#xxIAD88S0p8E%txZogaC?s4bZqU<)wh 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" # image path/url + alt: "" # alt text + caption: "" # display caption under cover + relative: false # when using page bundles set this to true + hidden: true # only hide on current single page +# editPost: +# URL: "https://github.com/hiiruki/hiiruki.dev/blob/main/content/writeups/google-cloudskillsboost/GSP304/index.md" +# Text: "Suggest Changes" # edit text +# appendFilePath: true # to append file path to Edit link +--- + +### GSP305 + +![Lab Banner](https://cdn.qwiklabs.com/GMOHykaqmlTHiqEeQXTySaMXYPHeIvaqa2qHEzw6Occ%3D#center) + +--- + +- Time: 1 hour
+- Difficulty: Intermediate
+- Price: 5 Credits + +Lab: [GSP305](https://www.cloudskillsboost.google/focuses/1739?parent=catalog)
+Quest: [Cloud Architecture: Design, Implement, and Manage](https://www.cloudskillsboost.google/quests/124)
+ +🔄 Last updated: Sep 7, 2023 + +--- + +## Challenge scenario + +You are taking over ownership of a test environment and have been given an updated version of a containerized test application to deploy. Your systems' architecture team has started adopting a containerized microservice architecture. You are responsible for managing the containerized test web applications. You will first deploy the initial version of a test application, called `echo-app` to a Kubernetes cluster called `echo-cluster` in a deployment called `echo-web`. + +Before you get started, open the navigation menu and select **Cloud Storage**. The last steps in the Deployment Manager script used to set up your environment creates a bucket. + +Refresh the Storage browser until you see your bucket. You can move on once your Console resembles the following: + +![bucket](./images/bucket.webp#center) + +Check to make sure your GKE cluster has been created before continuing. Open the navigation menu and select **Kubernetes Engine** > **Clusters**. + +Continue when you see a green checkmark next to `echo-cluster`: + +![kubernetes cluster](./images/kubernetes_cluster.webp#center) + +To deploy your first version of the application, run the following commands in Cloud Shell to get up and running: + +```bash +gcloud container clusters get-credentials echo-cluster --zone=us-central1-a +``` + +```bash +kubectl create deployment echo-web --image=gcr.io/qwiklabs-resources/echo-app:v1 +``` + +```bash +kubectl expose deployment echo-web --type=LoadBalancer --port 80 --target-port 8000 +``` + +## Your challenge + +You need to update the running `echo-app` application in the `echo-web` deployment from the v1 to the v2 code you have been provided. You must also scale out the application to 2 instances and confirm that they are all running. + +1. Check that there is a tagged image in gcr.io for echo-app:v2. + + ```bash + mkdir echo-web + cd echo-web + gsutil cp -r gs://$DEVSHELL_PROJECT_ID/echo-web-v2.tar.gz . + tar -xzf echo-web-v2.tar.gz + rm echo-web-v2.tar.gz + docker build -t echo-app:v2 . + docker tag echo-app:v2 gcr.io/$DEVSHELL_PROJECT_ID/echo-app:v2 + docker push gcr.io/$DEVSHELL_PROJECT_ID/echo-app:v2 + ``` + +2. Echo-app:v2 is running on the Kubernetes cluster. + + Deploy the first version of the application. + + ```bash + gcloud container clusters get-credentials echo-cluster --zone=us-central1-a + kubectl create deployment echo-web --image=gcr.io/qwiklabs-resources/echo-app:v1 + kubectl expose deployment echo-web --type=LoadBalancer --port 80 --target-port 8000 + ``` + + Edit the `deployment.apps` file. + + ```bash + kubectl edit deploy echo-web + ``` + + Start the editor by type `i`. Change `image=...:v1` to `image=...:v2`. + + `image=gcr.io/qwiklabs-resources/echo-app:v2` + + Save the `deployment.apps` file, hit **ESC** then type `:wq` and **Enter**. + +3. The Kubernetes cluster deployment reports 2 replicas. + + ```bash + kubectl scale deployment echo-web --replicas=2 + ``` + +4. The application must respond to web requests with V2.0.0. + + ```bash + kubectl expose deployment echo-web --type=LoadBalancer --port 80 --target-port 8000 + + kubectl get svc + ``` + +## Congratulations!