Course Highlights
  • Deploy containers to a Kubernetes Cluster
  • Run Kubernetes in AWS using either EKS or Kops
  • Monitor a live Kubernetes cluster using Prometheus and Grafana
  • Analyse system-wide logs using the ELK Stack (ElasticStack); Kibana and ElasticSearch
  • Handle Alerts in a Kubernetes cluster by notifying Slack Channels
  • Understand how Requests and Limits work in Kubernetes
  • Use Kubernetes Horizontal Pod Autoscaling
  • Configure Ingress Control on a live Kubernetes deployment
  • Understand Kubernetes StatefulSets
  • Integrate Kubernetes with a Continuous Deployment System (CD)
  • Use Helm to Manage Charts and to Dynamically Update your Kubernetes YAML
Curriculum

3 Topics
Introduction to Kubernetes Microservices course
Code for the course
Support for Apple M1 M2 users

2 Topics
Introducing Kubernetes
Hands-on Project

5 Topics
Options for Installing Kubernetes
Installing Docker Desktop for Kubernetes
Running Kubernetes Inside Docker Desktop
Using Minikube (as an alternative)
Choosing a Minikube Driver

5 Topics
Important note for anyone with Docker/Docker Desktop installed
Docker Overview
Docker Containers vs Images
Attention Apple M1/M2 Users!
Running Containers from DockerHub

3 Topics
Pods Overview
Writing a Pod
Running a Pod

4 Topics
Important note for Docker Desktop and Driver Users
Services
NodePort and ClusterIP
Pod Selection with Labels

2 Topics
Extra note for Docker Desktop users
Exercise: Deploy ActiveMQ as a Pod and Service

3 Topics
ReplicaSets
Writing a ReplicaSet
Applying a ReplicaSet to Kubernetes

2 Topics
Deployments Overview
Managing Rollouts

9 Topics
Networking Overview in Kubernetes
A quick note about DNS pods
Namespaces - kube-system
Note for M1 Architectures
Accessing MySQL from a Pod
Cygwin extra - fixing the terminal with winpty
If you have a problem with MySql in the next video
Service Discovery
Fully Qualified Domain Names (FQDN)

10 Topics
minikube with VirtualBox/HyperV users only - possible resource problems!
An Introduction to Microservices
Introduction to Microservices Part 2
Fleetman Microservices - setting the scene
Deploying the Queue
Deploying the Position Simulator
Inspecting Pod Logs
Deploying the Position Tracker
Deploying the API Gateway
Deploying the Webapp

8 Topics
Persistence
Upgrading to a Mongo Pod
Mongo Service
Expanding the Minikube VM
Volume Mounts
Volumes
PersistentVolumeClaims
StorageClasses and Binding

6 Topics
Warning
Getting started with AWS
Managing a Cluster in the Cloud
EKS vs Kops - Which to Choose?
Pricing Differences - EKS vs Kops (prices correct mid 2020)
Choose Your Own Adventure!

5 Topics
This Section is for Kops!
Introducing Kops - Kubernetes Operations
Installing the Kops Environment - 2021 Update
Configuring your first cluster
Running the Cluster

6 Topics
This section is for EKS
Getting started with EKS
Install eksctl and AWS CLI
Configure the AWS credentials
Install kubectl
Start the cluster

11 Topics
This section is for both EKS and Kops
Extra Steps for EKS Users
A note for if you were developing on a Mac M1 or Mac M2
Provisioning SSD drives with a StorageClass
Warning - problems with AWS LoadBalancers
Note for Kops users
A note for Mac users on Apple silicon
Deploying the Fleetman Workload to Kubernetes
Setting up a real Domain Name
Surviving Node Failure
Replicating Pods in Kubernetes

2 Topics
Deleting the Cluster
Restarting the Cluster

2 Topics
How to delete your EKS cluster
One last cluster deletion step

1 Topic
How to deploy to Google Cloud Platform

6 Topics
Introducing the ELK / ElasticStack
Installing the Stack to Kubernetes
Kibana - first look
Setting Filters and Refreshes
Demo: analysing a system failure
Kibana Dashboards

6 Topics
Monitoring a Cluster (2020 update)
Installing the kube-prometheus-stack
Use the "Classic UI" in the next video
Using the Prometheus UI
Introducing Grafana
(optional) How to Use NodePorts on a Cluster

10 Topics
Introducing Alerts
Preparing a Slack Channel
Configuring the AlertManager
Troubleshoot the alertmanager.yaml config
Dealing with Firing Alerts
The AlertManager UI and how to Silence Alerts
How to handle the Watchdog
Using PagerDuty
Case Study
Case Study: Troubleshooting a "Delinquent" node

1 Topic
What happens if the Master Node crashes? (Kops clusters only!)

2 Topics
Introduction to the "Advanced Section"
Code / files for this section

3 Topics
Memory requests
CPU Requests
Memory and CPU Limits

4 Topics
Enabling the Metrics Server
Viewing Metrics on the Dashboard
Tuning Java Spring Boot Applications Heap restriction
Setting reasonable Requests

3 Topics
Update: you will need to modify the yaml file in the next video
Introducing Replication and Autoscaling
Testing Autoscaling

2 Topics
Demo: why readiness probes are needed
Applying Liveness and Readiness Probes

4 Topics
Understanding the scheduler
QoS labels
Evictions
Pod Priorities

9 Topics
Creating a ConfigMap
Consuming a ConfigMap as Environment Variables
Do changes to a ConfigMap get propagated?
How to consume multiple environments variables with envFrom
Mounting ConfigMaps as Volumes
Creating Secrets
Using Secrets
Where have we already used ConfigMaps and Secrets?
(extra) Using Spring Cloud Kubernetes to Hot Reload ConfigMaps

7 Topics
Introducing Ingress
Defining Routing Rules
Adding Routes
Authentication
Running Ingress on AWS
Testing the Ingress Rules
(Extra) setting up HTTPS with TLS termination at the load balancer

6 Topics
Batch Jobs
Cron Jobs
DaemonSets
StatefulSets Overview
StatefulSets for Database Replication
Demo: Scaling out a Mongo Database

13 Topics
Notes on this section of the course
Introducing CI/CD
Warning - be careful when Forking repositories
Establishing a GitHub organization
Setting up a Basic Jenkins System
Defining a Pipeline
Update - creating a Personal Access Token from Github
Another minor update!
Running a Multibranch Pipeline
Reviewing Builds
Notes on GitHub Organizations
Organization Pipelines
Continuous Deployment into a Cluster

15 Topics
Getting Started with Helm
How do I Install a Helm Chart
How to Find Helm Charts
Installing a Monitoring Stack with Helm
Working with Chart Values
Customising values.yaml
Avoiding Snowflake Clusters!
Using Helm Pull to Take Control of a Chart
Generating yaml with "Helm Template"
Why would you write your own Helm Charts?
Writing Go Templates for Helm
Helm Functions and Pipelines
Flow Control in a Helm Template
Named Templates
Inspecting a Professional Helm Chart

2 Topics
Goodbye!
Bonus Lecture

  Write a Review

Kubernetes Hands-On - Deploy Microservices to the AWS Cloud

Go to Paid Course