Orchestrating the Cloud with Kuberenetes
In this Codelab you will learn how to:
- Provision a complete Kubernetes using Google Container Engine
- Deploy and manage Docker containers using kubectl
Kubernetes Version: 1.2.2
Setup GCE and Enable Cloud Shell
In this section you will create a Google Compute Engine (GCE) account. GCE will allow you to the create VMs, Networks, and Storage volumes required for this workshop. GCE also provides the Cloud Shell computing environment that will be used complete the labs.
Labs
Clone this Repository
Login into your Cloud Shell environment and clone this repository.
git clone https://github.com/googlecodelabs/orchestrate-with-kubernetes.git
Provision Kubernetes using GKE
Kubernetes is a distributed system composed of a collection of microservices. Like any system Kubernetes must be installed and configured. In this section you will install Kubernetes from the ground up with the minimal configuration required to get a cluster up and running.
Kubernetes can be configured with many options and add-ons, but can be time consuming to bootstrap from the ground up. In this section you will bootstrap Kubernetes using Google Container Engine (GKE).
Managing Applications with Kubernetes
Kubernetes is all about applications and in this section you will utilize the Kubernetes API to deploy, manage, and upgrade applications. In this part of the workshop you will use an example application called "app" to complete the labs.
App is hosted on GitHub and provides an example 12 Facter application. During this workshop you will be working with the following Docker images:
- kelseyhightower/monolith - Monolith includes auth and hello services.
- kelseyhightower/auth - Auth microservice. Generates JWT tokens for authenticated users.
- kelseyhightower/hello - Hello microservice. Greets authenticated users.
- ngnix - Frontend to the auth and hello services.
Labs
For each of the following labs, you should be in the kubernetes dir:
cd orchestrate-with-kubernetes/kubernetes
- Creating and managing pods
- Monitoring and health checks
- Managing application configurations and secrets
- Creating and managing services
- Creating and managing deployments
- Rolling out updates