CKA Notes

Published by Oga Ajima on 2019-01-16

Exam Topics

The syllabus is located here. It is an online based exam and focuses on skills a typical Kubernetes administrator needs. Cost is $300 and includes a free retake. More details here. Topics include:

Scheduling 5%
Logging/Monitoring 5%
Application Lifecycle Management 8%
Cluster Maintenance 11%
Security 12%
Storage 7%
Troubleshooting 10%
Core Concepts 19%
Networking 11%
Installation, Configuration & Validation 12%

Overview

What is Kubernetes?

Kubernetes is a platform for managing containerized applications. It was initially developed by Google but was open sourced and donated to the Cloud Native Computing Foundation - CNCF and has the broad support of the industry including the three major cloud providers - Amazon, Microsoft & Google, other industry heavyweights like IBM, Redhat, now owned by IBM, VMware, Cisco, and many, many, many other organizations both vendors and end users. The CNCF has a nice infographic that shows a total market cap of $4.04T of organizations that participate in one form or the other in the Kubernetes ecosystem.

So what is Kubernetes really? At a basic level, it provides a mechanism to deploy applications across a cluster of compute nodes without the operator needing to manually specify which node to run on or to manually handle scaling issues and many other operational challenges that were previously challenging and required deep expertise. It sort of encodes the best practices and operational expertise of running applications at scale. This is particularly advantageous in the current world of microservices where applications are broken up from monoliths into distinct services that are decoupled from each other. It is also a platform (an OS for distributed compute if you will) that enables applications to be built on top sort of similar to how Linux and Windows were the OS for individual compute nodes that enable a large ecosystem of various types of applications to be built.

What this means is that as a user, you can now specify how you want your application to be run and this is done in a declarative manner and Kubernetes takes care of the details. So for example, you can tell Kubernetes you want to scale your application maybe in the face of increased load, and Kubernetes handles the exact details of how to do that. Other operations such as performing updates without downtime or A/B testing are a lot more simpler to achieve.

In the next post we will take a look at a high level overview of the Kubernetes architecture and the various components that enable it to function the way it does.