If you develop applications to run in Google Kubernetes Engine, you can use an IDE and
the Cloud Code plugin to simplify key development tasks, such as
testing and debugging locally and deploying to a test cluster.
Objectives
Learn how to do the following development tasks in Cloud Shell Editor,
an online demonstration IDE:
Create a sample Kubernetes app.
Run, update, and view logs for the app in your development environment.
Deploy the app to a GKE cluster.
You can follow a similar process in your own IDE if you
install Cloud Code.
To follow step-by-step guidance for this task directly in the
Google Cloud console, click Guide me:
To generate a cost estimate based on your projected usage,
use the pricing calculator.
New Google Cloud users might be eligible for a free trial.
When you finish the tasks that are described in this document, you can avoid
continued billing by deleting the resources that you created. For more information, see
Clean up.
In the Google Cloud console, open Cloud Shell
by clicking terminalCloud Shell
in the task bar.
Click Open
Editor.
Wait for Cloud Shell Editor to initialize.
In Cloud Shell Editor, click View > Command Palette.
Search for Cloud Code: New Application and click it.
Select Kubernetes Application, then select Go: Hello World.
Each language framework provides slightly different experiences, and this
tutorial describes the features available for Go.
In the Save dialog, click Create new application.
Cloud Shell Editor reloads and shows your app source files in the Explorer
view.
The app consists of:
A basic go-hello-world web app,
main.go,
that returns a templated "It's running!" response to all received requests.
A Kubernetes Deployment specification,
hello.deployment.yaml.
A Kubernetes Service specification that defines a load balancer for the app,
hello.service.yaml.
A Skaffold file that handles the workflow for
building and deploying the app, skaffold.yaml.
Run the app in your development environment
When possible, run apps in your development environment before deploying
to GKE. This can help you identify any potential issues without
using Google Cloud quota.
To run the app in your Cloud Shell Editor environment:
In Cloud Shell Editor, click Terminal > New Terminal.
Start a cluster by running the following command:
minikubestart
minikube is a lightweight Kubernetes implementation that creates a VM in
your local environment and deploys a simple cluster containing only one node.
It might take a minute to set up the minikube cluster.
If prompted to authorize Cloud Shell to make Cloud API calls,
click Authorize.
After your minikube cluster is set up, a message similar to the following
appears:
Done! kubectl is now configured touse "minikube" cluster...
After minikube is set up, build and run your app:
In the Cloud Shell Editor status bar, click
Cloud
Code.
Select Run on Kubernetes.
If prompted, confirm that you want to use the current minikube context.
Cloud Shell Editor builds your app and deploys it to the minikube cluster.
Watch the deployment status in the
Development
sessions view.
When the deployment is complete, a green check mark appears next to
Portforward URLs. The spinning icon appears next to
Stream Application Logs.
To view your app, look further down the Development sessions
pane and find Port Forward URLs > service.
Hold the pointer over
go-hello-world-external
and click open_in_newOpen URL.
Edit your app
When you change a source file in your app, Cloud Shell Editor automatically
builds and deploys your app to the cluster that you're currently connected to.
In this case, you're connected to your minikube cluster.
To edit and redeploy the app to your local minikube cluster:
Modify your
main.go
file to print "It's redeployed!". The file saves automatically.
Watch the
Development
sessions view as your app is rebuilt and
deployed.
View your redeployed app as you did before:
In the Development sessions
pane, find Port Forward URLs > service.
Hold the pointer over
go-hello-world-external
and click open_in_newOpen URL.
View app logs
In the Cloud Shell Editor menu bar, select View > Command Palette.
Search for Cloud Code: View Logs and click it.
The Logs Viewer opens.
In
Deployment,
select go-hello-world.
This filters the Logs Viewer to only display logs for your go-hello-world app.
Switch to the tab with your app that shows "It's redeployed!" Reload the
page in the browser and then switch back to the Cloud Shell tab.
To view the newly generated logs in the Logs Viewer, click
refreshRefresh.
Deploy your app to a GKE cluster
Add your GKE cluster to the list of clusters you can
deploy to:
In the Kubernetes
view, click addAdd a Cluster to the KubeConfig.
In the Choose a platform dialog, click Google Kubernetes Engine.
If prompted to enable the Google Cloud API, click Yes.
Wait for Cloud Shell Editor to find the clusters in your
Google Cloud project.
In the Create or choose a GKE cluster dialog, select
the name of the cluster you created, hello-world-cluster.
In the Cloud Shell Editor status bar, click
Cloud
Code and select Run on Kubernetes.
When prompted to select a context for your deployment request, choose
Use current context, which is set to your GKE cluster.
In the Choose image repository dialog, select gcr.io/PROJECT_NAME.
Cloud Shell Editor builds your app into a container and stores the container
in the repository you selected.
Watch the
Development
sessions view as your app is rebuilt and
deployed.
To view detailed log messages as your app is being deployed to GKE,
click the Deploy to Cluster node in the Development sessions view.
To view your running app:
Close the view by clicking the Development sessions heading.
Open the Kubernetes
view.
Expand your GKE cluster.
Go to Namespaces > default > Services > go-hello-world-external > External IPs.
Hold the pointer over the IP address and click
open_in_newOpen URL.
You have successfully created and deployed a GKE app from an IDE.
Clean up to avoid billing charges.
If you plan to take additional tutorials, wait until you finish those tutorials
before you clean up. You can use the sample Kubernetes cluster in most
GKE tutorials.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# Deploy and update from an IDE\n\n[Autopilot](/kubernetes-engine/docs/concepts/autopilot-overview)\n\n*** ** * ** ***\n\nIf you develop applications to run in Google Kubernetes Engine, you can use an IDE and the Cloud Code plugin to simplify key development tasks, such as testing and debugging locally and deploying to a test cluster.\n\n\u003cbr /\u003e\n\nObjectives\n----------\n\nLearn how to do the following development tasks in Cloud Shell Editor,\nan online demonstration IDE:\n\n1. Create a sample Kubernetes app.\n\n2. Run, update, and view logs for the app in your development environment.\n\n3. Deploy the app to a GKE cluster.\n\nYou can follow a similar process in your own IDE if you\n[install Cloud Code](/code/docs).\n\n*** ** * ** ***\n\nTo follow step-by-step guidance for this task directly in the\nGoogle Cloud console, click **Guide me**:\n\n[Guide me](https://console.cloud.google.com/freetrial?redirectPath=/kubernetes/list/overview?walkthrough_id=kubernetes--developer-workflow)\n\n*** ** * ** ***\n\nCosts\n-----\n\n\nIn this document, you use the following billable components of Google Cloud:\n\n\n- [GKE](/kubernetes-engine/pricing)\n\n\nTo generate a cost estimate based on your projected usage,\nuse the [pricing calculator](/products/calculator). \nNew Google Cloud users might be eligible for a [free trial](/free). \n\n\u003cbr /\u003e\n\nWhen you finish the tasks that are described in this document, you can avoid\ncontinued billing by deleting the resources that you created. For more information, see\n[Clean up](#clean-up).\n\nBefore you begin\n----------------\n\nCreate a Kubernetes cluster.\n[Create a cluster and deploy a workload](/kubernetes-engine/docs/quickstarts/create-cluster)\nshows you how. \n\nChoose a Google Cloud project and cluster\n-----------------------------------------\n\nWhen you deploy your app to GKE later on in this tutorial, you\nwill need to specify a Google Cloud project and a GKE cluster.\n\n1. Go to the GKE **Clusters** page.\n\n\n [Go to Clusters](https://console.cloud.google.com/kubernetes/list/overview)\n\n \u003cbr /\u003e\n\n2. Choose a project that contains a GKE cluster.\n\n \u003cbr /\u003e\n\n3. Note the name of the project and cluster.\n\n You'll need this information later.\n\nCreate an app in Cloud Shell Editor\n-----------------------------------\n\n1. In the Google Cloud console, open Cloud Shell\n by clicking terminal**Cloud Shell**\n in the task bar.\n\n2. Click\n **Open\n Editor**.\n\n3. Wait for Cloud Shell Editor to initialize.\n\n4. In Cloud Shell Editor, click **View** \\\u003e **Command Palette**.\n\n5. Search for **Cloud Code: New Application** and click it.\n\n6. Select **Kubernetes Application** , then select **Go: Hello World**.\n\n Each language framework provides slightly different experiences, and this\n tutorial describes the features available for Go.\n7. In the Save dialog, click **Create new application**.\n\n Cloud Shell Editor reloads and shows your app source files in the Explorer\n view.\n\nThe app consists of:\n\n- A basic `go-hello-world` web app,\n `main.go`,\n that returns a templated \"It's running!\" response to all received requests.\n\n- A Kubernetes Deployment specification,\n `hello.deployment.yaml`.\n\n- A Kubernetes Service specification that defines a load balancer for the app,\n `hello.service.yaml`.\n\n- A [Skaffold](https://skaffold.dev/) file that handles the workflow for\n building and deploying the app, `skaffold.yaml`.\n\nRun the app in your development environment\n-------------------------------------------\n\nWhen possible, run apps in your development environment before deploying\nto GKE. This can help you identify any potential issues without\nusing Google Cloud quota.\n\nTo run the app in your Cloud Shell Editor environment:\n\n1. In Cloud Shell Editor, click **Terminal** \\\u003e **New Terminal**.\n\n2. Start a cluster by running the following command:\n\n minikube start\n\n *minikube* is a lightweight Kubernetes implementation that creates a VM in\n your local environment and deploys a simple cluster containing only one node.\n\n It might take a minute to set up the minikube cluster.\n3. If prompted to authorize Cloud Shell to make Cloud API calls,\n click **Authorize**.\n\n After your minikube cluster is set up, a message similar to the following\n appears: \n\n Done! kubectl is now configured to\n use \"minikube\" cluster...\n\nAfter minikube is set up, build and run your app:\n\n1. In the Cloud Shell Editor status bar, click\n **Cloud\n Code**.\n\n2. Select **Run on Kubernetes**.\n\n3. If prompted, confirm that you want to use the current minikube context.\n\n Cloud Shell Editor builds your app and deploys it to the minikube cluster.\n4. Watch the deployment status in the\n **Development\n sessions** view.\n\n When the deployment is complete, a green check mark appears next to\n **Portforward URLs** . The spinning icon appears next to\n **Stream Application Logs**.\n5. To view your app, look further down the **Development sessions**\n pane and find **Port Forward URLs** \\\u003e **service**.\n\n6. Hold the pointer over\n **go-hello-world-external**\n and click open_in_new **Open URL**.\n\nEdit your app\n-------------\n\nWhen you change a source file in your app, Cloud Shell Editor automatically\nbuilds and deploys your app to the cluster that you're currently connected to.\nIn this case, you're connected to your minikube cluster.\n\nTo edit and redeploy the app to your local minikube cluster:\n\n1. Modify your\n `main.go`\n file to print \"It's redeployed!\". The file saves automatically.\n\n2. Watch the\n **Development\n sessions** view as your app is rebuilt and\n deployed.\n\n3. View your redeployed app as you did before:\n\n 1. In the **Development sessions**\n pane, find **Port Forward URLs** \\\u003e **service**.\n\n 2. Hold the pointer over\n **go-hello-world-external**\n and click open_in_new **Open URL**.\n\nView app logs\n-------------\n\n1. In the Cloud Shell Editor menu bar, select **View** \\\u003e **Command Palette**.\n\n2. Search for **Cloud Code: View Logs** and click it.\n\n The Logs Viewer opens.\n3. In\n **Deployment**,\n select `go-hello-world`.\n\n This filters the Logs Viewer to only display logs for your `go-hello-world` app.\n4. Switch to the tab with your app that shows \"It's redeployed!\" Reload the\n page in the browser and then switch back to the Cloud Shell tab.\n\n5. To view the newly generated logs in the Logs Viewer, click\n refresh\n **Refresh**.\n\nDeploy your app to a GKE cluster\n--------------------------------\n\n1. Add your GKE cluster to the list of clusters you can\n deploy to:\n\n 1. In the Kubernetes\n view, click add\n **Add a Cluster to the KubeConfig**.\n\n 2. In the **Choose a platform** dialog, click **Google Kubernetes Engine**.\n\n 3. If prompted to enable the Google Cloud API, click **Yes**.\n\n 4. Wait for Cloud Shell Editor to find the clusters in your\n Google Cloud project.\n\n 5. In the **Create or choose a GKE cluster** dialog, select\n the name of the cluster you created, **hello-world-cluster**.\n\n2. In the Cloud Shell Editor status bar, click\n **Cloud\n Code** and select **Run on Kubernetes**.\n\n3. When prompted to select a context for your deployment request, choose\n **Use current context**, which is set to your GKE cluster.\n\n4. In the **Choose image repository** dialog, select **gcr.io/\u003cvar translate=\"no\"\u003ePROJECT_NAME\u003c/var\u003e**.\n\n Cloud Shell Editor builds your app into a container and stores the container\n in the repository you selected.\n5. Watch the\n **Development\n sessions** view as your app is rebuilt and\n deployed.\n\n6. To view detailed log messages as your app is being deployed to GKE,\n click the **Deploy to Cluster** node in the **Development sessions** view.\n\n7. To view your running app:\n\n 1. Close the view by clicking the **Development sessions** heading.\n\n 2. Open the Kubernetes\n view.\n\n 3. Expand your GKE cluster.\n\n 4. Go to **Namespaces \\\u003e default \\\u003e Services \\\u003e go-hello-world-external \\\u003e External IPs**.\n\n 5. Hold the pointer over the IP address and click\n open_in_new **Open URL**.\n\nYou have successfully created and deployed a GKE app from an IDE.\n\nWhat's next\n-----------\n\n- [View code samples](/docs/samples) demonstrating the usage of\n Google Cloud products\n\n- [Install Cloud Code](/code/docs) in your IDE\n\n- [Clean up to avoid billing charges](/kubernetes-engine/docs/quickstarts/learning-path-cleanup).\n If you plan to take additional tutorials, wait until you finish those tutorials\n before you clean up. You can use the sample Kubernetes cluster in most\n GKE tutorials."]]