Skip to content

eficode-academy/kubernetes-katas

Repository files navigation

Open in Gitpod

kubernetes-katas

A selection of katas for Kubernetes (k8s).

The exercises are ordered in the way we think it makes sense to introduce Kubernetes concepts.

You can find a summary of many of the commands used in the exercises in the cheatsheet.md.

❗ The katas expect that you have access to a kubernetes cluster. Please have a look at the Setup section if that is not the case. There are plenty of free and easy options.

Katas in suggested order:

Setup

There are several ways to get a free Kubernetes cluster for running the exercises.

Amazon, Google, Microsoft and Oracle provide various degrees of free managed clusters.

Alternatively, you can set up a local cluster with Docker Desktop or Kind.

Once you have access to a cluster, the following exercises will help you get setup for running the katas.

  • setup-kubectl-linux - Skip if you've already installed kubectl and have access to a cluster.
  • setup-namespace - Skip if you've already created a personal namespace and set it as your default.

kubectl autocompletion

On Linux, using bash, run the following commands:

echo "source <(kubectl completion bash)" >> ~/.bashrc
. ~/.bashrc

The commands above will enable kubectl autocompletion when you start a new bash session and source (reload) bashrc i.e. enable kubectl autocompletion in your current session.

See: Kubernetes.io - Enabling shell autocompletion for more info.

Cheatsheet

A collection of useful commands to use throughout the exercises:

kubectl api-resources         # List resource types


kubectl explain <resource>    # Show information about a resource
kubectl explain deployment


# List resources in cluster
kubectl get <resource>                    # In current namespace
kubectl get <resource> -n <namespace>     # In specific namespace
kubectl get <resource> --all-namespaces   # In all namespaces
kubectl get <resource> -o wide            # Add extended information
kubectl get <resource> -o yaml            # output in YAML format
kubectl get <resource> -o json            # output in JSON format

# Example
kubectl get pods [-n abc|--all-namespaces] [-o wide|yaml|json]

See: kubectl - Cheat Sheet for a more extended overview of the kubectl command.