This tool deploys an application to a Kubernetes Engine cluster, following Google's recommended best practices.
Using gke-deploy
to deploy an application to Kubernetes Engine differs from
kubectl
in that gke-deploy
is a wrapper around a kubectl apply
deployment that follows Google's recommended best practices by...
-
Modifying a set of Kubernetes configuration files to use a container image's digest instead of a tag
-
Adding several recommended labels to the set of Kubernetes configuration files
-
Getting authorized to access a GKE cluster
-
Applying the set of Kubernetes configuration files that were modified in the prepare step, using
kubectl apply
-
Waiting for applied Kubernetes configuration to be ready
This command executes all of the best practices mentioned above, in sequence.
This command executes the steps to modify and add labels to a set of Kubernetes configuration files, and skips the steps to get authorized to access a GKE cluster, apply configuration, and wait.
This command skips the steps to modify and add labels to a set of Kubernetes configuration files, and executes the steps to get authorized to access a GKE cluster, apply configuration, and wait.
View this page for examples on how to use
gke-deploy
with Cloud Build.
Follow these instructions to set up continuous deployment.
You can deploy an Application Custom Resource for your application:
-
Follow the instructions here to create or update a GKE cluster to install Application Delivery, which supports the Application CRD.
You can also install the CRD manually by following the instructions here.
-
Use the
--create-application-cr
flag withgke-deploy prepare
orgke-deploy apply
to create an Application CR for your application.
Although gke-deploy
is meant to be used as a build step with Cloud
Build, you can run it locally for testing.
-
First, install
kubectl
as a dependency. -
Next, install
gke-deploy
:go install github.com/GoogleCloudPlatform/cloud-builders/gke-deploy@latest gke-deploy -h
-
If your
kubectl
is pointing to a cluster, you can test out a deployment by deploying an application with one simple command:# Deploy an nginx Deployment with a load balancer exposing port 80. gke-deploy run -i nginx -x 80
-
After the command finishes successfully,
gke-deploy
will print a table displaying deployed resources. You can visit the IP address printed in the Service row.e.g.,
curl 35.196.67.253