Course Overview
Designed for cluster administrators, this course covers essential Kubernetes setup and maintenance. It provides a solid foundation for the CKA exam while emphasising real-world skills. Unlike many competitors, we focus on practical, project-based learning. Participants who complete the course will be well-prepared for both the exam and actual work environments.
Who should attend
Cluster administrators, platform engineers and operations teams responsible for installing, configuring and maintaining Kubernetes clusters, including those preparing for the CKA exam.
What you'll learn
- Understand cluster architecture and install a Kubernetes cluster from scratch
- Configure and maintain clusters, including in-place version upgrades
- Back up and restore etcd, and run it as an external cluster
- Secure the API server with RBAC and authenticate users against OIDC or LDAP
- Monitor clusters with Prometheus and Loki, and manage resources, requests, limits and quotas
- Control workload placement with scheduling, affinity and taints/tolerations
- Administer cluster networking, including kube-proxy, MetalLB and NetworkPolicies
- Provide cluster storage through the CSI storage layer
- Prepare effectively for the CKA exam with real-world, project-based skills
Course Prerequisites
Students must be familiar with using kubernetes and should have an understanding of the basic kubernetes objects such as nodes, pods, deployments and services. We recommend students to follow our Core Kubernetes course before attending this course.
Outline
This course is engineered for cluster administrators, offering comprehensive training in installing, setting up, and configuring a Kubernetes cluster. While it serves as an excellent primer for the CKA exam, its true strength lies in preparing participants for real-world scenarios. Unlike many competitors, we prioritise hands-on, project-centric skills. Participants who actively complete the course will be well-prepared for the CKA exam and, more importantly, will have the specialised expertise to make a meaningful impact in real-world operations.
For those that are seeking certification, and wonder how this course maps to the CKA requirements:
- Cluster Architecture, Installation & Configuration: this is the core of this course
- Workloads & Scheduling: basics covered in Core Kubernetes, define namespace wide resource limit defaults and scheduling details (e.g., affinity, toleration's etc.) are covered during this course.
- Service & Networking: basics covered in Core Kubernetes while CNI and network policies are covered in this course
- Storage: mostly covered in Core Kubernetes. During this course we explore on-prem storage solutions
- troubleshooting: application troubleshooting is part of Core Kubernetes, during this course we cover general cluster and nodes related problems
During the workshop, students will set up and configure a 5-node kubernetes cluster with a HA control-plane.
Cluster Architecture
- Recap of k8s architecture (Master and Worker Nodes)
- Recap control plane components (APIServer, Controller-Manager, Scheduler and etcd)
- Choosing a container runtime environment (docker, containerd, cri-o)
- Discuss the role of Container Network Interface (CNI)
- A deeper dive into the role of etcd
- Planning a cluster (e.g, size, machine types, etc)
Installation
- Discuss different installation techniques (kubeadm, kops, …)
- Using kubeadm to install a cluster
- Set up a control plane
- Using your own image registry for the control-plane (and cluster)
- Discuss Admission Plugins
- Installing a CNI implementation
- Set up an initial worker nodes
- Adding masters to your cluster
- Configuring kubeadm using YAML
- Setup a HA etcd cluster
- understand etcd
- Introduce raft (consensus algorithm)
- Topologies for Highly Available clusters (HA) (stacked vs external etcd nodes)
Configuring Role-Based Access Control (RBAC)
- recap RBAC
- Planning user-access
- User access workflows
- Managing cluster administrators and users using RBAC
- Limiting object and namespace access
- Using OpenID (OIDC) to authenticate cluster users
- Integrating with LDAP
Configuration
- Configuring your k8s installation
- Introduce etcd admin tools etcdctl and etcdutl
- Backing up your etcd configuration
- Scaling worker nodes (adding/removing nodes)
- Discuss Upgrading strategies
- Upgrade a cluster to a new k8s version
- General Configuration tuning Best Practices
- Installation and configuration troubleshooting
- Encrypting secrets at rest (etcd)
Monitoring
Monitoring using Prometheus/Grafana
- Using Prometheus
- Installing and configuring Prometheus/Grafana (basics)
- Discuss federation and scalability-
- Understand prometheus Service Discovery
- Using prometheus relabeling
- Understand the structure of a metric
- Understand the different metric types (counter, gauge, histogram, …)
- Adding Service Monitors
- Using Grafana dashboards
- Importing existing dashboards
Log aggregation with Loki
- introduce Loki
- Understand the Architecture of Loki
- Appreciate the indexing behaviour of Loki
- Discuss the benefits of using Loki over other logging solutions
- Discuss Loki configuration (promtail, storage, scraping, …)
- Setting up Loki using helm
Storage
- Recap volumes
- Reiterate the difference between static and dynamic storage provisioning
- Setting up storage classes
- Discuss on-prem dynamic storage solutions
- Setting up a distributed storage solution (Rook/Ceph)
- Monitoring storage
Workloads & Scheduling
Resources
- recap of container resources (requests/limits)
- setting up default resource limits per namespace
- Define and manage resource quotas
- Monitoring workload resource
Pod Scheduling
- Introduce the node selection process
- Scheduling pods to nodes using node selectors
- Keeping pods away from nodes using taints and tolerations
- Inviting pods to nodes using affinity
- Co-locating (or not) pods using podAffinity and podAntiAffinity
Networking
- Recap networking objects (services, ingress, …)
- Discuss kubeproxy
- Using LoadBalancer service types for on-prem clusters
CoreDNS
- overview of core-dns
- recap of DNS records in kubernetes (A/AAAA/SRV/CNAME/…)
- Understanding the default configuration
- Configure upstream nameservers
- Configure logging
Kube proxy
- recap the role of kube-proxy
- explore different modes (iptables, ipvs)
- understand how kube-proxy uses iptables
- discuss issues with using iptables
- performance tuning for iptables mode
- configure and explore IPVS
- use different IPVS schedulers
MetalLB
- Introduce MetalLB as a load-balancer for on-prem clusters
- Understand the architecture of MetalLB
- Pros and cons of Layer-2 vs BGP
- Confusing IP pools for MetalLB
- Using MetalLB CRDs
Network Policies
- Explain Network Policies
- Understand the default behaviour in kubernetes
- Protecting your Network
- Protecting your Pods
- Allowing and Denying traffic Ingress and *Egress
- Isolating namespaces
- Allowing based on pods and/or namespaces
- Allowing based on IP Addresses
- Port level access
- Policy Patterns
Technology stacks (Discussion)
- Recap Cluster Observability and monitoring
- Recap Cluster logging (ELK/Elastic Stack, Kibana, Loki, Grafana)
- RecapResource and performance monitoring (Prometheus, Grafana)
- Reiterate the importance of gitops
- Discuss solutions for Secrets
- Tools for Managing certificates
- Using replication for namespace-bound objects
- Other tools
Frequently asked questions
How does this course map to the CKA exam?
Cluster architecture, installation and configuration (the heart of the CKA curriculum) is the core of this course, complemented by workloads & scheduling, networking, monitoring and troubleshooting. Participants who actively complete the labs are well-prepared for the exam.
What is the difference with the Core Kubernetes Masterclass?
K8S-CORE teaches using Kubernetes as a developer/practitioner; this course teaches running it: installing, configuring and operating the cluster itself. We recommend following the core course first.
How hands-on is the course?
Very. Sixteen lab sessions take you from building a cluster with kubeadm through joining nodes, running external etcd and backing it up, wiring in OIDC/LDAP authentication, MetalLB, NetworkPolicies, storage and a live in-place cluster upgrade.
Do I need to install anything on my laptop?
No. Every student gets their own pre-configured cloud machines to build and break a real cluster on, so all you need locally is an SSH client (already present on Linux, macOS and Windows). Work in the editors installed on the machine (vim, LazyVim, Emacs) or connect your own with VS Code Remote Development or IntelliJ's SSH remote development. Login details are emailed a week before the course.
How long is the Kubernetes Administration & Configuration course?
4 days, on-site or online. Sessions can run on consecutive days or be spread out to fit your team's schedule.
What are the prerequisites?
Students must be familiar with using kubernetes and should have an understanding of the basic kubernetes objects such as nodes, pods, deployments and services. We recommend students to follow our Core Kubernetes course before attending this course.
How large are the groups?
Deliberately small so the trainer can adapt to every participant: at most 10 on-site and 7 online.
In which languages can the course be delivered?
English, French or Dutch.