github.com/googlecloudplatform/kubernetes-workshops@v0.0.0-20180501174420-d8199445b2c3/README.md (about) 1 [![Build Status](https://travis-ci.org/GoogleCloudPlatform/kubernetes-workshops.svg?branch=master)](https://travis-ci.org/GoogleCloudPlatform/kubernetes-workshops) 2 3 # Kubernetes Workshops 4 5 This repository contains both complete workshops, as well as 6 segmented workshop modules that can be combined to create Kubernetes 7 workshops of various lengths and focus. 8 9 Modules contain a README.md that walks through the module. If code, 10 configuration, or scrips are needed, it is included and tested. 11 12 This is not an official Google product. 13 14 ## Full Workshops 15 | workshop | version | description | 16 | --- | --- | --- | 17 | [Kubernetes 101](bundles/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. | 18 19 20 ## Individual Modules 21 22 Name | Slides | Level | Time Estimate | Completion Status 23 ------------- | ------------- | ------------- | ------------ | ------------ 24 [Cluster Bring Up](bring-up) | [Link](https://docs.google.com/presentation/d/1AZSJi4wl1ALfMNuW8X2hoN6DZZVs35dl5lPDtDuWT_U/edit?usp=sharing) | Beginner | 1 hour | Ready 25 [Quickstart](quickstart) | [Link](https://docs.google.com/presentation/d/1nH88mgUhcGtuyCD9W1k3blvxrTkcqC3FfcRkiX10JR8/edit?usp=sharing) | Beginner | 1 hour | Ready 26 [Core Kubernetes Concepts](core-concepts) | [Link](https://docs.google.com/presentation/d/1JP6-utzrocigFpVyd9IFoZmjPV5vxGhiOONT36XBF_o/edit?usp=sharing) | Beginner | 4 hours | Ready 27 [Storing State](state) | [Link](https://docs.google.com/presentation/d/1av0gZl90NS2oPm2u5utht7fZums76fvsh-hqt_JMzJE/edit?usp=sharing) | Intermediate | 2 hours | Ready 28 [Advanced Concepts](advanced) | [Link](https://docs.google.com/presentation/d/1_mWY3fTavAYjD9twABOOEE0dRVz8YeMpeJ0s1GgvHpk/edit?usp=sharing) | Intermediate | 2 hours | Ready 29 [Dockerize an App](dockerize) | [Link]() | Intermediate | 2 hours | Defer 30 [Networking](networking) | [Link]() | Intermediate | 2 hours | Defer 31 [Troubleshooting](troubleshooting) | [Link]() | Intermediate | 2 hours | Delay 32 [Putting it all together](combine) | [Link]() | Advanced | 2 hours | Delay 33 34 Status: Not Started --> In Progress --> Draft --> Ready 35 36 ## Overview of Modules 37 38 > This is incomplete. These are just brainstorming / rough notes. 39 40 ### Quickstart 41 42 * Quick 43 * Not complex, uses `kubectl run`, `kubectl expose`. 44 * Demonstrates the ease of using Kubernetes without learning all the 45 concepts and config files up front. 46 47 ### Cluster Bring Up 48 49 * Uses the open source kubernetes release with `cluster/kube-up.sh` 50 for cloud bringup 51 * Option for local docker 52 53 ### Core Kubernetes Concepts 54 55 * Introduce one concept at a time, and then use that concept 56 * Order: pod, service, rc, deployment 57 * go over a declarative pod representation of quickstart app 58 * contains 1 pod 59 * logs, exec, port forwarding 60 * introduce service 61 * overview pods, labels, selectors, and services 62 * change pod to RC 63 * discuss RC 64 * scale pod up 65 * introduce deployments 66 * move everything under a deployment 67 * update to new versions of our app, quick rolling update 68 * lightweight here - more detail in "Advanced" module 69 70 ### Storing State 71 72 * Deploy an app with MySQL 73 * multiple iterations where to store the data, how it goes away 74 * start with host volume, end at persistent disk 75 * More of a lecture module, slides discuss state in greater length 76 77 ### Dockerize an App 78 79 * Start with an app 80 * Write the Dockerfile 81 * build 82 * push to registry 83 84 ### Advanced Concepts 85 86 * Lecture 87 * App/container patterns 88 http://blog.kubernetes.io/2015/06/the-distributed-system-toolkit-patterns.html 89 * mapping non-containerized apps 90 91 * Hands on: 92 * A/B deployment 93 * Canary patterns 94 * Rolling Deployments 95 * Autoscaling 96 97 ### Networking 98 99 * More of a lecture module, slides discuss networking in greater length 100 101 * Types of external services VIP/nodeport, run service with each and 102 see how we get into the cluster 103 * discuss subnets, explore on running nodes 104 * How K8s networking works 105 * Setting up an external load balancer - Nginx 106 * Ideas on how to plug into your environment 107 108 ### Troubleshooting 109 110 * Logging & monitoring 111 * Troubleshooting / Debugging 112 113 ### Putting it all together 114 115 * deploy a production ready app 116 117 * Use all the above 118 * Build up a significant realistic app 119 * ( not so much lecture, just deploy all this stuff: ) 120 * web frontends, caching, backend jobs, datastore, load testing 121 * Logging & monitoring 122 * Troubleshooting 123 * Autoscaling 124 125 ## Contributing changes 126 127 * See [CONTRIBUTING.md](CONTRIBUTING.md) 128 129 ## Licensing 130 131 * See [LICENSE](LICENSE)