Are you working with Kubernetes already, but still find yourself looking for clarification around advanced concepts?
In this Advanced Kubernetes course led by Jérôme Petazzoni you'll learn advanced topics such as deploying stateful apps, managing capacity and addressing security concerns.
This course has been developed by Jérôme Petazzoni, who was part of the team that created Docker. He has been teaching Docker ever since Docker existed, then Swarm, then Kubernetes.
This is an expanded course covering increasingly complex topics. Content has been curated on each topic to the very essential concepts, without encumbering students with all the extra sugar that can be distracting. Students will leave with the ability to understand how things work, what each option and flag is doing, instead of including a random annotation or option by sheer copy paste.
On the practical side, Jérôme will provision k8s clusters for the students and the first thing they do is SSH into a lab environment and directly interact with Kubernetes. Students are not spending time on the "grunt work" of tediously copy-pasting configuration and YAML.This is a hands-on course that favors work that actually illustrates Kubernetes' complex concepts and provokes "aha!" moments.
Learn how to:
Starts at 9:00 AM BST (9:00 AM UTC)
Our team is happy to discuss other options with you.
Contact us at firstname.lastname@example.org and mention ref:
Private tuition and large-group discounts are also available. Find out more here.
Who should take this course?
This is an advanced Kubernetes course for devs, ops, or even architects, who have started working with Kubernetes, and want to dive deeper and learn advanced concepts around application packaging, capacity planning, resource management, security, operators, and the specific mechanisms associated with stateful application deployment like databases.
To make the most of this course, you will need to have a basic understanding of Kubernetes fundamentals. You should know:
- what is a Pod, a Deployment, a Service;
- how to deploy an app and expose it on a Kubernetes cluster;
- basic notions of what are labels, selectors, YAML manifests.
Packaging applications with Kustomize and Helm
- Deploying a microservices app with YAML manifests
- Kustomize and Helm concepts; when to use which?
- Writing and applying Kustomize overlays
- Installing charts with Helm
- Helm 2, Helm 3, and the Helm Hub
- Writing a basic Helm chart for the whole app
- Writing advanced Helm charts for app components
- Helm internals
Capacity management and Kubernetes operators
- Setting compute resource limits
- Manage cluster allocation and quotas
- What happens when the cluster is at, or over, capacity
- The core metrics pipeline
- Extending the Kubernetes API
- Isolating workloads with Network Policies
- Authentication with tokens and certificates
- Authorization with RBAC (role-based access control)
- Working with Service Accounts, Roles, Role Bindings
- Preventing privilege escalations with Pod Security Policy
- User management with OIDC, certificates, the CSR API
Application configuration and stateful apps
- Configuring applications with ConfigMaps and Secrets
- Using the downward API to expose information
- Deploying apps with Stateful Sets (use case: Consul)
- The difference between volumes and Persistent Volumes
- Understanding Persistent Volume Claims and Storage Classes
- Local persistent volumes vs highly available persistent volumes
- Example: deploying a database that can withstand node outages