Evolution of application deployment over the past 20 years.
Configure your local and remote lab environments.
Covers the resource types that are included with Kubernetes.
•Pod
•Job
Using helm to manage Kubernetes resources
Example microservice application.
Kubernetes manifests to deploy the demo application.
Explore how custom resources can add functionality
Install additional software to enhance the deployment.
Improving the DevX when working with Kubernetes.
How to safely upgrade your clusters and nodes.
Implement CI/CD for your applications (with GitOps!)
In this section, you will set up a Kubernetes cluster using KinD (Kubernetes in Docker), which is ideal for local development and testing environments.
Many local clusters can only run in a single node configuration, but KinD supports multi node clusters, which allows us to simulate having separate control plane and worker nodes.
Before creating the cluster, we'll generate a custom KinD configuration file (kind-config.yaml
) tailored for our needs. This configuration includes defining local paths for persistent volume (PV) mounts.
# task kind:01-generate-config
# - Generate KinD config with local absolute paths for PV mounts.
REPLACE_WITH_ABSOLUTE_PATH=${PWD} envsubst < kind-config.yaml.TEMPLATE > kind-config.yaml
Next, we'll use the generated configuration to create a multi-node Kubernetes cluster using KinD.
# kind:02-create-cluster
# - Create a Kubernetes cluster using KinD with custom configuration.
kind create cluster --config kind-config.yaml
To enable load balancer services within KinD, we'll run the cloud-provider-kind
plugin, which enhances cluster functionality.
# kind:03-run-cloud-provider-kind
# - Run sigs.k8s.io/cloud-provider-kind@latest to enable load balancer services with KinD.
sudo cloud-provider-kind
At this point you should have a fully functioning local cluster to use for the rest of the hands on portions of the course.
If you run kubectl get nodes
you should see a response something like this:
❯ kubectl get nodes
NAME STATUS ROLES AGE VERSION
kind-control-plane Ready control-plane 18d v1.30.0
kind-worker Ready <none> 18d v1.30.0
kind-worker2 Ready <none> 18d v1.30.0
After completing your work with the cluster, you can clean up by deleting the cluster.
# kind:04-delete-cluster
# - Delete an existing KinD Kubernetes cluster.
kind delete cluster