dgt_k8s07 – Tuning

Course Title: dgt_k8s07 – Tuning

Description:

The course “dgt_k8s07 – Kubernetes Tuning” covers the optimization of Kubernetes deployments and is intended for developers and system administrators. The course covers the essential aspects of Kubernetes tuning, focusing on application performance, reliability, and scalability: first you learn how the scheduler, the kubelet and the autoscalers make their decisions, then you tune real workloads by instructing an AI agent in natural language.

Tuning is a matter of numbers, and numbers are easy to get wrong. That is why you will not type manifests by hand: you will tell the machine what behavior you expect (“this service needs 20 seconds to warm up and must never be killed during a traffic spike”), let it propose probes, requests, limits and autoscaler settings, and then check each value against the theory, against the metrics, and against a load test you ask it to run.

Course Objectives:
– Understand how Readiness Probes and Liveness Probes work, and describe them to the machine precisely enough that applications keep running smoothly.
– Learn how resource Limits and Requests affect scheduling and throttling, and judge whether the values the machine proposes are appropriate.
– Learn the Horizontal Pod Autoscaler (HPA) for dynamic scaling based on real-time metrics, directing its configuration and verifying how it behaves under load.
– Explore Kubernetes Event-driven Autoscaling (KEDA) and have event-based autoscaling implemented from a clear natural-language specification.

Modules:

  1. Introduction to Kubernetes Tuning
  2. Overview of Kubernetes tuning concepts and best practices.
  3. Importance of monitoring and performance optimization in a Kubernetes environment.

  4. Probes for Application Health

  5. Deep dive into Readiness Probes and Liveness Probes.
  6. Practical examples: asking the machine to configure probes for various application scenarios and reviewing what it produces.
  7. Best practices to avoid common pitfalls with probe configurations.

  8. Resource Management: Limits and Requests

  9. Understanding resource limits vs. requests in Kubernetes.
  10. Techniques to set optimal resource constraints.
  11. Analyzing the impact of resource settings on cluster performance.

  12. Scaling Applications with HPA

  13. Introduction to Horizontal Pod Autoscaler (HPA) functionality.
  14. HPA based on CPU, memory usage, and custom metrics: specifying the target and verifying the result.
  15. Real-world scenarios for effective scaling strategies.

  16. Event-driven Scaling with KEDA

  17. Overview of Kubernetes Event-driven Autoscaling (KEDA).
  18. Event sources and triggers for autoscaling, described in natural language and checked in the generated objects.
  19. Case studies demonstrating KEDA in action for various workloads.

  20. Natural-language Labs and Projects

  21. Interactive labs in which you direct the machine to apply the concepts learned, then measure and validate the outcome.
  22. Project-based assignments that simulate real-world tuning scenarios, including spotting and correcting the machine’s mistakes.

  23. Advanced Topics and Best Practices

  24. Exploring additional scaling options like the Vertical Pod Autoscaler (VPA).
  25. Strategies for maintaining optimal cluster performance.
  26. Discussion on future trends in Kubernetes tuning.

Target Audience:
This course is intended for DevOps engineers, cloud architects, system administrators, and developers who work on Kubernetes tuning. Prior knowledge of Kubernetes concepts is recommended, as this is an advanced course.

Certification:
Upon completion, participants receive a certificate of completion for the Kubernetes tuning course.

The students can push their exercises to the Academy DevOps & SRE Git project. For this module, create a folder with your username as its name in the following subfolder: https://github.com/Garanti-Del-Talento/gdt_academy/tree/main/dgt_k8s07__tuning