GithubHelp home page GithubHelp logo

kubernetes-workshops's Introduction

Build Status

Kubernetes Workshops

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.

Full Workshops

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.

Individual Modules

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

Overview of Modules

This is incomplete. These are just brainstorming / rough notes.

Quickstart

  • Quick
  • Not complex, uses kubectl run, kubectl expose.
  • Demonstrates the ease of using Kubernetes without learning all the concepts and config files up front.

Cluster Bring Up

  • Uses the open source kubernetes release with cluster/kube-up.sh for cloud bringup
  • Option for local docker

Core Kubernetes Concepts

  • 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

Storing State

  • 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

Dockerize an App

  • Start with an app
  • Write the Dockerfile
  • build
  • push to registry

Advanced Concepts

Networking

  • 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

Troubleshooting

  • Logging & monitoring
  • Troubleshooting / Debugging

Putting it all together

  • 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

Contributing changes

Licensing

kubernetes-workshops's People

Contributors

0x726c72 avatar alexandrujuncu avatar askcarter avatar briandorsey avatar hcs0 avatar jcbwlkr avatar jeffmendoza avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kubernetes-workshops's Issues

supported clusters

will have bring up for local and cloud

most docs should be split into two, one for local, one for cloud

Fix tests

bundles/kubernetes-101/workshop/app/auth/main.go:13:2: cannot find package "github.com/askcarter/io16/app/handlers" in any of:
    /home/travis/gopath/src/github.com/GoogleCloudPlatform/kubernetes-workshops/bundles/kubernetes-101/workshop/app/vendor/github.com/askcarter/io16/app/handlers (vendor tree)
    /home/travis/.gimme/versions/go1.7.1.linux.amd64/src/github.com/askcarter/io16/app/handlers (from $GOROOT)
    /home/travis/gopath/src/github.com/askcarter/io16/app/handlers (from $GOPATH)
bundles/kubernetes-101/workshop/app/auth/main.go:14:2: cannot find package "github.com/askcarter/io16/app/health" in any of:
    /home/travis/gopath/src/github.com/GoogleCloudPlatform/kubernetes-workshops/bundles/kubernetes-101/workshop/app/vendor/github.com/askcarter/io16/app/health (vendor tree)
    /home/travis/.gimme/versions/go1.7.1.linux.amd64/src/github.com/askcarter/io16/app/health (from $GOROOT)
    /home/travis/gopath/src/github.com/askcarter/io16/app/health (from $GOPATH)
bundles/kubernetes-101/workshop/app/auth/main.go:15:2: cannot find package "github.com/askcarter/io16/app/user" in any of:
    /home/travis/gopath/src/github.com/GoogleCloudPlatform/kubernetes-workshops/bundles/kubernetes-101/workshop/app/vendor/github.com/askcarter/io16/app/user (vendor tree)
    /home/travis/.gimme/versions/go1.7.1.linux.amd64/src/github.com/askcarter/io16/app/user (from $GOROOT)
    /home/travis/gopath/src/github.com/askcarter/io16/app/user (from $GOPATH)

Which Quickstart, or both?

  1. 'kubectl run' a container. Poke it with exec/logs etc.
  2. 'kubectl create' a huge deployment with one file, show the power of kubernetes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.