Using Kubernetes Custom Resource Definitions (CRDs)
Description
Kubernetes provides a set of resources along with declarative APIs for working with them. Declarative APIs allow you to specify the desired state for a resource and Kubernetes performs actions to bring the actual resource state to the desired state. This is in contrast to imperative APIs where you specify the actions to perform. Defining resources and corresponding declarative APIs is a generic pattern that can be used by many applications. Kubernetes allows you to define your own custom resources and controllers to extend the Kubernetes API beyond the built-in resources. Custom resource types are defined using Custom Resource Definitions (CRDs) in Kubernetes. CRDs are the focus of this lab.
You will learn how to discover and use custom resources in this lab. To illustrate custom resources, the Kubernetes cluster in this lab is pre-installed with a Helm package for Argo CD, a GitOps continuous delivery application. You will work with Argo CD custom resources to release an update to an application.
This lab is valuable to anyone working with Kubernetes, but the content has been prepared considering topics described in the Certified Kubernetes Application Developer (CKAD) Exam Curriculum. Completion of the lab will help you get hands-on experience, which is essential for passing the CKAD exam.
Learning Objectives
- Discover and use resources that extend Kubernetes (CRD)
Intended Audience
- Kubernetes admins and operators
- Application developers and DevOps engineers deploying applications in containers and using or considering Kubernetes
- This lab is recommended for Certified Kubernetes Application Developer (CKAD) examinees
Prerequisites
- Knowledge of Kubernetes Pod Design (Pods, Deployments, Services)
- Experience with
kubectl
You can complete the Kubernetes Pod Design for Application Developers lab series to satisfy the prerequisites.
Updates
July 26th, 2024 - Updated to run Kubernetes 1.30
October 17th, 2023 - Updated to run Kubernetes 1.28
June 9th, 2023 -Updated to run Kubernetes 1.26
September 6th, 2022 - Updated to run Kubernetes 1.24