Skip to content

Commit

Permalink
Merge pull request #98 from seifrajhi/k8s-certifications
Browse files Browse the repository at this point in the history
feat: add k8s-certifications
  • Loading branch information
seifrajhi authored Mar 13, 2024
2 parents c613d17 + c04274e commit 3346565
Show file tree
Hide file tree
Showing 72 changed files with 8,757 additions and 0 deletions.
44 changes: 44 additions & 0 deletions k8s-certifications/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)

# Kubernetes Exercises

This collection covers a set of exercises that are categorized topics wise and referred back to the individual Kubernetes certification exams.
As the exam pattern and topics keep on changing, however, the topics remain more or less the same, I have created the exercises per topics and mapped them back to the exam.

## Kubernetes Playground

Try out the Killercoda Kubernetes playgroud which provides 2 node Kubernetes cluster, which is good enough to complete almost all of the exercises.

[Killercoda](https://killercoda.com/playgrounds/scenario/kubernetes)
~~[Katacode Kubernetes Playgroud](https://www.katacoda.com/courses/kubernetes/playground)~~


<a target="_blank" href="https://shareasale.com/r.cfm?b=2530382&amp;u=2367365&amp;m=59485&amp;urllink=&amp;afftrack="><img src="https://static.shareasale.com/image/59485/lft_iwd24_901x501a1.png" border="0" /></a>

## Structure

- [Certified Kubernetes Administrator (CKA)](cka) covers topics for CKA exam.
- [Certified Kubernetes Application Developer (CKAD)](ckad) covers topics for CKAD exam.
- [Certified Kubernetes Security Specialist (CKS)](cks) covers topics for CKS exam.
- [Data](data) provides any data required for the exercises.
- [Topics](topics) covers individual topics.

## Exam Pattern & Tips

- CKA/CKAD/CKS are open book test.
- Exams keep on upgrading as per the latest Kubernetes version and is currently on 1.28
- Exams require you to solve 15-20 questions in 2 hours.
- Make use of imperative commands as much as possible.
- You will have an online notepad on the right corner to note down. I hardly used it, but it can be useful to type and modify text instead of using Vi editor.
- You are allowed to open another browser tab which can be from kubernetes.io or other products documentation like Falco. Do not open any other windows.
- Exam questions can be attempted in any order and don't have to be sequential. So be sure to move ahead and come back later.









Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Cluster Architecture, Installation & Configuration - 25%

<br />

## Manage role based access control (RBAC)

<br />

Refer [RBAC](../topics/rbac.md)

<br />

## Use Kubeadm to install a basic cluster

<br />

Refer [Creating cluster using Kubeadm](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/)

<br />

## Manage a highly-available Kubernetes cluster

<br />

Refer [Creating HA Kubernete cluster](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/)

<br />

## Provision underlying infrastructure to deploy a Kubernetes cluster

<br />

TBD

<br />

## Perform a version upgrade on a Kubernetes cluster using Kubeadm

<br />

Refer [Upgrading Kubeadm Clusters](../topics/cluster_upgrade.md)

<br />

## Implement etcd backup and restore

<br />

Refer [ETCD](../topics/etcd.md)

52 changes: 52 additions & 0 deletions k8s-certifications/cka/2.workloads_scheduling.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Workloads & Scheduling - 15%

<br />

## Understand deployments and how to perform rolling update and rollbacks

<br />

Refer [Deployment Rollouts](../topics/deployments.md#deployment-rollout)

<br />

## Use ConfigMaps and Secrets to configure applications

<br />

Refer [ConfigMaps](../topics/configmaps.md)
Refer [Secrets](../topics/secrets.md)

<br />

## Know how to scale applications

<br />

Refer [Deployment Scaling](../topics/deployments.md#deployment-scaling)

<br />

## Understand the primitives used to create robust, self-healing, application deployments

<br />

Refer [Deployment Scaling](../topics/deployments.md##deployment-self-healing)

<br />

## Understand how resource limits can affect Pod scheduling

<br />

Refer [Resources - Requests & Limits](../topics/pods.md#resources)

<br />

## Awareness of manifest management and common templating tools

<br />

TBD

<br />
43 changes: 43 additions & 0 deletions k8s-certifications/cka/3.services_networking.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Services & Networking - 20%

<br />

## Understand host networking configuration on the cluster nodes

<br />

TBD

<br />

## Understand connectivity between Pods

<br />

Refer [Cluster Networking](https://kubernetes.io/docs/concepts/cluster-administration/networking/)

<br />

## Understand ClusterIP, NodePort, LoadBalancer service types and endpoints

Refer [Services](../topics/services.md)

## Know how to use Ingress controllers and Ingress resources

Refer [Ingress](../topics/ingress.md)

## Know how to configure and use CoreDNS

<br />

Refer [CoreDNS for Service Discovery](https://kubernetes.io/docs/tasks/administer-cluster/coredns/)

<br />

## Choose an appropriate container network interface plugin

<br />

Refer [Network Plugins](https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/)

<br />
35 changes: 35 additions & 0 deletions k8s-certifications/cka/4.storage.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Storage - 10%

<br />

## Understand storage classes, persistent volumes

<br />

Refer [Volumes](../topics/volumes.md)

<br />

## Understand volume mode, access modes and reclaim policies for volumes

<br />

Refer [PV Volume mode](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#volume-mode) -- Refer [PV Access modes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes), Refer [PV Reclaim policies](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#reclaim-policy)

<br />

## Understand persistent volume claims primitive

<br />

Refer [Persistent Volume Claims](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims)

<br />

## Know how to configure applications with persistent storage

<br />

Refer [Volumes](../topics/volumes.md)

<br />
54 changes: 54 additions & 0 deletions k8s-certifications/cka/5.troubleshooting.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Troubleshooting - 30%

<br />

## Evaluate cluster and node logging

<br />

Refer [Cluster Logging](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-cluster/#looking-at-logs)

<br />

## Understand how to monitor applications

<br />

Refer [Monitoring](../topics/monitoring.md)

<br />

## Manage container stdout & stderr logs

<br />

TBD

<br />

## Troubleshoot application failure

<br />

Refer [Deployment Troubleshooting](../topics/deployments.md#troubleshooting)
Refer [Probes Troubleshooting](../topics/probes.md#troubleshooting)
Refer [Application Troubleshooting](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-application/)

<br />

## Troubleshoot cluster component failure

<br />

TBD

<br />

## Troubleshoot networking

<br />

TBD

<br />

16 changes: 16 additions & 0 deletions k8s-certifications/cka/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Certified Kubernetes Administrator (CKA)

## [CKA Curriculum](https://github.com/cncf/curriculum/blob/master/CKA_Curriculum_v1.22.pdf)

1. [Cluster Architecture, Installation & Configuration - 25%](1.cluster_architecture_installation_configuration.md)
2. [Workloads & Scheduling - 15%](2.workloads_scheduling.md)
3. [Services & Networking - 20%](3.services_networking.md)
4. [Storage - 10%](4.storage.md)
5. [Troubleshooting - 30%](5.troubleshooting.md)

## Resources

- [Certified Kubernetes Administrator - CKA learning path](https://jayendrapatil.com/certified-kubernetes-administrator-cka-learning-path/)
- [KodeKloud Certified Kubernetes Administrator Course](https://shareasale.com/r.cfm?b=2319101&u=2367365&m=132199&urllink=&afftrack=)

<a target="_blank" href="https://shareasale.com/r.cfm?b=2530382&amp;u=2367365&amp;m=59485&amp;urllink=&amp;afftrack="><img src="https://static.shareasale.com/image/59485/lft_iwd24_901x501a1.png" border="0" /></a>
35 changes: 35 additions & 0 deletions k8s-certifications/ckad/1.application_design_build.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Application Design and Build - 20%

<br />

## Define, build and modify container images

<br />

Refer [Docker](../topics/docker.md)

<br />

## Understand Jobs and CronJobs

<br />

Refer [Jobs & Cron Jobs](../topics/jobs.md)

<br />

## Understand multi-container Pod design patterns (e.g. sidecar, init and others)

<br />

Refer [Multi-container Pods](../topics/multi_container_pods.md)

<br />

## Utilize persistent and ephemeral volumes

<br />

Refer [Volumes](../topics/volumes.md)

<br />
25 changes: 25 additions & 0 deletions k8s-certifications/ckad/2.application_deployment.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Application Deployment - 20%

<br />

## Use Kubernetes primitives to implement common deployment strategies (e.g. blue/green or canary)

<br />

- Kubernetes supports only Recreate and Rolling deployments within the same cluster.
- A service mesh like Istio can be used for [traffic management and canary deployments](https://istio.io/latest/docs/tasks/traffic-management/traffic-shifting/).

<br />

## Understand Deployments and how to perform rolling updates

Refer [Deployment Rollouts](../topics/deployments.md#deployment-rollout)

## Use the Helm package manager to deploy existing packages

<br />

- [Helm](https://helm.sh/) can be used for templating and deployment.

<br />

32 changes: 32 additions & 0 deletions k8s-certifications/ckad/3.application_observability_maintenance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Application Observability and Maintenance - 15%

<br />

## Understand API deprecations

<br />

Refer [API Deprectations](../topics/api_deprecations.md)

<br />

## Implement probes and health checks

Refer [Readiness & Liveness probes](../topics/probes.md)

## Use provided tools to monitor Kubernetes applications

Refer [Monitoring](../topics/monitoring.md)

## Utilize container logs

Refer [Logging](../topics/logging.md)

## Debugging in Kubernetes

<br />

TBD

<br />

Loading

0 comments on commit 3346565

Please sign in to comment.