This repository contains both complete workshops, as well as segmented workshop modules that can be combined to create Kubernetes workshops of various lengths and focus.
Modules contain a README.md that walks through the module. If code, configuration, or scrips are needed, it is included and tested.
This is not an official Google product.
workshop | version | description |
---|---|---|
Kubernetes 101 | v1.2.0 | Covers the basics of using Kubernetes to manage applications at scale. In this workshop, you'll take an app, build it into a docker container, then use Kubernetes to deploy, scale, and update it. This workshop comes in multiple versions: A video course, a codelab with an accompanying talk, or a set of workshop material with slides. |
Name | Slides | Level | Time Estimate | Completion Status |
---|---|---|---|---|
Cluster Bring Up | Link | Beginner | 1 hour | Ready |
Quickstart | Link | Beginner | 1 hour | Ready |
Core Kubernetes Concepts | Link | Beginner | 4 hours | Ready |
Storing State | Link | Intermediate | 2 hours | Ready |
Advanced Concepts | Link | Intermediate | 2 hours | Ready |
Dockerize an App | Link | Intermediate | 2 hours | Defer |
Networking | Link | Intermediate | 2 hours | Defer |
Troubleshooting | Link | Intermediate | 2 hours | Delay |
Putting it all together | Link | Advanced | 2 hours | Delay |
Status: Not Started --> In Progress --> Draft --> Ready
This is incomplete. These are just brainstorming / rough notes.
- Quick
- Not complex, uses
kubectl run
,kubectl expose
. - Demonstrates the ease of using Kubernetes without learning all the concepts and config files up front.
- Uses the open source kubernetes release with
cluster/kube-up.sh
for cloud bringup - Option for local docker
- Introduce one concept at a time, and then use that concept
- Order: pod, service, rc, deployment
- go over a declarative pod representation of quickstart app
- contains 1 pod
- logs, exec, port forwarding
- introduce service
- overview pods, labels, selectors, and services
- change pod to RC
- discuss RC
- scale pod up
- introduce deployments
- move everything under a deployment
- update to new versions of our app, quick rolling update
- lightweight here - more detail in "Advanced" module
- Deploy an app with MySQL
- multiple iterations where to store the data, how it goes away
- start with host volume, end at persistent disk
- More of a lecture module, slides discuss state in greater length
- Start with an app
- Write the Dockerfile
- build
- push to registry
-
Lecture
- App/container patterns http://blog.kubernetes.io/2015/06/the-distributed-system-toolkit-patterns.html
- mapping non-containerized apps
-
Hands on:
- A/B deployment
- Canary patterns
- Rolling Deployments
- Autoscaling
-
More of a lecture module, slides discuss networking in greater length
-
Types of external services VIP/nodeport, run service with each and see how we get into the cluster
-
discuss subnets, explore on running nodes
-
How K8s networking works
-
Setting up an external load balancer - Nginx
-
Ideas on how to plug into your environment
- Logging & monitoring
- Troubleshooting / Debugging
-
deploy a production ready app
-
Use all the above
-
Build up a significant realistic app
-
( not so much lecture, just deploy all this stuff: )
-
web frontends, caching, backend jobs, datastore, load testing
-
Logging & monitoring
-
Troubleshooting
-
Autoscaling
- See CONTRIBUTING.md
- See LICENSE