-
Notifications
You must be signed in to change notification settings - Fork 52
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
72 changed files
with
8,757 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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&u=2367365&m=59485&urllink=&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. | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
50 changes: 50 additions & 0 deletions
50
k8s-certifications/cka/1.cluster_architecture_installation_configuration.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 /> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 /> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 /> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 /> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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&u=2367365&m=59485&urllink=&afftrack="><img src="https://static.shareasale.com/image/59485/lft_iwd24_901x501a1.png" border="0" /></a> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 /> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
32
k8s-certifications/ckad/3.application_observability_maintenance.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 /> | ||
|
Oops, something went wrong.