{"id":13501021,"url":"https://github.com/leandrocostam/cka-preparation-guide","last_synced_at":"2025-03-29T07:32:20.198Z","repository":{"id":44347351,"uuid":"167033548","full_name":"leandrocostam/cka-preparation-guide","owner":"leandrocostam","description":"Certified Kubernetes Administrator (CKA) Preparation Guide","archived":false,"fork":false,"pushed_at":"2023-08-08T16:17:50.000Z","size":56,"stargazers_count":627,"open_issues_count":0,"forks_count":206,"subscribers_count":40,"default_branch":"master","last_synced_at":"2024-10-31T19:37:46.682Z","etag":null,"topics":["certified-kubernetes-administrator","cka","cka-curriculum","cka-exam","exam","guide","kubernetes","preparation"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leandrocostam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-01-22T17:06:06.000Z","updated_at":"2024-10-29T20:58:23.000Z","dependencies_parsed_at":"2024-01-16T10:24:17.504Z","dependency_job_id":"6d650bf9-bbf5-4b23-8491-7d597b67fe9a","html_url":"https://github.com/leandrocostam/cka-preparation-guide","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leandrocostam%2Fcka-preparation-guide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leandrocostam%2Fcka-preparation-guide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leandrocostam%2Fcka-preparation-guide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leandrocostam%2Fcka-preparation-guide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leandrocostam","download_url":"https://codeload.github.com/leandrocostam/cka-preparation-guide/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246155998,"owners_count":20732355,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["certified-kubernetes-administrator","cka","cka-curriculum","cka-exam","exam","guide","kubernetes","preparation"],"created_at":"2024-07-31T22:01:22.871Z","updated_at":"2025-03-29T07:32:19.946Z","avatar_url":"https://github.com/leandrocostam.png","language":null,"funding_links":[],"categories":["Others","Uncategorized"],"sub_categories":["Uncategorized"],"readme":"![Check Kubernetes documentation links](https://github.com/leandrocostam/cka-preparation-guide/workflows/Check%20Kubernetes%20documentation%20links/badge.svg)\n\n# Certified Kubernetes Administrator (CKA) - V1.27\n\nThe objective of this repository is help you for taking the Certified Kubernetes Administrator (CKA) exam using online resources, especially using resources from [Kubernetes Official Documentation](https://kubernetes.io).\n\nThe references were selected for the [Exam Curriculum 1.27](https://github.com/cncf/curriculum/blob/acb43587b95a95dd9aeb9b0ca5be0ae0b6ac39ed/CKA_Curriculum_v1.27.pdf), and there are exclusive information for API objects and annotations. For more information, please see [CNCF Curriculum](https://github.com/cncf/curriculum/).\n\nPlease, feel free to place a pull request whether something is not up-to-date, should be added or contains wrong information/reference.\n\nThere are other Kubernetes certification exam preparation guides available:\n\n- [Certified Kubernetes Security Specialist (CKS) - Preparation Guide](https://github.com/leandrocostam/cks-preparation-guide)\n\n# Exam\n\nThe exam is kind of \"put your hands on\", where you have some problems to fix within 120 minutes.\n\nMy tip: Spend your time wisely. Use the Notebook feature (provided in exam's UI) to keep track of your progress, where you might take notes of each question, put some annotations in order to help you. Additionally, don't get stuck, move to the next problem, and take it back when you finish all the other problems.\n\nExam Cost: $395 and includes one free retake.\n\nIt's important to mention that you have access to [Kubernetes Official Documentation](https://kubernetes.io) during the exam. So get yourself familiar with Kubernetes online documentation, and know where to find all specific topics listed below. It might be helpful for you during the exam.\n\nFor information about the exam, please refer [Certified Kubernetes Administrator (CKA) Program](https://www.cncf.io/certification/cka/).\n\n# CKA Curriculum\n\nExam objectives that outline of the knowledge, skills and abilities that a Certified Kubernetes Administrator (CKA) can be expected to demonstrate.\n\n## Cluster Architecture, Installation \u0026 Configuration (25%)\n\n- Manage role based access control (RBAC).\n\n    - [Kubernetes Documentation \u003e Reference \u003e Accessing the API \u003e Using RBAC Authorization](https://kubernetes.io/docs/reference/access-authn-authz/rbac/)\n\n- Use Kubeadm to install a basic cluster.\n\n    - [Kubernetes Documentation \u003e Getting started \u003e Production environment \u003e Installing Kubernetes with deployment tools \u003e Bootstrapping clusters with kubeadm \u003e Creating a cluster with kubeadm](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/)\n\n- Manage a highly-available Kubernetes cluster.\n\n    - [Kubernetes Documentation \u003e Getting started \u003e Production environment \u003e Installing Kubernetes with deployment tools \u003e Bootstrapping clusters with kubeadm \u003e Creating Highly Available clusters with kubeadm](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/)\n\n- Provision underlying infrastructure to deploy a Kubernetes cluster.\n\n    - [Kubernetes Documentation \u003e Getting started](https://kubernetes.io/docs/setup/)\n\n- Perform a version upgrade on a Kubernetes cluster using Kubeadm.\n\n    - [Kubernetes Documentation \u003e Tasks \u003e Administer a Cluster \u003e Administration with kubeadm \u003e Upgrading kubeadm clusters](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/)\n\n- Implement etcd backup and restore.\n\n    - [Kubernetes Documentation \u003e Tasks \u003e Administer a Cluster \u003e Operating etcd clusters for Kubernetes](https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/)\n\n\nHelpful commands:\n\n```bash\n# Display addresses of the master and services\nkubectl cluster-info\n\n# Dump current cluster state to stdout\nkubectl cluster-info dump\n\n# List the nodes\nkubectl get nodes\n\n# Show metrics for a given node\nkubectl top node my-node\n\n# List all pods in all namespaces, with more details\nkubectl get pods -o wide --all-namespaces\n\n# List all services in all namespaces, with more details\nkubectl get svc  -o wide --all-namespaces\n```\n\n## Workloads \u0026 Scheduling (15%)\n\n- Understand deployments and how to perform rolling update and rollbacks.\n\n    - [Kubernetes Documentation \u003e Concepts \u003e Workloads \u003e Controllers \u003e Deployments](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/)\n\n    - Example Deployment File (dep-nginx.yaml) using NGINX\n\n        ```yaml\n        apiVersion: apps/v1\n        kind: Deployment\n        metadata:\n            name: nginx-deployment\n            labels:\n                app: nginx\n        spec:\n          replicas: 3\n          selector:\n            matchLabels:\n              app: nginx\n          template:\n            metadata:\n              labels:\n                app: nginx\n            spec:\n              containers:\n              - name: nginx\n                image: nginx:1.21.6\n                ports:\n                - containerPort: 80\n        ```\n\n        ```bash\n        # Create Deployment\n        kubectl create -f dep-nginx.yaml\n\n        # Get Deployments\n        kubectl get deployments\n\n        # Update Deployment\n        kubectl edit deployment.v1.apps/nginx-deployment\n\n        # See rollout status\n        kubectl rollout status deployment.v1.apps/nginx-deployment\n\n        # Describe Deployment\n        kubectl describe deployment\n\n        # Rolling back to a previous revision\n        kubectl rollout undo deployment.v1.apps/nginx-deployment\n        ```\n\n- Use ConfigMaps and Secrets to configure applications.\n\n    - [Kubernetes Documentation \u003e Concepts \u003e Configuration \u003e ConfigMaps](https://kubernetes.io/docs/concepts/configuration/configmap/)\n\n    - [Kubernetes Documentation \u003e Concepts \u003e Configuration \u003e Secrets](https://kubernetes.io/docs/concepts/configuration/secret/)\n\n- Know how to scale applications.\n\n    - [Kubernetes Documentation \u003e Concepts \u003e Cluster Administration \u003e Managing Resources \u003e Scaling Your Application](https://kubernetes.io/docs/concepts/cluster-administration/manage-deployment/#scaling-your-application).\n\n        ```bash\n        # Increase replicas number for nginx-deployment\n        kubectl scale deployment/nginx-deployment --replicas=5\n\n        # Using autoscaling\n        kubectl autoscale deployment/nginx-deployment --min=2 --max=5\n        ```\n\n- Understand the primitives used to create robust, self-healing, application deployments.\n\n    - [Kubernetes Documentation \u003e Concepts \u003e Workloads \u003e Pods \u003e Pod Lifecycle](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/)\n\n    - [Kubernetes Documentation \u003e Tasks \u003e Configure Pods and Containers \u003e Configure Liveness, Readiness and Startup Probes](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)\n\n- Understand how resource limits can affect Pod scheduling.\n\n    - [Kubernetes Documentation \u003e Concepts \u003e Configuration \u003e Managing Resources for Containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/)\n\n- Awareness of manifest management and common templating tools.\n\n    - [Kubernetes Documentation \u003e Concepts \u003e Cluster Administration \u003e Managing Resources](https://kubernetes.io/docs/concepts/cluster-administration/manage-deployment/)\n\n    - [Kubernetes Documentation \u003e Tasks \u003e Manage Kubernetes Objects](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/)\n\n## Services \u0026 Networking (20%)\n\n- Understand host networking configuration on the cluster nodes.\n\n    - [Kubernetes Documentation \u003e Concepts \u003e Cluster Administration \u003e Cluster Networking](https://kubernetes.io/docs/concepts/cluster-administration/networking/)\n\n- Understand connectivity between Pods.\n\n    - [Kubernetes Documentation \u003e Concepts \u003e Workloads \u003e Pods \u003e Networking](https://kubernetes.io/docs/concepts/workloads/pods/#pod-networking)\n\n    - [GitHub \u003e Kubernetes Community Documentation \u003e Design Proposals \u003e Networking](https://raw.githubusercontent.com/kubernetes/design-proposals-archive/main/network/networking.md)\n\n- Understand ClusterIP, NodePort, LoadBalancer service types and endpoints.\n\n    - [Kubernetes Documentation \u003e Concepts \u003e Services, Load Balancing, and Networking \u003e Service](https://kubernetes.io/docs/concepts/services-networking/service/)\n\n- Know how to use Ingress controllers and Ingress resources.\n\n    - [Kubernetes Documentation \u003e Concepts \u003e Services, Load Balancing, and Networking \u003e Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/)\n    - [Kubernetes Documentation \u003e Concepts \u003e Services, Load Balancing, and Networking \u003e Ingress Controllers](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/)\n\n- Know how to configure and use CoreDNS.\n\n    - [Kubernetes Documentation \u003e Tasks \u003e Administer a Cluster \u003e Using CoreDNS for Service Discovery](https://kubernetes.io/docs/tasks/administer-cluster/coredns/)\n\n- Choose an appropriate container network interface plugin.\n\n    - [Kubernetes Documentation \u003e Concepts \u003e Extending Kubernetes \u003e Compute, Storage, and Networking Extensions \u003e Network Plugins](https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/)\n\n## Storage (10%)\n\n- Understand storage classes, persistent volumes.\n\n    - [Kubernetes Documentation \u003e Concepts \u003e Storage \u003e Storage Classes](https://kubernetes.io/docs/concepts/storage/storage-classes/)\n    - [Kubernetes Documentation \u003e Concepts \u003e Storage \u003e Persistent Volumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/)\n\n- Understand volume mode, access modes and reclaim policies for volumes.\n\n    - [Kubernetes Documentation \u003e Concepts \u003e Storage \u003e Persistent Volumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistent-volumes)\n\n- Understand persistent volume claims primitive.\n\n    - [Kubernetes Documentation \u003e Concepts \u003e Storage \u003e Persistent Volumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims)\n\n- Know how to configure applications with persistent storage.\n\n    - [Kubernetes Documentation \u003e Tasks \u003e Configure Pods and Containers \u003e Configure a Pod to Use a PersistentVolume for Storage](https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/#create-a-persistentvolume)\n\n## Troubleshooting (30%)\n\n- Evaluate cluster and node logging.\n\n    - [Kubernetes Documentation \u003e Tasks \u003e Monitoring, Logging, and Debugging \u003e Troubleshoot Clusters](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-cluster/)\n\n- Understand how to monitor applications.\n\n    - [Kubernetes Documentation \u003e Tasks \u003e Monitoring, Logging, and Debugging \u003e Tools for Monitoring Resources](https://kubernetes.io/docs/tasks/debug-application-cluster/resource-usage-monitoring/)\n\n- Manage container stdout \u0026 stderr logs.\n\n    - [Kubernetes Documentation \u003e Concepts \u003e Cluster Administration \u003e Logging Architecture](https://kubernetes.io/docs/concepts/cluster-administration/logging/)\n\n- Troubleshoot application failure.\n\n    - [Kubernetes Documentation \u003e Tasks \u003e Monitoring, Logging, and Debugging \u003e Troubleshoot Applications](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-application/)\n    - [Kubernetes Documentation \u003e Tasks \u003e Monitoring, Logging, and Debugging \u003e Application Introspection and Debugging](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-application-introspection/)\n\n- Troubleshoot cluster component failure.\n\n    - [Kubernetes Documentation \u003e Tasks \u003e Monitoring, Logging, and Debugging \u003e Troubleshoot Clusters](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-cluster/)\n\n- Troubleshoot networking.\n\n    - [Kubernetes Documentation \u003e Tasks \u003e Monitoring, Logging, and Debugging \u003e Debug Services](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-service/)\n\n# CKA Preparation Courses\n\n- [Certified Kubernetes Administrator (CKA) - A Cloud Guru (formerly Linux Academy)](https://acloudguru.com/course/cloud-native-certified-kubernetes-administrator-cka/)\n\n- [Kubernetes Fundamentals (LFS258) - Linux Foundation](https://training.linuxfoundation.org/training/kubernetes-fundamentals/)\n\n- [Kubernetes Deep Dive - A Cloud Guru](https://acloud.guru/learn/kubernetes-deep-dive)\n\n# kubectl Ninja\n\nTip: Use [kubectl Cheatsheet](https://kubernetes.io/docs/reference/kubectl/cheatsheet/) during the exam. You don't need to decorate everything.\n\n#### Useful commands or parameters during the exam:\n\n```bash\n# Use \"kubectl describe\" for related events and troubleshooting\nkubectl describe pods \u003cpodid\u003e\n\n# Use \"kubectl explain\" to check the structure of a resource object.\nkubectl explain deployment --recursive\n\n## Add \"-o wide\" in order to use wide output, which gives you more details.\nkubectl get pods -o wide\n\n## Check always all namespaces by including \"--all-namespaces\"\nkubectl get pods --all-namespaces\n```\n\nGenerate a manifest template from imperative spec using the output option \"-o yaml\" and the parameter \"--dry-run=client\":\n\n```shell\n# create a service\nkubectl create service clusterip my-service --tcp=8080 --dry-run=client -o yaml\n\n# create a deployment\nkubectl create deployment nginx --image=nginx --dry-run=client -o yaml\n\n# create a pod\nkubectl run nginx --image=nginx --restart=Never --dry-run=client -o yaml\n```\n\nCreate resources using kubectl + stdin instead of creating them from manifest files. It helps a lot and saves time. You can use the output of the command above and modify as required:\n\n```shell\ncat \u003c\u003cEOF | kubectl create -f -\n...\nEOF\n```\n\nIt saves lots of time, believe me.\n\nKubectl Autocomplete\n\n```shell\nsource \u003c(kubectl completion bash)\n```\n\n# Practice\n\nPractice a lot with Kubernetes:\n\n- [Killer.sh - CKA Simulator](https://killer.sh/cka)\n- [Kubernetes the Hard Way by Kelsey Hightower](https://github.com/kelseyhightower/kubernetes-the-hard-way)\n\n# CKA Tips\n\nSome links that contain tips that might help you from different perspectives of the CKA exam.\n\n- [How to pass the Certified Kubernetes Administrator (CKA) exam on the first attempt](https://medium.com/devopslinks/how-to-pass-certified-kubernetes-administrator-cka-exam-on-first-attempt-36c0ceb4c9e)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleandrocostam%2Fcka-preparation-guide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleandrocostam%2Fcka-preparation-guide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleandrocostam%2Fcka-preparation-guide/lists"}