Kubernetes for App Developers (LFD459)
Learning to build Kubernetes applications will open up career opportunities in high-demand roles in DevOps, cloud engineering & containerization roles.
Description
Learning to build Kubernetes applications will open up career opportunities in high-demand roles in DevOps, cloud engineering & containerization roles. Using Python, this course teaches how to define application resources & use core primitives to build, monitor & troubleshoot scalable applications in Kubernetes — including working with network plugins, security & cloud storage to deploy applications in a production environment.
Summary
Learning to build Kubernetes applications will open up career opportunities in high-demand roles in DevOps, cloud engineering & containerization roles.
What You'll Learn
- Starting with a simple Python script, this course will show you how to define application resources and use core primitives to build, monitor and troubleshoot scalable applications in Kubernetes.
- Working with network plugins, security and cloud storage, you will be exposed to many of the features needed to deploy an application in a production environment.
Prerequisites
- Basic Linux command line and file editing skills and be familiar with using a programming language (such as Python, Node.js, Go).
- Knowledge of Cloud Native application concepts and architectures (such as is taught in our free Introduction to Kubernetes edX MOOC) is helpful for this course
Outline
- Objectives
- Who You Are
- The Linux Foundation
- Linux Foundation Training
- Certification Programs and Digital Badging
- Platform Details
- What Is Kubernetes?
- Components of Kubernetes
- Challenges
- The Borg Heritage
- Kubernetes Architecture
- Terminology
- Control Plane Node
- Worker Nodes
- Pods
- Services
- Operators
- Single IP per Pod
- Networking Setup
- CNI Network Configuration File
- Pod-to-Pod Communication
- Cloud Native Computing Foundation
- Resource Recommendations
- Labs
- Container Options
- Containerizing an Application
- Creating the Dockerfile
- Hosting a Local Repository
- Creating a Deployment
- Running Commands in a Container
- Multi-Container Pod
- readinessProbe
- livenessProbe
- startupProbe
- Testing
- Helm
- Kustomize
- Labs
- Traditional Applications: Considerations
- Decoupled Resources
- Transience
- Flexible Framework
- Managing Resource Usage
- Using Label Selectors
- Multi-Container Pods
- Sidecar Container
- Adapter Container
- Ambassador
- initContainer
- Custom Resource Definitions
- Points to Ponder
- Jobs
- Labs
- Volumes Overview
- Introducing Volumes
- Volume Spec
- Volume Types
- Shared Volume Example
- Persistent Volumes and Claims
- Persistent Volume
- Persistent Volume Claim
- Dynamic Provisioning
- Secrets
- Using Secrets via Environment Variables
- Mounting Secrets as Volumes
- Portable Data with ConfigMaps
- Using ConfigMaps
- Deployment Configuration Status
- Scaling and Rolling Updates
- Deployment Rollbacks
- Labs
- Security Overview
- Accessing the API
- Authentication
- Authorization
- RBAC
- RBAC Process Overview
- Admission Controller
- Security Contexts
- Pod Security Standards
- Network Policies
- Network Policy Example
- Default Policy Example
- Labs
- Service Types
- Services Diagram
- Service Update Pattern
- Accessing an Application with a Service
- Service without a Selector
- ClusterIP
- NodePort
- LoadBalancer
- ExternalName
- Ingress Resource
- Ingress Controller
- Service Mesh
- Labs
- Troubleshooting Overview
- Basic Troubleshooting Steps
- Ongoing (Constant) Change
- Basic Troubleshooting Flow: Pods
- Basic Troubleshooting Flow: Node and Security
- Basic Troubleshooting Flow: Agents
- Monitoring
- Logging Tools
- Monitoring Applications
- System and Agent Logs
- Conformance Testing
- More Resource
- Labs