Intro To Kubernetes & AKS Hack -- Student Version

Note that this repo contains only the Student instructions. Version 02-Apr-2021.

Introduction

This intro level hack will help you get hands-on experience with Docker, Kubernetes and the Azure Kubernetes Service (AKS) on Microsoft Azure. Kubernetes has quickly gone from being the shiny new kid on the block to the defacto way to deploy and orchestrate containerized applications.

This hack starts off by covering containers, what problems they solve, and why Kubernetes is needed to help orchestrate them. You will learn all of the Kubernetes jargon (pods, services, and deployments, oh my!). By the end, you should have a good understanding of what Kubernetes is and be familiar with how to run it on Azure.

This hack includes optional lectures in the Coach/Lectures folder that features short presentations to introduce key topics associated with each challenge. It is recommended that the host present each short presentation before attendees kick off that challenge.

Learning Objectives

In this hack you will solve a common challenge for companies migrating to the cloud. You will take a simple multi-tiered web app, containerize it, and deploy it to an AKS cluster. Once the application is in AKS, you will learn how to tweak all the knobs and levers to scale, manage and monitor it.

  1. Containerize an application
  2. Deploy a Kubernetes cluster in Azure and deploy applications to it.
  3. Understand key Kubernetes management areas: scalability, upgrades and rollbacks, storage, networking, package management and monitoring

Challenges

  • Challenge 0: Pre-requisites - Ready, Set, GO!
    • Prepare your workstation to work with Azure, Docker containers, and AKS
  • Challenge 1: Got Containers?
    • Package the "FabMedical" app into a Docker container and run it locally.
  • Challenge 2: The Azure Container Registry
    • Deploy an Azure Container Registry, secure it and publish your container.
  • Challenge 3: Introduction To Kubernetes
    • Install the Kubernetes CLI tool, deploy an AKS cluster in Azure, and verify it is running.
  • Challenge 4: Your First Deployment
    • Pods, Services, Deployments: Getting your YAML on! Deploy the "FabMedical" app to your AKS cluster.
  • Challenge 5: Scaling and High Availability
    • Flex Kubernetes' muscles by scaling pods, and then nodes. Observe how Kubernetes responds to resource limits.
  • Challenge 6: Deploy MongoDB to AKS
    • Deploy MongoDB to AKS from a public container registry.
  • Challenge 7: Updates and Rollbacks
    • Deploy v2 of FabMedical to AKS via rolling updates, roll it back, then deploy it again using the blue/green deployment methodology.
  • Challenge 8: Storage
    • Delete the MongoDB you created earlier and observe what happens when you don't have persistent storage. Fix it!
  • Challenge 9: Helm
    • Install Helm tools, customize a sample Helm package to deploy FabMedical, publish the Helm package to Azure Container Registry and use the Helm package to redeploy FabMedical to AKS.
  • Challenge 10: DNS & Ingress
    • Explore integrating DNS with Kubernetes services, and explore different ways of routing traffic to FabMedical by configuring an Ingress Controller.
  • Challenge 11: Private AKS Clusters
    • Create an AKS cluster deployment which has no public endpoints
  • Challenge 12: Monitoring and Container Insights
    • Monitor your cluster using AKS tooling

Prerequisites

  • Access to an Azure subscription with Owner access
  • See the Challenge 0 documentation for the rest of the prerequisites. Challenge 0 should be done as prework before you arrive at the hack

Repository Contents

  • ../Student/Resources
    • FabMedial app code and sample templates to aid with challenges

Contributors

Mostly based on topics from What the Hack. Modified/updated by Larry Claman and Paul Fisher.