Bookmarks
Bookmarks bar
Ultimate CKA
About CKA Exam
- CKA_Curriculum_v1.20
- CNCF Kubernetes Curriculum
- CKA: Exam Registration
- My Dashboard
- My Profile
- Scheduling or Rescheduling an Exam
- Exam Refund Policy
- CKA & CKAD Environment
- CKA/CKAD - Exam User Interface
- Important Instructions: CKA and CKAD
- Candidate Requirements - T&C DOC
- Candidate Identification & Authentication
- Exam Rules and Policies
- Taking the Exam - T&C DOC
- WebDelivery Compatibility Check
- Candidate Handbook
- Certificate and Confidentiality Agreement
- Important Instructions: CKA and CKAD
- Certification Verifications
Basics
- Kubectl Cheat Sheet
- Concepts
- Tasks
- Reference
- Pods Overview
- Overview of Kubectl
- Kubectl Reference
- Kubernetes Cluster Architecture & Components
- Managing Kubernetes Objects Using Imperative Commands | Kubernetes
- JSONPath Support | Kubernetes
- Learn Kubernetes Basics
Commands
- kubectl create
- kubectl run
- kubectl apply
- kubectl get
- kubectl edit
- kubectl expose
- kubectl scale
- kubectl top
- kubectl logs
- kubectl config...
- kubectl explain
- kubectl delete
- kubectl describe
- kubectl exec
- kubectl label
- kubectl rollout
- kubectl set
- kubectl drain
- kubectl cordon
- kubectl taint
- kubectl uncordon
- kubectl api-resource
- kubectl version
YAML
- Multi-Container YAML
- Deployments YAML
- Service YAML
- DaemonSet YAML
- ConfigMaps YAML
- Secret YAML
- Job YAML
- CronJob YAML
- NodeSelector | YAML
- HostPath YAML
- ClusterRole YAML
- ClusterRoleBinding YAML
- Role YAML
- RoleBinding YAML
- Persistent Volumes (PV) YAML
- Persistent Volume Claim (PVC) YAML
- Configuring Pod with Volume (PVC)
Tools & Commands | Linux
- Systemctl | Linux
- Journalctl | Linux
- Top 50+ Linux Commands with Example
Practice Tests
- CKA Practice Test 1
- CKA Practice Test 2
- CKA Practice Tests: (alijahnas)
- CKA Practice Tests (stretchcloud)
- CKA Practice Test (David-VTUK)
Kubernetes Architecture
- Kubernetes Architecture | K8s Docs
- Kubernetes Architecture | RedHat
- Kubernetes Architecture | Aqua
- Kubernetes Architecture | Platform 9
Installing Kubernetes using Kubeadm
- Installing Kubeadm
- Installing Docker
- Creating K8s Cluster using Kubeadm
- K8s High-Availability
- Configuring Kubernetes Cluster using Kubeadm | Mirantis
- K8s Required Ports
Pods
- Pods Overview
- Pod Lifecycle
- Static Pods
- Configuring Pods & Containers
- Define Environment Variables for a Container
ReplicaSet & Replication Controller
- Replication Controller
- ReplicaSets
- ReplicaSet YAML | Kubernetes
NameSpaces
- Namespace
- Why Namespaces?
- Namespace Walkthrough
- Namespaces Tasks
- Namespaces Usecases
Upgrading Kubernetes Cluster using Kubeadm
- "kubeadm upgrade" command
- Safely Drain a Node
- Upgrading Kubernetes using "Kubeadm"
- Upgrading Kubernetes Cluster | Platform9
ETCD
- ETCD Overview | Rancher
- ETCD Overview | RedHat
- Interacting with ETCD | ETCD.io
- ETCD | GitHub
- Operating ETCD clusters for Kubernetes
- Backing Up ETCD
RBAC
- Authorization Overview
- Using RBAC Authorization
- RBAC Overview | Sumologic
- Demystifying RBAC in Kubernetes | CNCF
- 3 Realistic Approaches to Kubernetes RBAC | TheNewStack.io
Labels & Selectors
- Labels and Selectors Overview
- Using Labels Effectively
- Updating Labels
- "kubectl label" Command | Reference
- Labels vs. Selectors vs. Annotations
- Well-Known Labels, Annotations and Taints | Kubernetes
Annotations
- Annotations
- Updating Annotations
Multi-Container Pod
- Multi-Container Pod Overview | Mirantis
- Multi-Container Pod Overview | Linchpiner
- Multi-Container Pod Design Patterns | MatthewPalmer.net
- Communicating through Shared Volume
- How Pod Manages Multiple Containers
- Sidecar - Multi-Container Design Pattern
- Adapter - Multi-Container Design Pattern
- Ambassador - Multi-Container Design Pattern
- Init Container
Deployments
- What is Deployment | RedHat
- Deployment Overview | Google Cloud
- Deployment
- Updating Deployment
- Managing Deployment
- Pausing & Resuming Deployment
Rolling Update and Rolling Back
- Performing rolling updates
- Rolling Update Deployment
- Checking Rollout History of a Deployment
- Rolling Back to a Previous Revision
- Rolling Back a Deployment | kubectl set
Scaling Applications
- Scaling a Deployment
- Scaling your application
Jobs
- Jobs
- Defining a Job | YAML
- Running an example Job
- "kubectl create job" Reference
CronJobs
- CronJob
- CronJob YAML
- CronJobs | Google Cloud
- Running Automated Tasks with a CronJob
- CronJob Command | Reference
ConfigMaps
- ConfigMaps
- ConfigMap | Google Cloud
- Configure a Pod to Use a ConfigMap
- Ultimate Guide to ConfigMaps in Kubernetes
Secret
- Secret Overview
- Secret Tasks
- Secret Overview | Google Cloud
- How to use Secrets?
- "kubectl create secret" Command | Reference
- Managing Secret using "kubectl"
- Managing Secrets
Self-Healing
- ReplicaSet
- Deployment
Resource Limits
- Managing Resources for Containers
- Assign Memory Resources to Containers and Pods
- Requests and Limits - Overview
- Kubernetes best practices - Resource Requests and Limits
- Understanding resource limits in kubernetes: Memory
- Understanding Resource Limits in kubernetes: CPU time
Security Context
- Security Context Overview
- Defining Privileges and Access Control Settings for Pods and Containers in Kubernetes
Service Accounts
- Service Accounts
- Configuring Service Accounts for Pods
Manifest Managing & Templating Tools
- Kustomize: Declarative Management of Kubernetes Objects Using Kustomize
- Kustomize: How To Manage Your Kubernetes Configurations with Kustomize
- Helm: An Introduction to Helm, the Package Manager for Kubernetes
Networking Basics
- Network Terminology (Basics)
- Networking Basics
CNI
- CNI | GitHub
- Pod Network
- Selecting CNI Plugins for Kubernetes
- Cluster Networking
Network Communications in Kubernetes
- Kubernetes Networking
- Networking with Kubernetes [Part 1]
- How Does The Kubernetes Networking Work? | Part-1
- How Does The Kubernetes Networking Work? | Part-2
- Understanding kubernetes networking: Pods
- Understanding Kubernetes Networking: Services
- Understanding Kubernetes Networking: Ingress
Container-to-Container
- Container-to-Container Communication
- Review of Container-to-Container Communications in Kubernetes
- Container-to-Container Communication
- Multi-Container Pod
Pod-to-Pod
- Pod-to-Pod Communication
Services
- Service
- Using a Service to Expose Your App
- Understanding Kubernetes Networking: Services
- Kubernetes NodePort vs LoadBalancer vs Ingress? When should I use what?
NodePort Service
- NodePort Service
- Use a Service to Access an Application in a Cluster
- Testing access to apps with NodePorts
- Exposing Applications Using Services
KubeProx
- Kube-Proxy
- Using "kubectl proxy" command
DNS in Kubernetes
- DNS for Services and Pods
- An Introduction to the Kubernetes DNS Service
- Understanding how Kubernetes DNS Services Work
- CoreDNS
Service Discovery
- Service discovery and DNS
- Kubernetes Service Discovery: Principles in Practice
- Kubernetes DNS-Based Service Discovery
EndPoints
- EndPoints
- Kubernetes Endpoint Object: Your Bridge to External Services
Ingress
- Ingress
- Ingress Resource
- Ingress Rules
- Ingress Types
- Ingress Controllers
Network Policy
- Network Policies
- Network Policy Resource
- Network Policy
- An Introduction to Kubernetes Network Policies for Security People
- Network Policy Use Cases
Volumes
- Volumes
- Volume Types
- Volume Mode
- Configure a Pod to Use a Volume for Storage
HostPath Volume
- HostPath Volume
- hostPath Configuration Example
- Configure a Pod to Use a PersistentVolume(PV) for Storage
Persistent Storage
- Kubernetes Persistent Storage: Why, Where and How
- Configure a Pod to Use a PersistentVolume for Storage
- GCE Persistent Disk Example
PV & PVC
- Persistent Volumes (PV)
- Create a PersistentVolumeClaim (PVC)
- PV YAML
- PVC YAML
- PV - Volume Mode
- PV - Access Modes
- PV - Reclaim Policy
Storage Classes
- Storage Classes
- Dynamic Provisioning
- Dynamic Provisioning and Storage Classes in Kubernetes
Logging
- Logging Architecture
- Sidecar Container for Logging
- Monitoring, Logging, and Debugging
- "kubectl logs" Command | Reference
Monitoring
- Tools for Monitoring Resources
- Metrics Server
- Resource Metrics Pipeline
- "kubectl top" Command | Reference
- Collecting metrics with built-in Kubernetes monitoring tools
Liveness Probe
- Configure Liveness, Readiness and Startup Probes
- When should you use a liveness probe?
- Kubernetes best practices: Setting up health checks with readiness and liveness probes
- Define a Liveness Command
- Define a Liveness HTTP request
- Define a TCP Liveness Probe
Readiness Probe
- Configure Liveness, Readiness and Startup Probes
- When should you use a Readiness Probe?
- Kubernetes best practices: Setting up health checks with Readiness and Liveness probes
- Define Readiness Probes
Troubleshooting Cluster
- Troubleshoot Clusters
- Debug Services
- Kubernetes Control-Plane Services | Start-Stop-Status Command
Troubleshooting Application
- Troubleshoot Applications
- Debugging Pods
- Debug Running Pods
- Debugging Services
- Debugging ReplicaSet (Note: Replace Replication Controllers with ReplicaSet in Article)
K8s Helpers
- How to use "kubectl explain" Command
- Kubernetes Networking Model
- Network Policy: Securing Kubernetes Cluster Networking
- Katakoda
- CKA Imp Links
CKA Exam
Basics
- Kubectl Cheat Sheet
- Concepts
- Tasks
- Reference
- Pods Overview
- Overview of Kubectl
- Kubectl Reference
- Kubernetes Cluster Architecture & Components
- Managing Kubernetes Objects Using Imperative Commands | Kubernetes
- JSONPath Support | Kubernetes
- Learn Kubernetes Basics
Commands
- kubectl create
- kubectl run
- kubectl apply
- kubectl get
- kubectl edit
- kubectl expose
- kubectl scale
- kubectl top
- kubectl logs
- kubectl config...
- kubectl explain
- kubectl delete
- kubectl describe
- kubectl exec
- kubectl label
- kubectl rollout
- kubectl set
- kubectl drain
- kubectl cordon
- kubectl taint
- kubectl uncordon
- kubectl api-resource
- kubectl version
YAML
- Multi-Container YAML
- Deployments YAML
- Service YAML
- DaemonSet YAML
- ConfigMaps YAML
- Secret YAML
- Job YAML
- CronJob YAML
- NodeSelector | YAML
- HostPath YAML
- ClusterRole YAML
- ClusterRoleBinding YAML
- Role YAML
- RoleBinding YAML
- Persistent Volumes (PV) YAML
- Persistent Volume Claim (PVC) YAML
- Configuring Pod with Volume (PVC)
25% - Cluster Architecture, Installation and Configuration
RBAC
- Using RBAC Authorization
Commands
- kubectl create role | Command
- kubectl create rolebinding | Command
- kubectl create clusterrole | Command
- kubectl create clusterrolebinding | Command
YAML
- ClusterRole YAML
- ClusterRoleBinding YAML
- Role YAML
- RoleBinding YAML
- Authorization Overview | Kubernetes
- Managing Resources | Kubernetes
Installing Kubernetes Using Kubeadm
- Installing kubeadm
- Creating a cluster with Kubeadm
- Creating Highly Available clusters with kubeadm
- Installing Docker Container runtimes
- K8s Required Ports
Upgrade Kubernetes Cluster using Kubeadm
- Kubeadm Upgrade
- Upgrading Clusters Using Kubeadm
- Upgrading Kubeadm Based Clusters
- Safely Drain a Node | Kubernetes
- Backing Up an ETCD Clusters
15% - Workloads & Scheduling
Pod
- Pods Overview
- Pod Lifecycle
- Creating Static Pods
- Configure Pods and Containers | Kubernetes
- Define Environment Variables for a Container | Kubernetes
Multi-Container
- Multi-Container
- How Pods Manage Multiple Container | Kubernetes
- Configure Pod Initialization | init
- Multi-Container YAML
Deployment
- Deployments | Kubernetes
- Scaling a Deployments
- Update a Deployment | Set Image
- Rolling Back a Deployment
- Checking Rollout History
- Rolling Back To a Previous Version
- Pausing & Resuming a Deployment
- Rolling Update Strategy
YAML
Commands
- kubectl create deployment
- kubectl set image deplyment
- kubectl rollout
- kubectl scale
- ReplicaSet | Kubernetes
- Scaling Applications
- Managing Deployment | Kubernetes
ConfigMap
- ConfigMaps
- Configure a Pod to Use a ConfigMap
- ConfigMaps YAML
- kubectl create configmap | Command
Secrets
- Secrets
- Distribute Credentials Securely Using Secrets
- Secret YAML
- kubectl create secret | Command
Resource Limits
- Resource Limits
- Resource Requests & Limits | Manage Memory, CPU, and API Resources
- Managing Resources for Containers | Kubernetes
- DaemonSet
- Sorting List Objects
- NodeSelector | Assign Pods to Nodes
20% - Services & Networking
Services
- Service
- NodePort Service
- Load Balancer Service
- Connecting Applications with Services
- Use a Service to Access an Application in a Cluster
Networking
- Cluster Networking
- Pods Networking
- Installing Pod Network CNI
Ingress
- Ingress
- Ingress Resource
- Set up Ingress on Minikube with the NGINX Ingress Controller | Kubernetes
- kubectl create ingress | Command
DNS
- CoreDNS
- DNS for Services and Pods
Network Policy
- Declare Network Policy
- Network Policy Resource
- Configure Service Accounts for Pods | Kubernetes
10% - Storage
- Volumes
- Types of Volumes
- Persistent Volumes
- Persistent Volume Claim
- Volume Mode
- Access Modes
- Reclaim Policy
- Storage Classes
- Configure a Pod to Use a Volume for Storage
- Configure a Pod to Use a PersistentVolume for Storage
- Persistent Volumes (PV) YAML
- Persistent Volume Claim (PVC) YAML
30% - Troubleshooting
- Logging Architecture
- Logging at the Node Level
- Tools for Monitoring Resources
- Troubleshoot Applications
- Troubleshooting Pods
- Troubleshoot Clusters
- Debugging DNS Resolutions
- Determine the Reason for Pod Failure
- Application Introspection and Debugging
- Debug Services
- Debug Pods and ReplicationControllers
Commands
- kubectl top node | Command
- kubectl top pod | Command
- kubectl top | Command
- kubectl logs | Command
- Debug Running Pods | Kubernetes