All Kubernetes deployments can benefit when these issues are addressed - the sooner the better. I
n this Advanced Kubernetes for Developers 4-day intensive course, these topics and more are covered. The comprehensive chapters and detailed hands-on labs will introduce you to the concepts, and then give you the opportunity to try them out. Upon course completion, you will be ready to implement what you’ve learned. For complete information on what is covered, view the detailed outline and training objectives below.
Objectives
• Understand Kubernetes deployment strategies like "Ramped", "Canary" and "a/b testing"
• Autoscale applications based on network load and available resources
• Recognize common K8s design patterns
• Configure and take advantage of Kubernetes' built-in logging features
• Setup and use cluster-level logging with the ELK logging stack
• Design and configure liveness and readiness health check probes
• Take advantage of best practices for workload and pods
• Learn the correct ways to configure persistent volumes
• Review methods for tightening cluster security
• Understand service mesh capabilities and benefits
• Implement observability for your cluster using built-in and 3rd party tools
Audience
This Advanced Kubernetes training course is designed to help DevOps personel, platform engineers and software developers move beyond basic deployments, and make use of advanced features available in Kubernetes and related tools.
Prerequisites
Students registering for this course should have attended one of the Web Age courses listed below, or have equivalent experience and understanding of Docker and Kubernetes basics. For the labs, students should be familiar with working at a terminal or command prompt.
WA3003-Docker-and-Kubernetes-Fundamentals
WA3007-Kubernetes-for-Developers
Duration
Four days
Outline for Advanced Kubernetes Training
Chapter 1. Deployment Strategies
• Rolling Updates
• Parameters for Rolling Updates
• Strategy Parameters in Deployment Specs
• Deployment Strategies
• Recreate
• Ramped
• Blue/Green
• Canary
• a/b Testing
• Deployment Status
• History
• Versioning of Deployments
• Labeling a Deployment Version in Kubernetes
• Versioning with Helm
• Deployment Tools
Chapter 2. Autoscaling
• Autoscaling
• HorizonalPodAutoscaler (HPA)
• Autoscale Command
• Autoscale Yaml
• Generating Traffic for Testing
• Response to Changing Traffic
• Get HPA --watch Mode
• Scaling Based on Requested Resources
• Scaling Based on Direct Value
• Metrics Types for Scaling
• Scaling Based on Multiple Metrics
Chapter 3. Design Patterns
• Design Patterns
• Core Patterns Overview
• Predictable Demands
• Health Probe
• Automated Placement/Scheduling
• Structural Patterns Overview
• Init Container
• Sidecar
• Ambassador
• Adapter
• Scatter/Gather
• Work Queue
• Leader/Primary Active Election
• Service Mesh Pattern
• Behavioral Patterns Overview
• Batch
• Stateful Service
• Service Discovery
• Advanced Patterns Overview
• Controller
• Operator
Chapter 4. Logging and Monitoring in K8s
• Logging in Kubernetes
• Application Logging
• Cluster Level Logging
• Pod and Container Logs
• Log Rotation
• Configuring Kubernetes Log Rotation
• Kubernetes System Component Logs
• Log Locations
Chapter 5. External Log Systems
• Cluster Level Logging
• Node Logging Agent
• Sidecar Container Logging
• Direct Log Publishing Architecture
• Logging Backend Systems
• External Log Systems Overview
• ELK Logging Stack
• EFK Logging Stack
• Google Cloud's Operations Suite
Chapter 6. K8s Probes and Heath Check Best Practices
• Probes in Kubernetes
• Health States
• Order of Probes
• Health as Determined by Controllers
• Pod Restart Policies
• Probe Handler Types
• "exec" Probe Type Example
• "tcpSocket" Probe Type Example
• "httpGet" Probe Type Example
• "httpGet" Endpoint Example Code
• Setting a Liveness Probe
• Liveness Probe (cont.)
• Setting a Readiness Probe
• Checking for Probes
• Liveness Probe Best Practices
• Readiness Probe Best Practices
Chapter 7. Workload and Pod Best Practices
• Workloads
• Best Practices
• Keep Kubernetes Updated
• The Right K8s Resource for Your Workload
• Workload Resources
• Use Smaller Container Images
• Always Set Resource Requests and Limits
• Implement the Appropriate Health Probes
• Implement Role Based Access Control (RBAC)
• Use Namespaces
Chapter 8. Storage and Security Best Practices
• Kubernetes Storage
• StorageClass Resources
• Storage Best Practices
• Including PVCs in container configurations
• Keeping PVs independent of container configurations
• Creating and using default storage classes
• Giving StorageClasses meaningful names
• Security Best Practices
• Use third-party Authentication
• Protect the Kubernetes etcd data store
• Isolate Kubernetes Nodes
• Look for Anomalous Network Communications
• Use Process Whitelisting
• Turn on Audit Logging
• Lock Down Kubelet
Chapter 9. Service Mesh
• What is a Service Mesh
• Service Mesh Advantages
• Service Mesh Features
• Service Discovery
• Load Balancing
• Reliability/Failure Recovery
• Observability
• Security/Encryption
• Downsides to Service Mesh
• Service Mesh Implementations
• Installing a Typical Service Mesh
Chapter 10. Observability
• Observability
• Components of Observability
• Logs
• Metrics
• Performance Metrics
• Traces
• Observability Tools
• FluentD
• Prometheus
• Prometheous Architecture Diagram
• Jaeger
• Jaeger User Interface
• Grafana
• Grafana Visualization Components
Lab Exercises
Lab 01. Playing with Version, History, and Rolling Updates
Lab 02. Autoscaling
Lab 03. Game_Name that Pattern
Lab 04. Logging and Monitoring with native K8s tools
Lab 05. Setting up External Logging in K8s
Lab 06. Setting up Readiness Probes and Health Checks
Lab 07. Design Game_Best Workload for your App
Lab 08. Running CIS checks using kube-bench
Lab 09. Setting up a basic service mesh
Lab 10. Pixie Demo_Tracing
Lab 11. Troubleshooting and Debugging in K8s