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