-
-
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <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…</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