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)