Module 5 of Path: DevOps for Developers
Kubernetes is a powerful container management tool that's taking the world by storm. This detailed course will help you master it. In this course, you'll start with the fundamentals of Kubernetes and what the main components of a cluster look like. You'll then learn how to use those components to build, test, deploy, and upgrade applications, as well as how to achieve state persistence once your application is deployed. You'll also learn how to secure your deployments and manage resources, which are crucial DevOps skills. By the time you're done, you'll have a firm grasp on what Kubernetes is, as well as the skills to deploy your own clusters and applications with confidence.
173 Lessons
13 Quizzes
72 Playgrounds
860 Code Snippets
77 Illustrations
Getting Started with Pods
A Quick and Dirty way to Run Pods
Defining Pods through Declarative Syntax
Components and Stages involved in a Pod's Scheduling
Playing around with the Running Pod
Running Multiple Containers in a Single Pod
Single vs. Multi-Container Pods
Monitoring Health
Quiz yourself on Pods
What's Next?
Getting Started with Communication
Creating Services by Exposing Ports
Sequential Breakdown of the Process
Creating Services through Declarative Syntax
Splitting the Pod and Establishing communication through Services
Creating the Split API Pods
Defining Multiple Objects in the Same YAML file
Discovering Services
Comparison with Docker Swarm
Quick Quiz!
What's Next?
Getting Started with Deploying Releases
Deploying new Releases
Sequential Breakdown of the Process
Updating Deployments
Defining a Zero-Downtime Deployment
Creating a Zero-Downtime Deployment
Rolling Back or Rolling Forward?
Playing around with the Deployment
Rolling Back Failed Deployments
Merging Everything into the Same YAML Definition
Updating Multiple Objects
Scaling Deployments
Comparison with Docker Swarm
Quick Quiz!
What's Next?
Getting Started with Ingress
Why Services Are Not the Best Fit for External Access?
Enabling Ingress Controllers
Creating Ingress Resources Based on Paths
Sequential Breakdown of the Process
Creating Ingress Resources Based on Domains
Creating an Ingress Resource with Default Backend
Comparison with Docker Swarm
Quick Quiz!
What's Next?
Getting Started with Volumes
Accessing Host’s Resources through hostPath Volumes
Running the Pod after mounting hostPath
Using hostPath Volume Type to Inject Configuration Files
Working with the New Prometheus Configuration
Non-Persisting State
Persisting State through the emptyDir Volume Type
Quick Quiz!
What's Next?
Getting Started with ConfigMaps
Injecting Configuration from a Single File
Injecting Configurations from Multiple Files
Injecting Configurations from Key/Value Literals
Injecting Configurations from Environment Files
Converting ConfigMap Output into Environment Variables
Defining ConfigMaps as YAML
A Plea NOT to Use ConfigMaps!
Comparison with Docker Swarm
Quick Quiz!
What's Next?
Getting Started with Security
Accessing Kubernetes API
Authorizing Requests and Creating a Cluster
Creating Users to Access the Cluster
Accessing the Cluster as a User
Exploring RBAC Authorization
Peeking into Pre-Defined Cluster Roles
Creating Role Bindings
Creating Cluster Role Bindings
Combining Role Bindings with Namespaces
Granting Access as a Release Manager
Replacing Users With Groups
Comparison with Docker Swarm
Quiz yourself on Securing Kubernetes
What's Next?
Getting Started with Managing Resources
Defining Container Memory and CPU Resources
Getting Practical with Container Memory and CPU Resources
Measuring the Actual Memory and CPU Consumption
Allocating Insufficient Resource than the Actual Usage
Allocating Excessive Resource than the Actual Usage
Adjusting Resources Based on Actual Usage
Exploring Quality of Service (QoS) Contracts
Examining QoS in Action
Defining Resource Defaults and Limitations within a Namespace
The Mismatch Scenario
Defining Resource Quotas for a Namespace
Exploring the Effects by Violating Quotas
Exploring the Types of Quotas
Comparison with Docker Swarm
Quiz yourself on Managing Resources
What's Next?
Getting Started with Production-Ready Clusters
Kubernetes Operations (kops) Project
Preparing for the Cluster Setup: AWS CLI and Region
Preparing for the Cluster Setup: IAM Group and User
Preparing for the Cluster Setup: Availability Zones and SSH Keys
Creating a Cluster: Creating S3 Bucket and Installing kops
Creating a Cluster: Discussing the Specifications
Creating a Cluster: Running and Verification
Exploring the Components That Constitute the Cluster
Updating the Cluster
Sequential Breakdown and Verification of the Update Process
Upgrading the Cluster Manually: Changing the Kubernetes Version
Exploring and Verifying the Output
Upgrading the Cluster Automatically
Accessing the Cluster: Understanding the Protocol
Accessing the Cluster: Adding the Load Balancer
Deploying Applications
Exploring the High-Availability and Fault-Tolerance
Giving Others Access to the Cluster
Destroying the Cluster
Comparison with Docker Swarm
Quick Quiz!
What's Next?
Getting Started with State Persistence
Deploying Stateful Applications without Persisting State
Analyzing Failure of the Stateful Application
Creating AWS Volumes
Creating Kubernetes Persistent Volumes
Claiming Persistent Volumes
Creating Deployment for Attaching Claimed Volumes to Pods
Verifying the State Persistence and Exploring the Failures
Removing the Resources and Exploring the Effects
Using Storage Classes to Dynamically Provision Persistent Volumes
Using Default Storage Classes
Defining Storage Classes
Creating Storage Classes
Quick Quiz!
173 Lessons
13 Quizzes
72 Playgrounds
860 Code Snippets
77 Illustrations