Hands-On Introduction to Kubernetes
Internals Based Approach
Description
Objective
Provides an introduction to Kubernetes technology - architecture, internals, deployment, and testing. At the end of the course, participants would have a good understanding of the technology, and would be able to
Transition their applications to Kubernetes
Evaluate Kubernetes distributions, CNI plugins
Evaluate tools in the Kubernetes ecosystem
All concepts are reinforced with hands-on exercises.
Infrastructure Requirements
Google Cloud based VMs (ubuntu 18.04) for each participant
2core/7.5 GB/100 GB - Nos: 1
1core/3.75GB/100GB - Nos: 3
Internet Access for the VMs
Account created on container registry such as quay io for storing container images
Participants need to take an account in the Google Cloud Platform (credit card needed), and provision the VMs. The Google cloud platform has a free plan which the participants can explore.
Course Structure
The course is structured as 16 modules with lecture videos and exercises, and the estimated completion time is 32 hours.
The course begins with lectures on containers, and container images as a good grasp of these technologies is essential for understanding Kubernetes. Virtualization, namespaces, cgroups, container runtimes, overlay filesystems, and container filesystems are covered. Next, we attempt to install a Kubernetes cluster on the Google Cloud platform using kubeadm, and explore Kubernetes resources for compute and storage - pods, and volumes.
The course then moves on to examine the Kubernetes architecture in detail such as the etcd, API server, scheduler, etc. We then take an in-depth look at the networking internals, and discuss how the Calico CNI plugin works. We then discuss advanced objects of Kubernetes which use pods, volumes and services as building blocks. These include deployments, statefulsets, daemonsets, configmaps, probes. Next, we install a sample web application using django and postgres onto Kubernetes to illustrate the various Kubernetes resources discussed so far.
Ingress and load balancer which is used by external clients to access applications is discussed next, and helm packaging is introduced. We then examine authentication, authorisation, and admission control which are important aspects for deployment of applications.
Network policy and service mesh (istio) are covered next and help in providing platform agnostic firewall type rules, and tools for managing microservice complexity. We then take a look at monitoring and logging which are critical for devops. Development tools such as skaffold that are needed to speed up the code, test, debug loop are covered next. Finally, we wrap-up the course and introduce operators and GitOps for further reading.
Non-Goals
Description of other Kubernetes installation tools such as kops, or of Kubernetes distributions - cloud or on-prem - is not provided.
What You Will Learn!
- Provides an introduction to Kubernetes technology - architecture, internals, deployment, testing
- Focuses on the internals of Kubernetes
- Includes sessions on containers, networking, packaging, service mesh, monitoring and development tools
- All concepts are reinforced with hands-on exercises
- At the end of course, attendees will be able to prototype, debug applications in Kubernetes, and evaluate tools, distributions in the Kubernetes ecosystem
Who Should Attend!
- Devops engineers, developers, managers starting their Kubernetes journey