Kubernetes is a powerful tool developed by Google for managing containerized applications in a clustered environment. Kubernetes helps you automate, deploy, scale, and manage containerized applications. It gives you the freedom to take advantage of on-premise cloud infrastructures. It also helps you write better cloud-native applications. Kubernetes is a core tool in DevOps; it gives you the ability to schedule and manage containers (Docker or otherwise) at scale. If you’re looking to containerize your applications in the ‘Kubernetes Way’ then this Course is perfect for you!
This comprehensive 3-in-1 Course is a fast-paced guide offering hands-on and practical guidance with step-by-step instructions and assignments to Containerize Your Applications in the ‘Kubernetes Way’! You’ll initially get up and running with fundamentals of Kubernetes and container orchestration. You’ll build your own container cluster and manage it as well as secure the cluster and handle service discovery. Moving further, you’ll dive into the Kubernetes architecture, components and services to build a production-class container infrastructure. Finally, you’ll write cloud-native applications, test, monitor and deploy your application on the cloud (GCP) using Kubernetes.
By the end of this course, you’ll containerize your applications to build a production-class container infrastructure in the ‘Kubernetes way’.
Contents and Overview
This training program includes 3 complete courses, carefully chosen to give you the most comprehensive training possible.
The first course, Kubernetes in 7 Days, covers managing applications in a productionised Kubernetes. This course will help you to unravel the potential of Kubernetes in the shortest amount of time. You will begin by creating your first Kubernetes cluster using Minikube. Then move on to exploring Kubernetes in some more detail and build a complex cluster. By the 4th Day, you will learn to enhance your cluster with a Grafana based monitoring dashboard in your application. Once you’ve acquired knowledge on dashboards, explore how a Kubernetes cluster provisions storage to its applications and learn how to secure them. Finally, learn to create a CI/CD pipeline to build and deploy your applications.
The second course, Containerization the Kubernetes Way, covers developing, running, and deploying your containerized applications using Kubernetes. You’ll learn how to deploy Kubernetes on several cloud platforms. Further, you’ll learn to package your code to run in Kubernetes. You’ll dive into the Kubernetes architecture and components and explore how they come together to build a production-class container infrastructure. Later you will learn to work with pods, deployments, and services. By the end of this course, you’d have gained the required skills to deploy a Kubernetes cluster and a simple application in a development ecosystem.
The third course, Kubernetes for Developers, covers writing cloud-native applications that can run anywhere with the power of Kubernetes. This course will give you detailed instructions, real-world examples, and helpful advice. We will begin by learning to set up the development environment on your local machine. Then move on to package your code into Kubernetes, and manage container lifecycles. Once you get a grip on understanding the RBAC Authorization, very easily explore the monitoring techniques with Prometheus and troubleshoot your service account. Finally, you will learn to create a cluster in your Google Cloud Environment and deploy your application in production. By the end of this video, you will develop, run, test, and deploy your application in the cloud, utilizing the power of Kubernetes to its full potential.
By the end of this course, you’ll containerize your applications to build a production-class container infrastructure in the ‘Kubernetes way’.
About the Authors
Des Drury is a passionate technologist with many years’ experience in all aspects of data center infrastructure, automation, programming languages, and developer workflows. He is:
– Co-organizer of the Melbourne Kubernetes Meetup
– Author of Open Datacenter, a Kubernetes distribution with numerous datacenter workloads;
– A Kubernetes evangelist from the early days of its release;
– Passionate about helping teams to understand complex technology
– Teaches the skills required for team members to solve their own problems
– An excellent communicator and enjoys helping people, passing on knowledge, and improving processes
He has also built numerous tools that have been adopted as enterprise solutions and has received a number of awards.Braithe E.S. Warnock is currently a Managing Cloud Architect for the Financial Services division of Ernst & Young. He has had the opportunity to work with several of the largest PCF installations on an international scale. He helped build the framework for the adoption of PCF at top companies such as Ford, Comcast, DISH, HSBC, and Charles Schwab. As a vendor-neutral consultant, Braithe enjoys helping people understand the rapidly-evolving world of cloud and application architectures. Braithe has more than six years’ experience and specialization in global digital transformations. He has expertise in various cloud and cloud platform technologies (PCF, AWS, Azure, VMware, Netflix OSS, Kubernetes, and OpenShift) and also the Java and Spring Boot frameworks. He has developed over 100 microservices using Spring Boot, Java 7/8, Spring Cloud, and Netflix OSS, spanning half a dozen unique cloud-native microservice architectures. He also has experience in developing machine learning models using AWS, Spark, and MLlib to support product recommendations and enhance customer data.
Jan Stomphorst is a senior solution architect with more than 20 years’ experience in the automation industry; he creates the best solutions for his customers. He uses advanced technical solutions to help developers create stable continuous pipelines and develop systems for 100% uptime. He is a Docker and Kubernetes expert. He supports several customers with on-premise and in-the-cloud Kubernetes strategies.
Kubernetes in 7 Days
This video will give you an overview about the course.
This video describes how to install the pre-requisite software for the course.
• Install kubectl and Virtual box
• Install Minikube and Helm and Visual Studio
• Install kubectx and kubens and kubetail
This video describes the steps to create a local development cluster using Minikube.
• Get to know how to install a number of the Kubernetes add-ons
• Understand the importance of Agile development and communication
This video provides a quick exploration of some of the important aspects of the Minikube cluster.
• Learn how to work on the Kubernetes dashboard and the CLI.
This video describes how to build an application with Docker.
• Describe the application in a Kubernetes native way
• Deploy the application to Kubernetes
• Finally test it in Kubernetes.
This video is your homework for day one.
• Take a look at the Question and try solving it on your own before the next lecture
This video does a quick whistle stop tour of the Kubernetes architecture.
• Explore Kubernetes processes.
• Understand Kubernetes concepts.
• Learn important Kubernetes resource types
This video describes the Kubernetes manifests
• Explore in detail Kubernetes resources.
• Create Kubernetes resources.
This video describes the kubeconfig file.
• Configure kubectl CLI using the kubeconfig file
• Download the template URL
This video describes the need for package management in Kubernetes.
• Describe Kubernetes package called Helm.
• Install Helm to Clusters.
• Re-deploy first-app using Helm.
This video describes how to deploy a more complex application using Helm.
• Explore the Helm chart
• Install Helm
• Deploy MediaWiki
This video is your homework for day two.
• Deploy the first-app application to Minikube.
This video describes how to install a multi-node Kubernetes cluster with kubeadm using a project called k8s-vagrant-multi-node.
• Explore about kubeadm from the documentation
• Install Vagrant
• Install the cluster
This video explores some the features of a multi-node Kubernetes cluster.
• Check the nodes present
• Explore in detail about all the nodes
This video demonstrates how to deploy some of the first workloads you will need on your cluster.
• Deploy Helm
• Deploy Ingress Controller and Heapster
• Install Kubernetes Dashboard
This video describes how to redeploy the first-app using Helm, but this time with an Ingress resource
• Take a look at the Ingress resource template
• Deploy into the cluster
• Test the application
This video is your homework for day three.
• Install the multi-node cluster onto your own machine and deploy the initial workloads to it.
This video describes how Kubernetes uses probes to facilitate self healing of workloads in the cluster.
• Explore types of Probe
• Learn about Probe actions
• Implement Probes in code
This video describes Prometheus, a very popular monitoring solution and timeseries database (TSDB).
• Explore Prometheus architecture
• Install Prometheus into the cluster
• Explore some of the available metrics
This video provides a quick overview of Grafana.
• Learn about Grafana
• Deploy Grafana into the cluster
• Log in to the Grafana web UI
This video describes how to find pre-built Grafana dashboards
• Explore the dashboard
• Understand the different areas of the dashboard
• Deploy the 2nd dashboard
This video is your homework for day four.
• Install Prometheus and Grafana into the cluster
This video describes how Kubernetes uses PersistentVolumes (PVs) and PersistentVolumentClaims (PVCs) to manage storage for an application.
• Explore types of Persistent volumes
• Learn about Access Modes
• Discuss how storage classes are used to enable the dynamic provision of persistent volumes
This video provides an overview of Rook, a Kubernetes operator to manage storage clusters like Ceph.
• Explore Rook architecture
• Install Rook into the cluster.
• Deploy an example to test the block storage
This video describes how you can use the Rook Toolbox to get a deeper understanding of the Ceph components.
• Explore in detail about the Rook toolbox
• Deploy Rook in an example
This video describes how to deploy a HA MariaDB database that makes use of the persistent storage provided by Rook.
• Install MariaDB
• Deploy a HA version of the MariaDB database
• Clean up the rook sample workloads
This video is your homework for day five.
• Install Rook on your cluster and then redeploy Prometheus and Grafana to use persistent storage.
This video describes how Role Based Access Control (RBAC) is used within Kubernetes to secure components of the cluster.
• Explore RBAC resources and implement it
• Learn about cluster roles and implement it
• Explore cluster role bindings and implement it
This video describes how to install Keycloak, an open source access management and identity server, into the cluster.
• Install Keycloak
• Configure Keycloak to help protect Kubernetes
This video describes how to configure Kubernetes to use OIDC to secure cluster components.
• Get the ca.crt file
• Restart the API server
This video describes how to extend the Kubernetes Dashboard deployment so that it is now protected by an OIDC proxy that authenticates with Keycloak.
• Deploy the Kubernetes manifests
• Connect to Ingress
• Log in to the Kubernetes dashboard
This video describes how to configure kubectl so that a user authenticated by Keycloak is used to access the cluster.
• Authenticate Keycloak
• Update the kube config file
• Map the user against cluster and access the cluster
This video is your homework for day six.
• Secure the Kubernetes cluster using Keycloak
This video provides a quick overview of Continuous Integration (CI) / Continuous Deployment (CD) concepts.
Explore Typical CI workflow
Learn about Continuous Delivery and Continuous Deployment
This video describes how to install Jenkins, a very popular automation server often used to implement CI/CD.
Install Jenkins
Deploy a Docker in Docker (DIND) service to build containers in the cluster.
This video describes how Jenkins implements the Pipeline as Code concept using a Jenkinsfile.
Learn the types of Jenkinsfile
Explore Kubernetes plugin for Jenkins
Take a look at the Jenkinsfile to build the first-app
This video describes how to create a Jenkinsfile to build and deploy the first-app we saw in earlier Sections of the course.
Create a fork
Navigate to the Jenkinsfile and modify the repository name
Build the Pipeline created
This video is your homework for day seven
Install Jenkins and setup a pipeline to build and deploy the first-app
Containerization the Kubernetes Way
This video provides an overview of the entire course.
This video will help you understand core Kubernetes concepts.
Get a quick architectural overview of Kubernetes
Learn the purpose of our Kubernetes
Learn what container orchestration is about
Further understand core Kubernetes concepts.
Explore objects in Kubernetes terms
See how objects provide a form of configuration
Learn about Kubernetes KNodes and how they are distinguished
In this video, you will see how enterprises can leverage Google’s fully managed Kubernetes.
Learn about the distinguishing features of GKE
Take a tour of the console
Configure a cluster
How enterprises can leverage Amazon’s fully managed Kubernetes.
Explore the distinguishing features of EKS
Take a tour of the console
Configure a cluster
In this video, you will see how enterprises can leverage Azure’s fully managed Kubernetes.
Explore the distinguishing features of AKS
Take a tour of the console
Configure a cluster
In this video, you will be provided with preliminary steps for creating a running application in EKS.
Create your Amazon EKS service role in the IAM console
Create your Amazon EKS cluster VPC
Install and configure Kubernetes for Amazon EKS
This video will help you manage EKS clusters in AWS.
Create your Amazon EKS cluster in the console
Delete your Amazon EKS cluster from the console
Delete your AWS EKS services
Managing deployments to Kubernetes.
Launch and configure your Amazon EKS worker nodes
Enable your worker nodes to join your cluster
Create your demo application
In this video, you will see how containerized applications communicate.
Understand Docker network design challenges
Understand Docker networking architecture
Understand maintaining application portability
This video will help you see how Kubernetes and Docker interact from a network perspective.
Understand the “IP-per-pod” model
Explore Kubernetes/Docker networking
Learn about Kubernetes IP address management
In this video, you will learn about networking solutions capable of creating the network architecture that Kubernetes needs to run.
Understand Container to container communication
Explore Pod to pod communication
Learn about Kubernetes mode implementations
This video will help you understand the Kubernetes volume abstraction.
Cover the types of volumes
What is a Kubernetes volume?
The Kubernetes volume abstraction
In this video, you will understand the PersistentVolume subsystem API.
Cover the PersistentVolume
Cover the PersistentVolumeClaim
Explore PersistentVolume lifecycle
In this video, you will understand the concept of a StorageClass in Kubernetes.
Explore the StorageClass resource
Learn about The StorageClass resource mount options
Learn about the StorageClass resource configuration
In this video, you will see how dynamic volume provisioning allows storage volumes to be created on-demand.
Explore the Dynamic volume provisioning
Enable Dynamic Provisioning
Use Dynamic Provisioning
In this video, you will look at the limits of how many volumes can be attached to a node.
Learn about Node-specific Volume Limits
Explore Kubernetes default limits
Learn about the Dynamic volume limits
In this video, you will see how to manage a ‘pod definition’ YAML file that will mount volumes containing secrets.
Define a Kubernetes Secret API object
Use secrets as volumes mounted on a Pod
Use secrets as environment variables in a Pod
This video will help you understand Kubernetes pod, service, ReplicaSet and deployment objects.
Explore Kubernetes key terms: Pod
Learn about Kubernetes key terms: Deployment
Understand Kubernetes key terms: ReplicaSet
In this video, you will Identify key steps needed to achieve high availability.
Understand two ways to achieve an HA cluster
Learn about Load-balancing between multiple masters
Review an introduction to the concept of federation
In this video, you will create multiple instances of your application.
Configure the ‘replicas’ property
Use the Horizontal Pod autoscaling feature
Scale horizontally - Deployment with ReplicaSet
Kubernetes for Developers
This video will give you an overview of the course.
The aim of this video is learn the installation process.
Get to know the Pre-requisites for the development environment
Explore the minikube features
Set up your machine
This video is a detailed explanation of Kubernetes.
Find out why do we need Containers
Explore the use of Kubernetes
Take a business case for Kubernetes and Containers
Dive deeper into Kubernetes with this video.
Get an overview of Kubernetes
Learn the master process
Study in detail about Node, Pods and Containers
The aim of this video is to learn the basics to deploy an application.
Learn about Replica Sets
Explore in depth about deployment and a Deamon Set
Get familiarized with Services
The aim of this video is to learn the purpose of a Container.
Study in detail about a Container
Go through the Dockerfile commands
Study the techniques to build a Container and to create a base image
The aim of this video is to learn about running code in a Container.
Create the Node.js app
Create the Dockerfile
Test and run the app and cleanup
Take another example of running code in a Container.
Create the Golang app
Create the Dockerfile and run the app
Learn the cross compiling techniques
The aim of this video is to learn how to create a Container.
Learn the steps for preparation to run Docker in Kubernetes
Know more about Docker registry
Upload and verify Docker image on Docker Hub
The aim of this video is to learn the commands in a Container.
Explore how to run commands in Docker
Take a look at a few examples
Learn how to get logs with the use of examples
The aim of this video is to learn how a Pod works.
Know more about a Pod’s status field
Explore the possible values for Phase
Define postStart and preStop handlers
The aim of this video is to learn how labels work.
Get in-depth knowledge about labels and annotations
Learn how to attach label to a node
Walk through a labels selectors example
The aim of this video is to learn the techniques for rolling out your Pod.
Study in depth about deployment
Take a look at the YAML example
Scale a deployment
The aim of this video is to learn the techniques for putting storage in your deployment.
Learn about Persistent Storage(PV) and persistent Storage Claim (PVC)
Create a PV and a PVC
Connect the PVC in a Pod
The aim of this video is to learn to add configuration files in the Pod (Docker).
Learn environment variables with examples
Learn ConfigMap object with examples
The aim of this video is to learn to connect your Pod to the internet.
Learn more about Ingress
Explore in detail about services and its types
Connect the service to the outside world with an example
The aim of this video is to explain Role and ClusterRole.
Learn about Namespace
Study in detail about RBAC
Explore Role and ClusterRole
The aim of this video is to give a detailed explanation on the service account.
Learn about service account with an example
Connect dervice account for deployment
With this video learn to add more roles to one service account.
Know more about resource names
Learn about aggregrated ClusterRoles
Add and view default ClusterRoles
Here we’ll now put everything together.
Create a namespace
Create a Role
Export the config file
The aim of this video is to learn to setup monitoring.
Explore Prometheus
Set up monitoring with an example
The aim of this video is to learn to show graphics for the monitoring.
Learn about Grafana
Know more about Configmaps
Deploy your application
The aim of this video is to learn the logging in to a central service.
Study about Sidecar Containers
Take a look at an example with 2 sidecars
Walk through an example of fluentd
What do we do when a Pod service or node doesn’t work?
Go through the most important debugging commands
Find out more about debugging deployment
Debug Pods, Services and Nodes
The aim of this video is to create a cluster.
Create a cluster at GCE
Delete a Cluster
In this video, we’ll learn to deploy your application
Create a deployment
Run the application
This video will give you a brief summary of the course.
Review what we’ve learnt so far!