Description
Overview:
This class prepares students for the Certified Kubernetes Application Developer (CKAD) exam. Kubernetes is a Cloud Orchestration Platform providing reliability, replication, and stability while maximizing resource utilization for applications and services. By the conclusion of this hands-on training you will go back to work with all necessary commands and practical skills to empower your team to succeed, as well as gain knowledge of important concepts like Kubernetes architecture and container orchestration.
We prioritize covering all objectives and concepts necessary for passing the Certified Kubernetes Application Developer (CKAD) exam. You will command and configure a high availability Kubernetes environment (and later, build your own!) capable of demonstrating all āK8sāā features discussed and demonstrated in this course. Your week of intensive, hands-on training will conclude with a mock CKAD exam that matches the real thing.
This class prepares students for the CKAD exam.
Prerequisite(s):
- Basic Linux skills are helpful.
- Familiarity with a text editor like vi, vim, or nano is helpful.
Audience:
- Anyone who plans to work with Kubernetes at any level or tier of involvement
- Any company or individual who wants to advance their knowledge of the cloud environment
- Application Developers
- Operations Developers
- IT Directors/Managers
Outline:
Module 1: From Containers to Kubernetes
- Kubernetes Architecture
- Define, build and modify container images
- Pods and the Control Plane
- Deploy Kubernetes using Ansible
Module 2: Cluster Basics
- Namespaces and Fundamental Kubectl Commands
- Isolating Resources with Kubernetes Namespaces
- Contexts
- Cluster Access with Kubernetes Context
- Kubectl get and sorting
- Listing Resources with kubectl get
- Examining Resources with kubectl describe
Module 3: Pod Basics
- YAML and how to read it
- Manifests for Pods
- Create and Configure Basic Pods
- API Versioning and Deprecations
Module 4: Container Health, Security, and Observability
- Kubectl port-forward
- Debugging via kubectl port-forward
- Imperative vs. Declarative Resource Creation
- Kubectl exec and cp
- Performing Commands inside a Pod
- Readiness and Liveness Probes
- Implement Probes and Health Checks
- Security Contexts for Pods
- Understanding Security Contexts
Module 5: Resource Management
- Limits, Requests, and Namespace ResourceQuotas
- Understanding and Defining Resource Requirements, Limits and Quotas
- Kubectl Top and Application Monitoring
- Admission Controller
- Create a LimitRange AdmissionController
Module 6: RBAC
- LEC: Role Based Access Control
- LAB-S1: Role Based Access Control
- LAB-S2: RBAC Distributing Access
Module 7: Logging
- Logging with kubectl log
- Advanced Logging Techniques
Module 8: Ephemeral Storage
- Creating Ephemeral Storage For Fluentd Logging Sidecar
- Best Practices for Container Customization
- ConfigMaps and Volume Mounting
- Persistent Configuration with ConfigMaps
- Secrets
- Create and Consume Secrets
Module 9: Persistent Storage
- Persistent Volumes, Claims, and StorageClasses
- Using PersistentVolumeClaims for Storage
- Stateful Containers for Testing
- Persistent Storage with NFS
Module 10: Multi-Container Pod Design
- Multi-Container Pods
- Understand the Sidecar Multi-Container Pod Design Pattern
- Init Containers
- Understand the Init Container Multi-Container Pod Design Pattern
Module 11: Deployments
- Labels
- Understanding Labels and Selectors
- Annotations
- Insert an Annotation
- ReplicaSets
- Create and Configure a ReplicaSet
- DaemonSets
- Deployments- Purpose and Advantages
- Writing a Deployment Manifest
- Deployments- Version Control
- Performing Rolling Updates and Rollbacks with Deployments
- Blue/Green and Canary Deployment Strategies
- Advanced Deployment Strategies
- Deployments- Horizontal Scaling
- Horizontal Scaling with kubectl scale
- Horizontal Pod Autoscaling
- Kubectl patch
- Patching Deployments and Nodes
Module 12: Jobs and CronJobs
- Jobs and CronJobs
- Understand Jobs and CronJobs
Module 13: Affinity and Anti-Affinity
- Taints, Tolerations, and Pod Affinity
- Tainted Nodes and Tolerations
Module 14: NetworkPolicy
- NetworkPolicy
- Deploy a NetworkPolicy
Module 15: Services and Ingress
- Services- LoadBalancer, NodePort, and ClusterIP
- Provide and troubleshoot access to applications via services
- Networking Plugins
- Ingress Controllers
- Use Ingress Rules to Expose Applications
Module 16: DNS
- LEC: Hostnames and FQDNs
- Hostnames and FQDNs
Module 17: The Helm Package Manager
- Helm
- Using the Helm Package Manager to Deploy Existing Packages
- CHALLENGE LAB: Setting up a single tier service mesh
- A Completed Project
Module 18: Extending Kubernetes
- Custom Resource Definitions
- Custom Resource Definitions (CRDs)
Module 19: Troubleshooting
- Troubleshooting
Module 20: CKAD
- Tips to Pass your CKAD Exam!
- CKAD Practice Drill
- CKAD Exam Bookmarks
Module 21: Bonus Labs
- Calicoctl
- Deploy a Kubernetes Cluster using Kubeadm
- Create ServiceAccounts for use with the Kubernetes Dashboard
- Sourcing Secrets from HashiCorp Vault
- VNC Desktop
- Saving Your Progress With GitHub
- Create a Cluster Docker Registry
- Advanced Kubernetes Challenge – Build an Application
Reviews
There are no reviews yet.