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.
- Docker 101 workshop
- Kubernetes 101 workshop using Minikube and Mattermost
- Kubernetes production patterns
- Kubernetes security patterns
- Kubernetes custom resources
- Gravity 101
- Gravity fire drill exercises
- Gravity logging (Gravity 5.5 and earlier)
- Gravity logging (Gravity 6.0 and later)
- Gravity monitoring & alerts (Gravity 5.5 and earlier)
- Gravity monitoring & alerts (Gravity 6.0 and later)
- Gravity networking and network troubleshooting
- Gravity upgrade (5.5)
- Gravity upgrade (7.0)
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