We may earn an affiliate commission when you visit our partners.
Course image
Udemy logo

Kubernetes Hands-On - Deploy Microservices to the AWS Cloud

Richard Chesterwood, Prageeth Warnak, and Virtual Pair Programmers

Kubernetes is one of the hottest topics right now, and engineers with Kubernetes skills are in big demand.

Read more

Kubernetes is one of the hottest topics right now, and engineers with Kubernetes skills are in big demand.

Get those skills with this course. It's is a great chance to work on a real Kubernetes project, and to get yourself to a high professional standard on real projects.

All the way through the course you'll be working on realistic requirements - but you don't need to be a coder or know any particular programming language - I've prepared for you a set of Docker images, and your job is to use Kubernetes to get these images running.

The system is a Microservice-based architecture, and along the way, we'll look at design decisions and trade-offs you need to make when managing these complex systems. Note the course isn't about how to design Microservices (although we'll certainly be talking about that); the development work is done and we need to get the system running on a production cluster.

We'll also discover that the developers have made some bad mistakes in their code, by analyzing the run time performance of the cluster.

You can do the first part of the course on your local development computer (PC/Mac/Laptop). The second part (from Chapter 13 onwards) moves to the cloud. You'll use a real AWS account, and we go-ahead to set up monitoring with the ELK/Elastic Stack and monitor with Prometheus and Grafana.

The course now supports EKS, the AWS Elastic Kubernetes Service, but we also show how to use the alternative system, called Kops. The pros and cons of each are explained in detail.

I've designed this course for a wide audience - whether you're a DevOps engineer, a developer, or if you're quite new to the whole field, I'll explain everything along the way. Just some basic knowledge of working with computers, and maybe a bit of command-line experience will suffice.

You will need an AWS account for a part of the course if you want to work on the system yourself. If you're new to AWS then don't worry, I've got you covered -but Amazon will charge you for running the system (as with all/most cloud providers). Expect to pay no more than around 10USD for this (this is a safe overestimate), but you are expected to manage this spend yourself and you must delete your Kubernetes cluster at the end of your session. Don't let that put you off, it's a great investment.

You can absolutely just watch the AWS videos if you'd prefer not to incur these costs - you will still learn plenty.

As always, I'm here to answer questions and I aim to respond within 48 hours.

Good luck.

Enroll now

What's inside

Learning objectives

  • 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
  • Show more
  • Show less

Syllabus

Introduction
Introduction to Kubernetes Microservices course
Code for the course
Support for Apple M1 ,M2 users
Read more
Welcome to Kubernetes
Introducing Kubernetes
Hands-on Project
Installing a Local Kubernetes for Development
Options for Installing Kubernetes
Installing Docker Desktop for Kubernetes
Running Kubernetes Inside Docker Desktop
Using Minikube (as an alternative)
Choosing a Minikube Driver
Get a quickstart on Docker; really Docker is needed to understand Kubernetes but this quickstart should give you enough to get through this course
Important note for anyone with Docker/Docker Desktop installed
Docker Overview
Docker Containers vs Images
Attention Apple M1/M2 Users!
Running Containers from DockerHub
Pods are fundamental to Kubernetes and you'll learn all about them here - including writing and deploying your own
Pods Overview
Writing a Pod
Running a Pod
Services in Kubernetes
Important note for Docker Desktop and Driver Users
Services
NodePort and ClusterIP
Pod Selection with Labels
Exercise: Deploy ActiveMQ as a Pod and Service to Kubernetes
Extra note for Docker Desktop users
Exercise: Deploy ActiveMQ as a Pod and Service
Kubernetes ReplicaSets
ReplicaSets
Writing a ReplicaSet
Applying a ReplicaSet to Kubernetes
Kubernetes Deployments
Deployments Overview
Managing Rollouts
Networking and Service Discovery
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)
Microservice Architectures
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
Kubernetes Persistence and Volumes
Persistence
Upgrading to a Mongo Pod
Mongo Service
Expanding the Minikube VM
Volume Mounts
Volumes
PersistentVolumeClaims
StorageClasses and Binding
Running Kubernetes on the AWS Cloud
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!
KOPS - Running Kubernetes on the AWS Cloud
This Section is for Kops!
Introducing Kops - Kubernetes Operations
Installing the Kops Environment - 2021 Update
Configuring your first cluster
Running the Cluster
EKS - Running Kubernetes on the AWS Cloud
This section is for EKS
Getting started with EKS
Install eksctl and AWS CLI
Configure the AWS credentials
Install kubectl
Changing the instance types
Start the cluster
Operating your Cluster
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

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
This course empowers learners with high-demand Kubernetes skills, making them highly sought-after in various industries
Taught by experienced instructors with excellent reputations in the Kubernetes field
Provides hands-on learning through the deployment of a real Kubernetes project
No prior coding or programming experience is needed, making it suitable for learners with varying backgrounds
Explores common mistakes made by developers and provides insights into performance analysis
Students can experience running Kubernetes both locally and in the cloud using real-world tools such as AWS

Save this course

Save Kubernetes Hands-On - Deploy Microservices to the AWS Cloud to your list so you can find it easily later:
Save

Reviews summary

Kubernetes deployment course

Learners say this practical course does a great job covering Kubernetes. Instructors are very knowledgeable and provide real-world examples that will prepare learners for deployment in a business environment.
Instructors are very knowledgeable and engaging.
"Instructors style of teaching is very good and is very knowledgeable."
Covers practical real-world use cases.
"Covers variety of real world scenarios which will be useful on the job."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Kubernetes Hands-On - Deploy Microservices to the AWS Cloud with these activities:
Review Docker concepts
Before diving into Kubernetes, it's helpful to review Docker concepts. This exercise will help you refresh your understanding of Docker containers and images.
Browse courses on Docker
Show steps
  • Review the basics of Docker containers and images
  • Create a simple Docker container
  • Push the container to a registry
Kubernetes for Beginners Tutorial
Provide a foundation in Kubernetes basics to prepare for the course.
Show steps
  • Watch a video tutorial on Kubernetes concepts.
  • Follow a step-by-step guide to set up a local Kubernetes cluster.
  • Deploy a simple application to your Kubernetes cluster.
Review Kubernetes fundamentals
Before working with Kubernetes, it's important to review the fundamentals. This exercise will help you refresh your understanding of Kubernetes architecture and concepts.
Browse courses on Kubernetes
Show steps
  • Review the basics of Kubernetes architecture and concepts
  • Explore the Kubernetes documentation
  • Join a Kubernetes community
Four other activities
Expand to see all activities and additional details
Show all seven activities
Deploy Kubernetes Pods and Services
Deploying Pods and Services is fundamental to Kubernetes. This exercise will help you understand the basics of Kubernetes networking and service discovery.
Browse courses on Pods
Show steps
  • Create a Pod manifest and deploy it to Kubernetes
  • Create a Service manifest and deploy it to Kubernetes
  • Test the connectivity between Pods and Services
  • Explore the Kubernetes networking configuration
Configure Kubernetes Deployments
Deployments are a key part of managing Kubernetes applications. This tutorial will guide you through the process of creating and managing Deployments, including rolling updates.
Browse courses on Deployments
Show steps
  • Review the basics of Kubernetes Deployments
  • Create a Deployment manifest and deploy it to Kubernetes
  • Configure a rolling update strategy
  • Monitor the progress of a rolling update
Build a Kubernetes cluster on AWS
Building a Kubernetes cluster on AWS is a great way to learn about the cloud and Kubernetes. This project will guide you through the process of setting up a cluster using EKS or Kops.
Browse courses on AWS
Show steps
  • Choose a method for creating your cluster (EKS or Kops)
  • Create the cluster
  • Deploy a simple application to the cluster
  • Monitor the cluster
Kubernetes Deployment Project
Demonstrate proficiency in Kubernetes by deploying and managing a real-world application.
Browse courses on Kubernetes Deployment
Show steps
  • Design and implement a Kubernetes deployment architecture for a specific application.
  • Deploy and configure the application on a Kubernetes cluster.
  • Monitor and manage the application in production.

Career center

Learners who complete Kubernetes Hands-On - Deploy Microservices to the AWS Cloud will develop knowledge and skills that may be useful to these careers:
Kubernetes Administrator
A Kubernetes Administrator is someone who manages Kubernetes clusters, ensuring that they are running smoothly and efficiently. They work with developers and other IT professionals to ensure that applications are deployed and running correctly on the cluster. This course can help you become a Kubernetes Administrator by providing you with the skills and knowledge you need to manage Kubernetes clusters. You will learn how to install and configure Kubernetes, how to deploy and manage applications on Kubernetes, and how to troubleshoot and resolve issues with Kubernetes clusters.
DevOps Engineer
A DevOps Engineer is someone who works with developers and operations teams to ensure that software is delivered quickly and reliably. They work on the entire software development lifecycle, from planning and development to deployment and maintenance. This course can help you become a DevOps Engineer by providing you with the skills and knowledge you need to work with Kubernetes. You will learn how to use Kubernetes to deploy and manage applications, and how to integrate Kubernetes into your DevOps pipeline.
Cloud Engineer
A Cloud Engineer is someone who designs, builds, and manages cloud computing systems. They work with customers to understand their needs and then design and implement cloud solutions that meet those needs. This course can help you become a Cloud Engineer by providing you with the skills and knowledge you need to work with Kubernetes. You will learn how to use Kubernetes to deploy and manage applications in the cloud, and how to integrate Kubernetes with other cloud services.
Site Reliability Engineer
A Site Reliability Engineer (SRE) is someone who is responsible for the reliability and performance of a website or application. They work with developers and operations teams to ensure that the website or application is always up and running, and that it is performing at its best. This course can help you become an SRE by providing you with the skills and knowledge you need to work with Kubernetes. You will learn how to use Kubernetes to deploy and manage applications, and how to troubleshoot and resolve issues with Kubernetes clusters.
Software Architect
A Software Architect is someone who designs and oversees the development of software systems. They work with stakeholders to understand the requirements of the system, and then design and implement a system that meets those requirements. This course can help you become a Software Architect by providing you with the skills and knowledge you need to work with Kubernetes. You will learn how to use Kubernetes to design and implement distributed systems, and how to use Kubernetes to manage the lifecycle of software applications.
Systems Administrator
A Systems Administrator is someone who is responsible for the operation and maintenance of computer systems. They work with users to ensure that they have the resources they need to do their jobs, and they work with other IT professionals to ensure that the systems are running smoothly and efficiently. This course can help you become a Systems Administrator by providing you with the skills and knowledge you need to work with Kubernetes. You will learn how to use Kubernetes to deploy and manage applications, and how to troubleshoot and resolve issues with Kubernetes clusters.
Network Engineer
A Network Engineer is someone who designs, builds, and manages computer networks. They work with businesses and organizations to understand their networking needs, and then design and implement networks that meet those needs. This course can help you become a Network Engineer by providing you with the skills and knowledge you need to work with Kubernetes. You will learn how to use Kubernetes to deploy and manage network services, and how to integrate Kubernetes with other network technologies.
Security Engineer
A Security Engineer is someone who designs and implements security measures to protect computer systems and data. They work with businesses and organizations to identify and mitigate security risks, and they develop and implement security solutions that meet those needs. This course can help you become a Security Engineer by providing you with the skills and knowledge you need to work with Kubernetes. You will learn how to use Kubernetes to deploy and manage security services, and how to integrate Kubernetes with other security technologies.
Data Engineer
A Data Engineer is someone who designs and builds systems for storing, processing, and analyzing data. They work with businesses and organizations to understand their data needs, and then design and implement systems that meet those needs. This course may be useful for you if you want to become a Data Engineer, as it will provide you with the skills and knowledge you need to work with Kubernetes. You will learn how to use Kubernetes to deploy and manage data services, and how to integrate Kubernetes with other data technologies.
Database Administrator
A Database Administrator (DBA) is someone who manages and maintains databases. They work with businesses and organizations to ensure that their databases are running smoothly and efficiently, and that the data in the databases is accurate and secure. This course may be useful for you if you want to become a DBA, as it will provide you with the skills and knowledge you need to work with Kubernetes. You will learn how to use Kubernetes to deploy and manage database services, and how to integrate Kubernetes with other database technologies.
Software Developer
A Software Developer is someone who designs, develops, and maintains software applications. They work with businesses and organizations to understand their software needs, and then design and implement applications that meet those needs. This course may be useful for you if you want to become a Software Developer, as it will provide you with the skills and knowledge you need to work with Kubernetes. You will learn how to use Kubernetes to deploy and manage software applications, and how to integrate Kubernetes with other software development technologies.
Web Developer
A Web Developer is someone who designs and develops websites. They work with businesses and organizations to understand their website needs, and then design and implement websites that meet those needs. This course may be useful for you if you want to become a Web Developer, as it will provide you with the skills and knowledge you need to work with Kubernetes. You will learn how to use Kubernetes to deploy and manage web applications, and how to integrate Kubernetes with other web development technologies.
Data Scientist
A Data Scientist is someone who uses data to solve business problems. They work with businesses and organizations to understand their data needs, and then use data to develop solutions to those needs. This course may be useful for you if you want to become a Data Scientist, as it will provide you with the skills and knowledge you need to work with Kubernetes. You will learn how to use Kubernetes to deploy and manage data science applications, and how to integrate Kubernetes with other data science technologies.
Machine Learning Engineer
A Machine Learning Engineer is someone who develops and deploys machine learning models. They work with businesses and organizations to understand their machine learning needs, and then develop and deploy models that meet those needs. This course may be useful for you if you want to become a Machine Learning Engineer, as it will provide you with the skills and knowledge you need to work with Kubernetes. You will learn how to use Kubernetes to deploy and manage machine learning applications, and how to integrate Kubernetes with other machine learning technologies.
Artificial Intelligence Engineer
An Artificial Intelligence Engineer is someone who develops and deploys artificial intelligence (AI) models. They work with businesses and organizations to understand their AI needs, and then develop and deploy models that meet those needs. This course may be useful for you if you want to become an AI Engineer, as it will provide you with the skills and knowledge you need to work with Kubernetes. You will learn how to use Kubernetes to deploy and manage AI applications, and how to integrate Kubernetes with other AI technologies.

Reading list

We've selected eight books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Kubernetes Hands-On - Deploy Microservices to the AWS Cloud.
Practical guide to deploying and managing Kubernetes clusters. It covers a wide range of topics, including cluster architecture, networking, storage, and security.
Provides a comprehensive overview of Kubernetes, covering its architecture, core concepts, and best practices. It valuable resource for both beginners and experienced Kubernetes users.
Provides a practical guide to deploying and managing Kubernetes clusters in production environments. It covers topics such as cluster architecture, networking, storage, and security.
Provides a practical guide to deploying and managing Kubernetes clusters. It covers a wide range of topics, including cluster architecture, networking, storage, and security.
Provides a comprehensive overview of cloud native infrastructure, with a focus on Kubernetes. It covers topics such as cluster architecture, networking, storage, and security.
Provides a collection of best practices for deploying and managing Kubernetes clusters. It valuable resource for both beginners and experienced Kubernetes users.
Provides a comprehensive overview of Kubernetes, covering its architecture, core concepts, and best practices. It valuable resource for both beginners and experienced Kubernetes users.
Provides a comprehensive guide to advanced Kubernetes topics, such as cluster architecture, networking, storage, and security. It valuable resource for experienced Kubernetes users.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Kubernetes Hands-On - Deploy Microservices to the AWS Cloud.
Learn DevOps: The Complete Kubernetes Course
Most relevant
Kubernetes Security: Cluster Setup
Most relevant
Docker and Kubernetes: The Complete Guide
Most relevant
Integrating an EKS Cluster with Other AWS Services
Most relevant
Terraform on AWS EKS Kubernetes IaC SRE- 50 Real-World...
Most relevant
Container Infrastructure Analysis with kube-hunter
Most relevant
Deploying and Managing Azure Kubernetes Service (AKS)...
Most relevant
Kubernetes for Developers: Moving to the Cloud
Most relevant
Securing an EKS Cluster
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser