Cloud Code automatically installs and manages minikube. If
you opted out of dependency management, add the minikube binary to your PATH
.
Before you begin
- Install Git so that Cloud Code can perform Git operations, like cloning a sample.
- Install the Cloud Code plugin if you haven't already.
Create an application from a template
Cloud Code comes with a collection of code sample templates to get you started quickly. To create a Kubernetes application using an existing sample, follow these steps:
- Launch the Command Palette (press
Ctrl
/Cmd
+Shift
+P
or click View > Command Palette) and then run Cloud Code: New Application. - Select Kubernetes application for the type of sample.
- Select a sample based on the language you'd like to use from the available options: NodeJS, Go, Python, Java.
Choose a preferred application location on your local machine and then click Create new application to save.
Cloud Code clones the sample you chose and opens your new project for use.
Sample application structure
All language sample applications have nearly the same structure. This is not the only supported structure but is recommended when starting.
For example, the Node.js Guestbook application structure looks like:
.
|---- .vscode
| └---- launch.json
|---- kubernetes-manifests
| |---- guestbook-backend.deployment.yaml
| |---- guestbook-backend.service.yaml
| |---- guestbook-frontend.deployment.yaml
| |---- guestbook-frontend.service.yaml
| |---- mongo.deployment.yaml
| └---- mongo.service.yaml
|---- src
| |---- backend
| | |---- Dockerfile
| | |---- index.js
| | |---- app.js
| | └---- package.json
| |---- frontend
| |---- Dockerfile
| |---- index.js
| | |---- app.js
| └---- package.json
└---- skaffold.yaml
Taking a closer look at this Kubernetes Guestbook Node.js sample app, here are some key files and their uses:
- .vscode
extensions.json
: prompt requesting download of related extensions when opening this projectlaunch.json
: launch configuration (of typecloudcode.kubernetes
) to run or debug the Kubernetes applicationtasks.json
: configuration information for Visual Studio Code Tasks
- kubernetes-manifests
guestbook-backend.deployment.yaml
: Pod specification for the backend nodesguestbook-frontend.deployment.yaml
: Pod specification for the frontend nodesmongo.deployment.yaml
: Pod specification for the database
- src
(backend|frontend)/app.js
: Node.js code with the web server logic(backend|frontend)/Dockerfile
: used to build the container image for our program
skaffold.yaml
: config file for Skaffold, which Cloud Code uses to build, deploy and debug Kubernetes applications
Use your own application
For steps to use an existing project, see use Cloud Code with an existing Kubernetes application.
Set your Kubernetes context
Before running your application, ensure you're set up to deploy your app to your preferred Kubernetes context. You can specify this in your configuration.
Configuration
When using the Cloud Code: Develop on Kubernetes run configuration, you can customize your deployment by configuring available settings.
To add or edit configurations, go to Run > Open Configurations and then edit or add configurations.Create and deploy to a minikube cluster
Start a minikube cluster
Cloud Code automatically installs and manages minikube. If
you opted out of dependency management, add the minikube binary to your PATH
.
- Launch the Command Palette (press
Ctrl
/Cmd
+Shift
+P
or click View > Command Palette) and then run the Cloud Code: Control minikube command. - Click minikube for Choose a Minikube cluster (profile) to control and then click Start.
Run on minikube
- Launch the Command Palette and run Cloud Code: Run on Kubernetes.
- Click Yes for Use current context (minikube) to run the app?
Cloud Code runs your app in a your minikube cluster. If prompted, authorize Cloud Shell to use your credentials to make a Google Cloud API call.
View the deployment details in the Development sessions section of Cloud Code.
View the URLs by clicking Portfoward URLs in the Development sessions section, then click the URL link to open your browser with your running application.
Open an interactive terminal to a container
- Click Cloud Code and then expand the Development Sessions explorer.
- Expand Deployed Resources, then expand Pods.
- Right-click a container and then click Get Terminal.
Pause or stop a minikube cluster
- Launch the Command Palette (press
Ctrl
/Cmd
+Shift
+P
or click View > Command Palette) and then run the Cloud Code: Control minikube command. - After the Choose a Minikube cluster (profile) to control option populates, click minikube and then click Stop or Pause.
Create and add a cluster from another cloud provider
If you're using an on-premises cluster or a cluster from another provider such as Azure or AWS, use the provider's tools to create the cluster and add it to your KubeConfig.
Work with other local clusters
In addition to minikube, you can work with Cloud Code if you're using Docker Desktop (for Mac or Windows).
To get Cloud Code working with a local cluster, make sure that
your default configuration (for example, ~/.kube/config
) contains your local
cluster. This cluster must be set as the current context.
For example, if you were using a local cluster, docker-for-desktop
, with
Docker Desktop, set your preferred cluster by running the following command:
kubectl config use-context docker-for-desktop
What's next
- Use file sync and hot reloading to speed up development.
- Debug your application in Cloud Code