This is a hands-on, technical workshop intended to get comfortable working with Kubernetes and deploying & configuring applications. It should hopefully take roughly 5~6 hours. This workshop is intended partial as a companion to this Kubernetes Technical Primer which can be read or used to get an initial grounding on the concepts.
This workshop is very much designed for software engineers & developers with little or zero Kubernetes experience, but wish to get hands on and learn how to deploy and manage applications. It is not focused on the adminstration, network configuration & day-2 operations of Kubernetes itself, so some aspects may not be relevant to dedicated platform/infrastructure engineers.
The application used will be one that has already been written and built, so no application code will need to be written.
The workshop will use Azure Kubernetes Service (AKS) and assumes a relative degree of comfort in using Azure for sections 2 and 3.
Sections / modules:
- ⚒️ Workshop Pre Requisites - Covering the pre set up and tools that will be needed.
- 🚦 Deploying Kubernetes - Deploying AKS, setting up kubectl and accessing the cluster.
- 📦 Container Registry & Images - Deploying the registry and importing images.
- ❇️ Overview Of The Application - Details of the application to be deployed.
- 🚀 Deploying The Backend - Laying down the first two components and introduction to Deployments and Pods.
- 🌐 Basic Networking - Introducing Services to provide network access.
- 💻 Adding The Frontend - Deploying the frontend to the app and wiring it up.
- ✨ Improving The Deployment - Adding resource limits, probes and secrets.
- 🌎 Helm & Ingress - Finalizing the application using ingress.
If you get stuck, the GitHub repo for this workshop contains example and working files for most of the sections
These can be considered bonus sections, and are entirely optional. It is not expected that all these sections would be attempted, and they do not run in order.
- 🤯 Scaling, Stateful Workloads & Helm - Scaling (manual & auto), stateful workloads and persitent volumes, plus more Helm.
- 🏃 CI/CD with GitHub Actions - Using GitHub Actions for CI/CD with Kubernetes and carrying out automated releases with Helm.
- 🧩 Kustomize & GitOps - Introduction to Kustomize and deploying apps through GitOps with Flux
A brief list of potential topics and Kubernetes features you may want to look at next:
Kubernetes Features:
- Init containers
- Jobs
- ConfigMaps
- Debugging Pods with shell access and exec
- Assigning Pods to Nodes with selectors and taints
- Cluster Autoscaler in AKS
Other Projects:
- Enabling TLS with certificates from Let's Encrypt using Cert Manager
- Observability
- With Prometheus & Grafana
- Using AKS monitoring add-on
- Using Dapr for building portable and reliable microservices
- Adding a service mesh such as Linkerd or Open Service Mesh
- Setting up the Application Gateway Ingress Controller (AGIC)