Craft Kubernetes Workshop
In this workshop you will learn how to:
- Provision a basic Kubernetes cluster from the ground up using Google Compute Engine
- Provision a complete Kubernetes using Google Container Engine
- Deploy and manage Docker containers using kubectl
Kubernetes Version: 1.2.2
Google Compute Engine (GCE)
GCE will be used to setup a Kubernetes cluster from the ground up. This workshop will require the ability to create the following resources:
- Virtual Machines
- Firewall Rules
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.
Clone this Repository
Login into your Cloud Shell environment and clone this repository.
git clone https://github.com/kelseyhightower/craft-kubernetes-workshop.git
Provision a Kubernetes cluster from scratch
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.
A Kubernetes cluster requires compute resources which can come from VMs or bare-metal machines, a container runtime environment such as Docker, and assumes the Kubernetes network model is in place.
Provision the Kubernetes Controller
Kubernetes can be broken up into two parts: the controller and worker nodes. The Kubernetes controller is where all cluster configuration is stored and is home to the Kubernetes API, Controller Manager, and Scheduler.
- Install and configure etcd
- Download a Kubernetes release
- Install and configure the API Server
- Install and configure the Controller Manager
- Install and configure the Scheduler
Provision the Worker Nodes
Kubernetes worker nodes are responsible for running containers (inside of pods), service loadbalancing, and reporting status information and metrics for nodes and pods. In this section you will setup the Kubernetes worker nodes and install the following components:
Provision Kubernetes using GKE
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 Factor 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.
- Creating and managing pods
- Monitoring and health checks
- Managing application configurations and secrets
- Creating and managing services
- Creating and managing deployments
- Rolling out updates