Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save j0shua/3d9f3353c376f7b051a15afc4b911bbb to your computer and use it in GitHub Desktop.
Save j0shua/3d9f3353c376f7b051a15afc4b911bbb to your computer and use it in GitHub Desktop.
Kubenetes Zone "Hands-On Intro to Kubernetes" Workshop 4/17 in Austin, TX http://bit.ly/k8s-zone
<section>
<section id="kubernetes-hands-on"><h1 id="kubernetes-hands-on">Kubernetes Hands-On</h1>
<h2>Workshop Setup</h2>
<br/>
<p><a href="https://www.eventbrite.com/e/kubernetes-zone-workshop-andor-reception-tickets-32538282880">Kubernetes Zone Workshop - April 17, 2017</a></p>
<p><a href="http://bit.ly/k8s-zone">bit.ly/k8s-zone</a></p>
</section>
<section data-state='blackout' data-background-color="#000000" id='presented-by'>
<p>presented by&hellip;</p>
<div style='width:50%'>
<p><a href="http://twitter.com/ryanj/"><img alt="ryanj" src="http://ryanjarvinen.com/images/ryanj-mestrefungo-com.gif" style="width:35%" /></p>
<p><a href="http://twitter.com/ryanj/">@ryanj</a>, Open Source Activist at CoreOS</p>
</div>
<div style='width:50%'>
<p><a href="http://twitter.com/elsiephilly/"><img alt="Elsie" src="https://pbs.twimg.com/profile_images/794561267855802368/ht3C6MWT.jpg" style="width:35%"/></p>
<p>and <a href="http://twitter.com/elsiephilly/">Elsie Phillips</a>, Community Lead at CoreOS</p>
</div>
</section>
<section data-state='blackout' data-background-color="#000000" id='by-ryanj'>
</section>
</section>
<section>
<section id='workshop-setup' data-markdown>
## Workshop Setup
bring a laptop with the following:
1. [kubectl](#/kubectl)
2. [minikube](#/minikube)
3. [docker](#/docker)
3. Optional tooling for advanced users
</section>
<section id='kubectl'>
<h3>install kubectl</h3>
<p>linux amd64:</p>
<pre><code contenteditable>curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/
</code></pre>
<p>osx amd64:</p>
<pre><code contenteditable>curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/
</code></pre>
<p>To verify <code>kubectl</code> availability:</p>
<pre><code contenteditable>kubectl version</code></pre>
<p><a href="https://kubernetes.io/docs/tasks/kubectl/install/">official <code>kubectl</code> setup notes</a></p>
</section>
<section id='minikube'>
<h3>install minikube</h3>
<p>linux/amd64:</p>
<pre><code contenteditable>curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.17.1/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/</code></pre>
<p>osx:</p>
<pre><code contenteditable>curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/</code></pre>
<p>to verify <code>minikube</code> availability:</p>
<pre><code contenteditable>minikube start</code></pre>
<p><a href="https://github.com/kubernetes/minikube/releases">official <code>minikube</code> setup notes</a></p>
</section>
<section id='minikube-virt'>
<h4>minikube troubleshooting</h4>
<p>If your minikube environment does not boot correctly:</p>
<ol>
<li>Minikube requires an OS virtualization back-end</li>
<li>Most OSes include some support for virtualization</li>
<li>You can use the <a href="https://github.com/kubernetes/minikube#quickstart"><code>--vm-driver</code></a> flag to select a specific virt provider</li>
</ol>
<pre><code contenteditable>minikube start --vm-driver=virtualbox</code></pre>
<p>Check the project <a href="https://github.com/kubernetes/minikube#requirements"><code>README</code></a> for more information about <a href="https://github.com/kubernetes/minikube#requirements">supported virtualization options</a></p>
</section>
<section id='minikube-rkt'>
<h5><b>ADVANCED CHALLENGE OPTION</b></h5>
<h3>rkt-powered minikube (optional)</h3>
<p>To start <code>minikube</code> with <code>rkt</code> enabled, try:</p>
<pre><code contenteditable>minikube start --network-plugin=cni --container-runtime=rkt</code></pre>
<p>to verify:</p>
<pre><code contenteditable>minikube ssh
docker ps # expect no containers here
rkt list # list running containers</code></pre>
</section>
<section id='docker'>
<h3>install the docker cli</h3>
<p>Download and install binary from <a href="https://store.docker.com/search?offering=community&type=edition">"the docker store"</a></p>
<p>Or, use a package manager to install:</p>
<pre><code contenteditable>brew install docker</code></pre>
<p>To verify <code>docker</code> availability:</p>
<pre><code contenteditable>docker version</code></pre>
<p>To <a href="https://github.com/kubernetes/minikube#reusing-the-docker-daemon">reference minikube's docker daemon from your host</a>, run:</p>
<pre><code contenteditable>eval $(minikube docker-env)</code></pre>
</section>
<section id='go'>
<h5><b>ADVANCED CHALLENGE OPTION</b></h5>
<h3>install go (optional)</h3>
<p>Download and install binary from <a href="https://golang.org/doc/install">golang.org</a></p>
<p>Or, use a package manager to install:</p>
<pre><code contenteditable>brew install go
export GOPATH=$HOME/src/go
export GOROOT=/usr/local/opt/go/libexec
export PATH=$PATH:$GOPATH/bin
export PATH=$PATH:$GOROOT/bin</code></pre>
<p>To verify <code>go</code> availability:</p>
<pre><code contenteditable>go version</code></pre>
</section>
<section id='ready' data-markdown>
### *Ready?*
</section>
</section>
<section id="see-you-soon" data-markdown>
## See you soon!
If you have completed all of the [workshop setup steps](#/workshop-setup) you should be ready to go!
See you
[April 17 for the Kubernetes Zone Hands-on Workshop](https://www.eventbrite.com/e/kubernetes-zone-workshop-andor-reception-tickets-32538282880)
</section>
<!--
<section>
<section data-markdown>
## Introduction
</section>
<section data-markdown>
## Workshop Overview
* Introduction
* History
* Why Kubernetes?
* What is an SRE?
* Kubernetes Operators
* Extensible Kubernetes
* Kubernetes Controllers
* Third Party Resources
* Kubernetes Operator examples
* Workshop tasks
* basic hacker challenge
* advanced hacker challenge
* workshop wrap-up and exit interview
</section>
</section>
<section>
<section id='history' data-markdown>
## History
</section>
</section>
<section>
<section id='introducing-operators' data-markdown>
## Kubernetes Operators
</section>
</section>
<section>
<section id='workshop-challenges' data-markdown>
## Workshop challenges
</section>
</section>
<section>
<section id='wrap-up' data-markdown>
## Wrap Up
</section>
</section>
<section data-transition="linear" id='terminology' data-markdown>
### K8s Terminology / API primitives
1. [node](#/node)
2. [image](#/img)
3. [container](#/container)
5. [pod](#/pod)
6. [replicaSet](#/rs)
7. [deployment](#/deployment)
9. [service](#/svc)
</section>
<section data-transition="linear" id='node' data-markdown>
### Node
A [node](https://docs.openshift.org/latest/admin_guide/manage_nodes.html) is a host machine (physical or virtual) where workloads can be run. Node activity is managed via one or more Master instances.
</section>
<section data-transition="linear" id='img' data-markdown>
### [Image](https://docs.openshift.org/latest/architecture/core_concepts/containers_and_images.html#docker-images)
A packaged runtime or workload environment. A bootable linux container that runs wherever Docker is supported. See also, [`ImageStreams`](https://docs.openshift.org/latest/architecture/core_concepts/builds_and_image_streams.html#image-streams)
</section>
<section data-transition="linear" id='container' data-markdown>
### [Container](https://docs.openshift.org/latest/architecture/core_concepts/containers_and_images.html)
A running image with an allocation of system resources.
</section>
<section data-transition="linear" id='pod' data-markdown>
### Pod
A group of one or more co-located containers. [Pods](https://docs.openshift.org/latest/architecture/core_concepts/pods_and_services.html) represent your minimum increment of scale.
</section>
<section data-transition="linear" id='rc' data-markdown>
### ReplicaSet
A [`replicaset`](https://docs.openshift.org/latest/architecture/core_concepts/deployments.html) is created for every deployment, allowing you to easily scale your workloads by adjusting your desired number of pods
</section>
<section data-transition="linear" id='dc' data-markdown>
### Deployment
A [`deployment`](https://docs.openshift.org/latest/architecture/core_concepts/deployments.html#deployments-and-deployment-configurations) helps you define how and when images are distributed to nodes (as pods, containers)
</section>
<section data-transition="linear" id='svc' data-markdown>
### [Service](https://docs.openshift.org/latest/architecture/core_concepts/pods_and_services.html#services)
A service (svc) is a software load-balancer that distributes inbound traffic to associated pods
</section>
-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment