
Introduce Kubernetes for absolute beginners with both theory and hands-on practice, including local MicroK8s setup and AWS EKS deployments, cloud credentials, ingress controllers, and CKD exam prep.
Meet Mikael Hitchcock, a machine learning DevOps engineer and Kubernetes enthusiast, sharing his background from Docker to Kubernetes, distributed systems, and open source teaching, including AWS EKS examples.
Discover the Kubernetes for beginners course structure and practice two types of hands-on examples—microgrid experiments on Linux and git-based exercises—by typing the examples by hand.
Explore a practical introduction to the CKAD exam, detailing its proctored format, two attempts, and focus on Kubernetes application development for cert preparation.
Access the Kubernetes Basics repository for command line notes and Python files organized to support programming assignments. Download from GitHub and open with Visual Studio Code to explore the code.
Explore containers as portable, lightweight units that package code, configuration, and environment for fast deployment, and how Kubernetes orchestrates these containers.
Discover what Docker is, the difference between Docker containers and Docker images, and how images use layers stored in registries like Docker Hub for deployment with Kubernetes.
Build and publish a Docker image for a Django application, using a Dockerfile, Python base image, and SQLite or PostgreSQL configurations, then push to Docker Hub for Kubernetes deployment.
Discover how Kubernetes orchestrates containerized microservices across a cluster of virtual machines, enabling high availability, self-healing, and declarative immutable deployments.
Master kubectl, the Kubernetes command line interface, a go client that talks to the rest api server over https. Install and configure kubectl on Linux, Windows, or macOS.
Install and explore microk8s, a lightweight, local Kubernetes for developers. Learn how to enable addons, manage a single-node cluster, and connect with kubectl for local testing.
Install microk8s on Windows using multipath to run an Ubuntu VM on Hyper-V or VirtualBox, allocate resources, and configure kubectl for seamless Kubernetes access.
Enable microk8s addons on Windows to simulate a Kubernetes cluster, using the microgrids enable command for DNS, ingress, and other addons, with restart steps if needed.
Explore the core Kubernetes components and concepts, including nodes, control plane, master and worker nodes, Cube API server, CD (etcd), and Cube CTL, and how they operate within AWS EKS.
Discover how Kubernetes namespaces partition a cluster to enable separate teams to deploy workloads, enforce access control, and apply resource quotas using kubectl.
Discover how kubeconfig enables secure https communication between kubectl and the Kubernetes API server by configuring clusters, users, and contexts with tokens, cert data, and certificate authority data.
Learn to enable kubectl autocomplete in bash or shell, install and use Visual Studio Code with a Kubernetes extension, and manage namespaces, clusters, and context for easier Kubernetes workflows.
Learn how to create an AWS account, understand required credit card details and costs, and launch a Kubernetes cluster with the AWS elastic Kubernetes service (EKS) in the cloud.
Create an IAM admin user under the root account, configure console access and CLI credentials, enable MFA, and manage permissions with an administrators group for secure AWS access.
Install and configure the AWS CLI to manage Kubernetes resources, using the CSV-derived credentials and region settings, and run the setup steps from download to aws configure.
Install eksctl and create an AWS EKS cluster from the CLI, including prerequisites, ssh key pair setup, region selection, worker node configuration, and cost considerations.
Explore how pods function as the smallest deployable unit in Kubernetes, running an engine x container from Docker Hub inside a namespace and cluster, with port forwarding for access.
Explore how kubectl interacts with the Kubernetes API server using verbs like get, delete, create and apply, and list resources such as namespaces and pods.
Learn how declarative configurations drive Kubernetes toward the desired state using manifests and the API server. Practice with YAML manifests, kubectl apply, port forwarding to deploy engine x.
Debug pods in Kubernetes by using get, describe, logs, and exec to diagnose deployment and application issues, explore pod states, events, and ephemeral containers across namespaces.
Learn how to override a Docker image's entry point and command from Kubernetes using the container spec's command and args, with practical Django port examples.
Learn how Kubernetes uses resource requests and limits to schedule pods on nodes, balancing CPU and memory, with practical unit notes and common pitfalls.
Learn how Kubernetes liveness probes continuously check pod health, restarting containers when endpoints fail, and configure http get probes with initial delay, period, timeout, and failure thresholds.
Explore readiness and startup probes in Kubernetes, comparing them to liveness probes, and learn how startup probes delay until initialization completes while readiness probes gate request serving.
Learn how Kubernetes uses labels and annotations in metadata to group resources, label nodes and pods, and use label selectors for filtering, with a declarative approach over imperative labeling.
Explore replica sets in Kubernetes to achieve high availability by scaling stateless pods across nodes, using labels and selectors, and understanding the reconciliation loop that maintains desired replicas.
Learn how Kubernetes deployments wrap replica sets to enable seamless rolling updates, readiness probes, rollbacks, and red-green deployments, using declarative manifests and controlled strategies.
Roll back Kubernetes deployments by using rollout undo and history, track changes with annotations, and prefer declarative updates over imperative commands.
Scale your Kubernetes workloads with horizontal pod autoscaler (HPA). Bind HPA to deployments and set min and max replicas based on CPU utilization to optimize resources.
Explore Kubernetes config maps and their use as environment variables or volumes, demonstrated with imperative and declarative approaches, to safely share and persist configuration across pods.
Secrets in Kubernetes store sensitive data, encoded in base64 like config maps. Use generic or Docker registry secrets, mountable as environment variables or volumes, and avoid secrets in source control.
Learn how Kubernetes services expose a set of pods, provide stable cluster IPs and DNS, and enable load balancing with Cube Proxy and selectors.
Explore how Kubernetes DNS enables service discovery inside and across namespaces, resolving service names to IPs. Learn how Core DNS and namespace-qualified records support cross-namespace communication and port resolution.
expose a deployment with node port to make the service accessible from outside the cluster on each node's IP and a mapped port, with ClusterIP remaining internal.
Learn how a Kubernetes load balancer exposes apps on port 80 or 443 via external IPs, using node ports and MetalLB for local IP assignment.
Learn how to expose a Kubernetes service on AWS with EKS using a load balancer type out of the box, and understand external IP and DNS exposure.
Learn how ingress enables L7 routing in Kubernetes by domain and path, install an Nginx ingress controller, and define ingress rules with YAML for testing via local DNS.
Learn to install an ingress controller in an AWS EKS cluster using helm, IAM policy, and a dedicated service account, then expose apps with node ports and an ALB-based ingress.
Learn how daemonsets ensure exactly one pod per node by using the node name field, ideal for deploying drivers, iptables, and services on every node, with YAML conversion from deployment.
Explore Kubernetes jobs and cron jobs for batch and scheduled workloads, including one-time, parallel, indexed, and work queue executions; manage pods, completions, and scheduling.
This course covers the essential concepts of containers and Kubernetes. It includes 14 sections and 63 lectures with a total length of 13 hours and 26 minutes. You will get an overview of what CKAD and Docker are, how to build Docker images, and what microk8s and Kubernetes are. The course also covers key components of Kubernetes such as pods, replica sets, deployments, and services, as well as topics like autoscaling, configmaps, secrets, and RBAC. The course also covers more advanced topics like ingress, daemon sets, jobs, storage class, persistent volumes, and stateful sets.
The course covers AWS tools and how to create an AWS account, AMI admin user, and use the AWS CLI and Eksctl. You will also learn how to deploy a demo application and use blue-green and canary deployments. Additionally, you will learn how to authenticate users and service accounts, and use role-based access control.
By the end of this course, you will have a comprehensive understanding of the fundamentals of containers and Kubernetes, and you will be equipped with the skills and knowledge to build, deploy, and manage applications in a production environment. Whether you are a beginner or an experienced DevOps engineer, this course has everything you need to get started with containers and Kubernetes.
Why you should learn Kubernetes?
Kubernetes is a powerful tool that helps organizations manage and scale their application infrastructure. It is the most popular open-source container orchestration platform and has been adopted by many of the world's largest companies.
Learning Kubernetes is important for several reasons. Firstly, it is the backbone of modern application development and deployment, and understanding how it works is essential for developing, deploying, and scaling applications in a efficient and scalable way. Secondly, the demand for Kubernetes expertise is growing rapidly as organizations move towards cloud-native applications and infrastructure. By learning Kubernetes, you will gain in-demand skills that are highly sought after by employers.
Additionally, Kubernetes provides a lot of flexibility and control over your infrastructure. It allows you to manage and automate complex application deployments, and provides features like automatic scaling, rolling updates, and self-healing to ensure that your applications are always available and running smoothly. It also provides a unified way of managing containers, regardless of the underlying infrastructure, making it a platform-agnostic solution for managing your infrastructure.
Finally, Kubernetes has a large and active community, which means that it is well-supported and constantly evolving. By learning Kubernetes, you will have access to a wealth of resources and a supportive community to help you with any challenges you may face.
In conclusion, learning Kubernetes is important for staying ahead of the curve in modern application development and deployment, and for acquiring in-demand skills that are highly sought after by employers. With its growing popularity and robust feature set, it is a valuable investment of your time and energy.