Cks
Open-source Platform for learning kubernetes and aws eks and preparation for for Certified Kubernetes exams (CKA ,CKS , CKAD, ICA)
Install / Use
/learn @ViktorUJ/CksREADME
Welcome to the SRE Learning Platform!
<p align="center"> <a href="https://github.com/ViktorUJ/cks"><img src="https://raw.githubusercontent.com/ViktorUJ/terraform-aws-vpc/master/img/logo_192x192.png" width="192" height="192" alt="SRE Learning Platform"/></a> </p>The SRE Learning Platform is an open-source hub designed to help IT engineers effectively prepare for the CKA (Certified Kubernetes Administrator), CKS (Certified Kubernetes Security Specialist), CKAD (Certified Kubernetes Application Developer), and LFCS (Linux Foundation Certified System Administrator) exams. Additionally, this platform offers invaluable hands-on experience with AWS EKS (Elastic Kubernetes Service), equipping users with practical insights for real-world applications. Whether you're aiming to validate your skills, boost your career prospects in Kubernetes administration, security, application development, or delve into AWS EKS, this platform provides hands-on labs, practice tests, and expert guidance to ensure certification success.
- Prepare for the CKA: Certified Kubernetes Administrator Exam
- Enhance your skills for the CKS: Certified Kubernetes Security Specialist Exam
- Excel in the CKAD: Certified Kubernetes Application Developer Exam
- Excel in the ICA: Istio Certified Associate Exam
- Prepare for the KCNA: Kubernetes and Cloud Native Associate
- Prepare for the KCSA: Kubernetes and Cloud Native Security Associate
- Prepare for the LFCS: Linux Foundation Certified System Administrator
- Prepare for the KCNA: Kubernetes and Cloud Native Associate
- Prepare for the AWS Certified AI Practitioner
Master Kubernetes concepts, gain practical experience, and excel in the CKA, CKS, and CKAD exams with the SRE Learning Platform.
Quick start
<details> <summary style="font-weight: bold; font-size: 1.5em;">Requirements</summary>- GNU Make >= 4.2.1
- terrafrom >= v1.6.6
- terragrunt >= v0.54.8
- jq >= 1.6
- aws IAM user + Access key (or IAM role ) with Admin privilege for VPC, EC2, IAM, EKS
- AWS CLI > 2.2.30
- aws profile
Or you can run via docker ( video instruction )
</details> <details> <summary style="font-weight: bold; font-size: 1.5em;">Repository Structure</summary>The repository is organized into the following sections:
- Makefile - File contains scenarios for launching hands-on labs and mock exams.
- tasks - Directory contains lab scenarios and mock exam scripts.
- terraform - Directory contains modules and Terraform environments.
- environments - Directory contains terragrunt (terraform) environments.
- modules - Directory contains terraform modules.
- the platform uses aws to create following resources : vpc, subnets, security groups, ec2 (spot ), s3
- after you launch the scenarios the platform will create all the necessary resources and give access to k8s clusters.
- to create clusters the platform uses kubeadm
- you can easily add your own scenario using the already existing terraform module k8s_self_managment
- k8s_self_managment module supports versions:
k8s version : [ 1.21 , 1.34 ] https://kubernetes.io/releases/
Rintime :
docker [1.21 , 1.23]
cri-o [1.21 , 1.29]
containerd [1.21 , 1.33] # cks, cka default 1.33
containerd_gvizor [1.21 , 1.33]
OS for nodes :
ubuntu : 20.04 LTS , 22.04 LTS # cks default 22.04 LTS
CNI : calico ,culium
</details>
Configuration
- change backend_bucket ( region , backend_region optional ) in terraform/environments/terragrunt.hcl :
Command
Every command should be run from the project's root directory.
<details> <summary style="font-weight: bold; font-size: 1.5em;">CMDB</summary>make cmdb_get_env_all- get a list of all resources in CMDBUSER_ID='myuser' ENV_ID='01' make cmdb_get_user_env_data- show all created resources of user myuser in environment 01USER_ID='myuser' ENV_ID='01' make cmdb_get_user_env_lock- show all lock resources of user myuser in environment 01USER_ID='myuser' ENV_ID='01' make cmdb_get_user_env_lock- show all lock resources of user myuser in environment 01USER_ID='myuser' make cmdb_get_user_env_lock- show all lock resources of user myuser in all environmentUSER_ID='myuser' make cmdb_get_user_env_data- show all data resources of user myuser in all environmentCMDB_ITEM='CMDB_data_myuser_02_k8s_cluster1' make cmdb_get_item- getting detailed information about CMDB_data_myuser_02_k8s_cluster1 resource.
cka task
TASK=01 make run_cka_task- create cka hands-on labs number 01TASK=01 make delete_cka_task- delete cka hands-on labsTASK=01 make run_cka_task_clean- run cka_task with clean terragrunt cache for cka_taskmake output_cka_task- show outputs from cka_task
cka mock
TASK=01 make run_cka_mock- create mock CKA exam number 01make delete_cka_mock- delete mock CKA examTASK=01 make run_cka_mock_clean- create mock CKA exam number 01 with clean terragrunt cachemake output_cka_mock- show outputs from cka_mock
ckad mock
TASK=01 make run_ckad_mock- create mock CKAD exam number 01make delete_ckad_mock- delete mock CKAD examTASK=01 make run_ckad_mock_clean- create mock CKAD exam number 01 with clean terragrunt cachemake output_ckad_mock- show outputs from ckad_mock
cks task
TASK=10 make run_cks_task- create cks hands-on labs number 10TASK=10 make delete_cks_task- delete cks hands-on labsTASK=10 make run_cks_task_clean- run cks_task with clean terragrunt cache for cks_taskmake output_cks_task- show outputs from cks_task
cks mock
TASK=01 make run_cks_mock- create mock CKS exam number 01make delete_cks_mock- delete mock CKS examTASK=01 make run_cks_mock_clean- create mock CKS exam number 01 with clean terragrunt cachemake output_cks_mock- show outputs from cks_mock
ica task
TASK=01 make run_ica_task- create ica hands-on labs number 01TASK=01 make delete_ica_task- delete ica hands-on labsTASK=01 make run_ica_task_clean- run ica_task with clean terragrunt cache for ica_taskmake output_cks_task- show outputs from ica_task

