Certified Kubernetes Application Developer (CKAD) Crash Course in 3 Days
Published by O'Reilly Media, Inc.
In-depth and Hands-on Practice for Acing the Exam
The ability to use, troubleshoot, and monitor Kubernetes as an application developer is in high demand. In response, the Cloud Native Computing Foundation (CNCF) developed the Certified Kubernetes Application Developer (CKAD) program to establish credibility and value in the job market. The exam is different from the typical multichoice format of other certifications. It’s completely performance based, under immense time pressure, and requires deep knowledge of the tasks.
Expert and CKAD Benjamin Muschko walks you through all the topics covered in the exam to fully prepare you to pass with flying colors.
What you’ll learn and how you can apply it
- When and how to apply Kubernetes concepts to manage an application
- Objectives, abilities, and tips and tricks to pass the CKAD exam
- The ins and outs of the kubectl command-line tool
And you’ll be able to:
- Demonstrate competency performing the responsibilities of Kubernetes application developers
- Solve real-world Kubernetes problems in a hands-on command-line environment
- Navigate and solve questions during the CKAD exam
This live event is for you because...
- You’re a developer using Kubernetes to configure, manage, and roll out applications.
- You want to understand the basics of Kubernetes by solving hands-on problems.
- You want to become a Certified Kubernetes Application Developer.
Prerequisites
- Experience with containers, particularly Docker
- A basic understanding of Kubernetes concepts and API resources
- Familiarity with a Unix environment, bash commands, and a command line-based text editor (optimally vim) and YAML
- A machine with access to a Kubernetes cluster, either local or remote (The recommended setup is to install minikube and kubectl.)
Recommended preparation:
- Review the CKAD Candidate Handbook (PDF)
- Attend Introduction to Kubernetes (live online training course with Sébastien Goasguen) or Kubernetes in 4 Hours (live online training course with Sander van Vugt)
Schedule
The time frames are only estimates and may vary according to how the class is progressing.
DAY 1:
Module 1: Exam Details and Resources (30 mins)
- Exam Objectives
- Curriculum Overview
- Exam Environment
- Tips & Tricks
- Practice Environments
Module 2: Application Design and Build (120 mins)
Image and Container Management
- Container Terminology
- Defining, Building, and Modifying Containers
- Creating a Container Image for a Go-Based Application
- Executing and Interacting with a Container
Pod and Namespace Management
- Kubernetes Primitives
- Object Management with kubectl
- Pod Creation and Lifecycle
- Pod Configuration Options
- Interacting with a Pod
- Creating a Pod and Interacting with it
- Understanding Namespaces
- Creating, Using, and Deleting Namespaces
- Using a Namespace for a Pod
Jobs and CronJob
- Using Jobs
- Creating and Inspecting a Job
- Using CronJobs
- Creating and Inspecting a CronJob
Break (5 minutes)
Multi-Container Pods
- Single vs. Multiple Containers
- Init Containers
- Creating a Pod with an Init Container
- Multi-Container Patterns
- Implementing the Sidecar Pattern
- Implementing the Adapter Pattern
- Implementing the Ambassador Pattern
State Persistence
- Understanding Volumes
- Creating a Pod with a Volume
- Understanding PersistentVolumes
- Creating a Pod with a PersistentVolume
Module 3: Application Deployment (90 mins)
Labels and Annotations
- Labels and Annotations
- Defining and Querying Labels and Annotations
Deployments
- Understanding Deployments
- Manual and Automatic Scaling a Deployment
- Deployment Rollout/Rollback Feature
- Deployment Strategies
- Managing a Deployment
Break (5 minutes)
Using Helm to Deploy an Application
- Understanding Helm
- Common Use Cases and Commands
- Deploying an Existing Chart with Helm
Module 4: Application Observability and Maintenance (120 mins)
API Deprecations
- Understanding API Deprecations
- Inspecting a Deprecation Message and Fixing it
Monitoring
- Understanding Monitoring in Kubernetes
- Using the Metrics Server
Break (5 minutes)
Probes and Health Checks
- Understanding Health Probing
- Defining a Health Probe for Different Use Cases
- Defining Health Probes for a Pod
Troubleshooting
- Troubleshooting Pods
- Troubleshooting Deployments
- Troubleshooting Services
- Troubleshooting and Fixing a Configuration Issue
DAY 2:
Module 5: Application Environment, Configuration and Security (180 mins)
Custom Resource Definitions (CRD)
- Understanding CRDs
- Discovering CRDs
- Creating a CRD
- Using an Existing CRD
Role-Based Access Control (RBAC)
- Understanding RBAC
- Creating a Role and RoleBinding
- Cluster-Wide RBAC and Aggregation
- Understanding Service Accounts
- Using a Service Account in a Pod
- Service Account Creation and Usage
Resource Requirements and Boundaries
- Handling Resources
- Container Resource Requests and Limits
- Assigning Resource Requests and Limits to a Pod
- Understanding ResourceQuotas and Limit Ranges
- Scheduling a Pod with Resource Constraints
ConfigMaps and Secrets
- Configuration Data
- Defining and Consuming ConfigMaps
- Using a ConfigMap from a Pod
- Defining and Consuming Secrets
- Using a ConfigMap from a Pod
Security Contexts for Pods
- Understanding Security Contexts
- Defining a Security Context for a Pod
DAY 3:
Module 6: Services and Networking (180 mins)
Services
- Understanding Services
- Service Types
- Creating and Accessing a Service
Break (5 minutes)
Ingress
- Understanding Ingresses
- Ingress Configuration Options
- Creating and Accessing an Ingress
Break (5 minutes)
Network Policies
- Understanding Network Policies
- Network Policy Rules
Your Instructor
Benjamin Muschko
Benjamin Muschko is a software engineer, consultant, and trainer with more than 20 years of experience in the industry. He specializes in cloud-native application development and transformation, container solutions, DevSecOps, and Continuous Integration/Continuous Delivery implementations. Ben is an author, a frequent speaker at conferences, and an avid open source advocate.