CKAD Certification Journey: Core concepts & Time Management

Embarking on our CKAD certification journey, we quickly realized the challenge of balancing study time with client work and personal lives. To manage this, we decided to break down the study material into smaller, more manageable packages. This adjustment has made it easier to stay on track and integrate learning into our schedules.

Managing Time and Content

The first half of the core concepts progresses slowly due to the numerous exercises involving YAML commands during labs. In contrast, the second half moves faster as it focuses more on executing online commands in the labs.

Leveraging Overlap with Docker Certification

Within our team, Mohamed is also preparing for his Docker Certified Associate (DCA) certification through a course on KodeKloud.com. He benefits from the overlap between the first two chapters of the CKAD path and the Docker course, which serves as a valuable review for him.

Understanding Kubernetes Namespaces

During our discussions, we touched on Kubernetes namespaces. A namespace in Kubernetes is a mechanism for creating isolated spaces where resources can be grouped and managed within a cluster. At various client sites, team namespaces might be deployed across different data centers, each application could have its own namespace, or namespaces might be divided across different clusters.

Exploring Kubernetes Pods

We then delved into pods, the smallest and most fundamental execution units in Kubernetes. Pods group one or more containers to share network and storage resources and maintain a common context for communication. For instance, within a project, a pod encapsulates containers and their layers such as libraries, the operating system, and the application. The pod also dictates properties like CPU usage.

Understanding Replica Sets

Next, we explored replica sets, which exist solely to create and manage pods. Replica sets maintain the desired number of pods by creating or deleting them as necessary. Kubernetes operates in two states: the current state and the desired state, constantly adjusting pod counts to match the desired state. Deployments orchestrate rolling updates by introducing a new replica set alongside the existing one, gradually increasing the new pod counts while decreasing the old ones until the old set is completely shut down. This ensures a smooth transition to the updated configuration while maintaining application availability and stability.

Imperative Commands

A common question during our sessions was when to use imperative commands. For instance, we may have an application with its code, configuration, and deployment settings stored in YAML files on Git. Using imperative commands allows us to make quick changes directly on the Kubernetes cluster, which is useful for tasks like manually scaling the number of pods. Typically, though, we use YAML for configuration management.

Tools like Spinnaker generate the YAML for you and then apply it to the server. The tool’s UI often utilizes underlying imperative commands. Additionally, tools like kubectl or k9s allow you to log into clusters, view different pods, zoom into a specific pod, check logs, or even inspect the YAML configuration inside a pod. These tools streamline operations, but for the CKAD exam, it’s crucial to know all the commands to complete the test within the allotted time.

Our journey through CKAD’s introduction and core concepts has been enlightening, and we’re excited to continue learning and growing as a team. Stay tuned for more updates on our CKAD journey!