Duration
5 Days
30 CPD hours
This course is intended for
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
Overview
All topics required by the CKAD exam, including:
Deploy applications to a Kubernetes cluster
Pods, ReplicaSets, Deployments, DaemonSets
Self-healing and observable applications
Multi-container Pod Design
Application configuration via Configmaps, Secrets
Administrate cluster use for your team
A systematic understanding of Kubernetes architecture
Troubleshooting and debugging tools
Kubernetes networking and services
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.
Kubernetes Architecture
Components
Understand API deprecations
Containers
Define, build and modify container images
Pods
Master Services
Node Services
K8s Services
YAML Essentials
Creating a K8s Cluster
kubectl Commands
Kubernetes Resources
Kubernetes Namespace
Kubernetes Contexts
Pods
What is a Pod?
Create, List, Delete Pods
How to Access Running Pods
Kubernetes Resources
Managing Cloud Resource Consumption
Multi-Container Pod Design
Security Contexts
Init Containers
Understand multi-container Pod design patterns (e.g. sidecar, init and others)
Pod Wellness Tracking
Networking
Packet Forwarding
ClusterIP and NodePort Services
Provide and troubleshoot access to applications via services
Ingress Controllers
Use Ingress rules to expose applications
NetworkPolicy resource
Demonstrate basic understanding of NetworkPolicies
Network Plugins
Defining the Service Mesh
Service mesh configuration examples
ReplicaSets
Services
ReplicaSet Function
Deploying ReplicaSets
Deployments
Deployment Object
Updating/Rolling Back Deployments
Understand Deployments and how to perform rolling updates
Deployment Strategies
Use Kubernetes primitives to implement common deployment strategies (e.g. blue/green or canary)
Scaling ReplicaSets
Autoscaling
Labels and Annotations
Labels
Annotations
Node Taints and Tolerations
Jobs
The K8s Job and CronJob
Understand Jobs and CronJobs
Immediate vs. scheduled internal use
Application Configuration
Understanding and defining resource requirements, limits and quotas
Config Maps
Create & consume Secrets
Patching
Custom Resource Definition
Discover and use resources that extend Kubernetes (CRD)
Managing ConfigMaps and Secrets as Volumes
Storage
Static and dynamic persistent volumes via StorageClass
K8s volume configuration
Utilize persistent and ephemeral volumes
Adding persistent storage to containers via persistent volume claims
Introduction to Helm
Helm Introduction
Charts
Use the Helm package manager to deploy existing packages
Application Security
Understand authentication, authorization and admission control
Understand ServiceAccounts
Understand SecurityContexts
Application Observability and Maintenance
Use provided tools to monitor Kubernetes applications
How to Troubleshoot Kubernetes
Basic and Advanced Logging Techniques
Utilize container logs
Accessing containers with Port-Forward
Debugging in Kubernetes
Hands on Labs:
Define, build and modify container images
Deploy Kubernetes using Ansible
Isolating Resources with Kubernetes Namespaces
Cluster Access with Kubernetes Context
Listing Resources with kubectl get
Examining Resources with kubectl describe
Create and Configure Basic Pods
Debugging via kubectl port-forward
Imperative vs. Declarative Resource Creation
Performing Commands inside a Pod
Understanding Labels and Selectors
Insert an Annotation
Create and Configure a ReplicaSet
Writing a Deployment Manifest
Perform rolling updates and rollbacks with Deployments
Horizontal Scaling with kubectl scale
Implement probes and health checks
Understanding and defining resource requirements, limits and quotas
Understand Jobs and CronJobs
Best Practices for Container Customization
Persistent Configuration with ConfigMaps
Create and Consume Secrets
Understand the Init container multi-container Pod design pattern
Using PersistentVolumeClaims for Storage
Dynamically Provision PersistentVolumes with NFS
Deploy a NetworkPolicy
Provide and troubleshoot access to applications via services
Use Ingress rules to expose applications
Understand the Sidecar multi-container Pod design pattern
Setting up a single tier service mesh
Tainted Nodes and Tolerations
Use the Helm package manager to deploy existing packages
A Completed Project
Install Jenkins Using Helm and Run a Demo Job
Custom Resource Definitions (CRDs)
Patching
Understanding Security Contexts for Cluster Access Control
Utilize container logs
Advanced Logging Techniques
Troubleshooting
Calicoctl
Deploy a Kubernetes Cluster using Kubeadm
Monitoring Applications in Kubernetes
Resource-Based Autoscaling
Create ServiceAccounts for use with the Kubernetes Dashboard
Saving Your Progress With GitHub
CKAD Practice Drill
Alta Kubernetes Course Specific Updates
Sourcing Secrets from HashiCorp Vault
Example CKAD Test Questions