/workshop

Docker, Kubernetes and Gravity Trainings by Gravitational

Primary LanguageGoApache License 2.0Apache-2.0

Gravitational Workshops

Warning

The Gravitational Workshops were archived 2023-07-01, as Gravitational no longer offers Kubernetes or Gravity training.

Please see our Gravitational is Teleport blog post for more information.

Open source series of workshops delivered by the Gravitational team.

Installation

Requirements

You will need a Linux or macOS box with at least 7GB of RAM and 20GB of free disk space available.

Docker

For Linux: follow instructions provided here.

If you have macOS (Yosemite or newer), please download Docker for Mac here.

Older docker package for OSes older than Yosemite -- Docker Toolbox located here.

Hypervisor

HyperKit [macOS only]

HyperKit is a lightweight macOS hypervisor which minikube supports out of the box and which should be already installed on your machine if you have Docker for Desktop installed.

More information: https://minikube.sigs.k8s.io/docs/reference/drivers/hyperkit/.

Alternatively, install VirtualBox like described below.

KVM2 [Linux only]

Follow the instructions here: https://minikube.sigs.k8s.io/docs/reference/drivers/kvm2/.

Alternatively, install VirtualBox like described below.

VirtualBox [both macOS and Linux]

Let’s install VirtualBox.

Get latest stable version from https://www.virtualbox.org/wiki/Downloads.

Note: When using Ubuntu you may need to disable Secure Boot. For an alternative approach to installing with Secure Boot enabled, follow the guide here.

Kubectl

For macOS:

curl -O https://storage.googleapis.com/kubernetes-release/release/v1.16.2/bin/darwin/amd64/kubectl \
    && chmod +x kubectl && sudo mv kubectl /usr/local/bin/

For Linux:

curl -O https://storage.googleapis.com/kubernetes-release/release/v1.16.2/bin/linux/amd64/kubectl \
    && chmod +x kubectl && sudo mv kubectl /usr/local/bin/

Minikube

For macOS:

curl -Lo minikube https://storage.googleapis.com/minikube/releases/v1.5.1/minikube-darwin-amd64 \
    && chmod +x minikube && sudo mv minikube /usr/local/bin/

For Linux:

curl -Lo minikube https://storage.googleapis.com/minikube/releases/v1.5.1/minikube-linux-amd64 \
    && chmod +x minikube && sudo mv minikube /usr/local/bin/

Also, you can install drivers for various VM providers to optimize your minikube VM performance. Instructions can be found here: https://github.com/kubernetes/minikube/blob/master/docs/drivers.md.

Xcode and local tools

Xcode will install essential console utilities for us. You can install it from the App Store.

Set up cluster using minikube

To run cluster:

macOS

# starts minikube
$ minikube start --kubernetes-version=v1.16.2
# this command should work
$ kubectl get nodes
# use docker from minikube
$ eval $(minikube docker-env)
# this command to check connectivity
$ docker ps

Linux

# starts minikube
$ minikube start --kubernetes-version=v1.16.2 --vm-driver=kvm2
# this command should work
$ kubectl get nodes
# use docker from minikube
$ eval $(minikube docker-env)
# this command to check connectivity
$ docker ps

Clone the Workshop repository

$ git clone https://github.com/gravitational/workshop.git
$ cd workshop

Configure registry

$ kubectl create -f registry.yaml