GL992 - Introduction to Containers, Kubernetes, and OpenShift

Need something different? Guru Labs has other Linux and security courses and can build a custom course that covers exactly what you need!

The "Introduction to Containers, Kubernetes, and OpenShift" course is designed to offer a comprehensive understanding of container orchestration, leveraging Kubernetes and OpenShift platforms. This course begins with foundational concepts of container technology, including an overview of daemonless containers and essential tools like Podman and Buildah, which are critical for managing container lifecycles and configurations. Participants will gain practical skills in creating and managing container images using industry-standard practices, which are crucial for streamlining application deployment in modern IT environments. The course also covers essential networking aspects, emphasizing container network interfaces and service discovery, thereby equipping attendees with the skills to architect resilient and scalable applications.

The course progresses to advanced Kubernetes core concepts, such as understanding its architecture, mastering cluster communication, and working with Kubernetes objects and properties. It emphasizes the importance of YAML configuration files for defining and managing complex Kubernetes environments, offering a blend of theoretical knowledge and hands-on labs for practical understanding. Attendees will delve into managing application lifecycles, exploring the intricacies of pod and container lifecycle management, and the use of Init Containers and ReplicaSets for ensuring high availability and seamless application updates. These skills are essential for professionals aiming to excel in cloud-native application management and deployment.

Finally, the course provides an in-depth exploration of OpenShift, comparing its features with Kubernetes and highlighting its enterprise advantages, such as enhanced security, integrated developer tools, and seamless CI/CD pipelines. Participants will learn about OpenShift's architecture and its additional capabilities, like managing custom resources with the Operator Lifecycle Manager, offering a robust framework for deploying cloud-native applications in an enterprise context. The course's practical labs enable learners to apply concepts through real-world scenarios, preparing them to handle complex projects and effectively leverage the power of OpenShift for advanced cloud solutions.

Audience:

  1. DevOps Engineers: seeking to enhance their skills in managing and automating containerized applications using Kubernetes and OpenShift in their CI/CD pipelines.
  2. Cloud Architects: will benefit from this course by gaining the knowledge needed to design scalable and secure cloud-native solutions utilizing Kubernetes and OpenShift's full potential.
  3. Software Developers: looking to understand containerization and improve their ability to build, deploy, and manage applications in containerized environments will find this course beneficial.
  4. IT Operations Professionals: can enhance their skills in maintaining and monitoring production environments by learning how to manage and troubleshoot containerized applications effectively.
  5. IT Managers and Decision Makers: a strategic overview of adopting Kubernetes and OpenShift, aiding in informed decision-making for digital transformation initiatives.
Prerequisites:

Course: GL990 "Linux Fundamentals for Containers and Kubernetes". Linux experience is a must as this will not be covered in the course.

Supported Distributions:
Red Hat Enterprise Linux 9
Recommended Class Length:
5 days
Detailed Course Outline:
  1. Container Technology Overview
    1. Container Fundamentals
    2. Daemonless Containers
    3. Podman
    4. Podman Configuration
    5. Podman Images
    6. Podman Volumes
    7. Podman Networking
    8. Rootless Podman
    9. Podman and Pods
    10. Building Images with Buildah
    11. Managing Images with Skopeo
    Lab Tasks
    1. Podman
    2. Podman Networking
    3. Podman and Pods
  2. Managing Container Images
    1. Docker Images
    2. Listing and Removing Images
    3. Searching for Images
    4. Downloading Images
    5. Uploading Images
    6. Export/Import Images
    7. Save/Load Images
    8. Committing Changes
    Lab Tasks
    1. Installing Docker
    2. Docker Images
    3. Docker Platform Images
  3. Creating Images with Dockerfile
    1. Dockerfile
    2. Caching
    3. docker image build
    4. Dockerfile Instructions
    5. ENV and WORKDIR
    6. Running Commands
    7. Getting Files into the Image
    8. Defining Container Executable
    9. HEALTHCHECK
    10. Best Practices
    11. Multi-Stage builds with Dockerfile
    Lab Tasks
    1. Dockerfile Fundamentals
    2. Optimizing Image Build Size
    3. Image Builds and Caching
  4. Kubernetes Core Concepts
    1. Kubernetes Architecture
    2. Cluster Communication
    3. Objects
    4. Object Properties
    5. Labels & Selectors
    6. Annotations
    7. Object Management
    8. Image Fundamentals
    9. Container Fundamentals
    10. Pod Fundamentals
    11. Working with Pods
    12. Writing YAML Files
    Lab Tasks
    1. Container and Pod Fundamentals
    2. Single Node Install
    3. Pod Fundamentals
  5. Installation
    1. Installation pre-requisites
    2. Installation (single node)
    3. Installation (production)
    4. Client Tool Optimizations
    5. Installing HA Control Plane (DEMO)
    Lab Tasks
    1. (DEMO) Kubernetes HA Masters Install
    2. Kubernetes Install
    3. Joining Worker Nodes
  6. Application Lifecycle Management
    1. CKA Objectives Covered
    2. Pod Lifecycle
    3. Container Lifecycle
    4. Init Containers
    5. Container: command and args
    6. Container: Defining Environment
    7. ReplicaSet
    8. Deployments
    9. Working with Deployments
    10. Deployment Rollouts
    Lab Tasks
    1. Pod Lifecycle
    2. Init Containers
    3. Deployments
  7. Networking
    1. CKA Objectives Covered
    2. Network Overview
    3. Service Discovery & CoreDNS
    4. Container Network Interface (CNI)
    5. Services
    6. Ingress Objects
    Lab Tasks
    1. (DEMO) Ingress Controller
    2. Port-Forwarding
    3. Services
    4. Ingress
  8. Storage
    1. CKA Objectives Covered
    2. Storage
    3. Volume Types
    4. Static Volumes (DEMO)
    5. ConfigMaps
    6. Secrets
    Lab Tasks
    1. (DEMO) Static Volumes
    2. (DEMO) ConfigMaps & Secrets
    3. Static Volume Provisioning
    4. ConfigMaps and Secrets
  9. OpenShift
    1. Kubernetes vs. Openshift
    2. Openshift Overview
    3. DEMO: Openshift Web Console
    Lab Tasks
    1. Openshift CLI Basics
    2. Openshift GUI Basics
  10. Working with YAML and JSON Lab Tasks Lab Tasks
    1. Troubleshooting YAML Errors in k8s Objects
  11. Git for Gitops
    1. Git Fundamentals
    2. Git Branches
    3. Git Pull/Merge Requests
    4. Git Merge
    5. Disaster Recovery
    Lab Tasks
    1. Local Git
    2. Working with remotes
  1. Create, view, and edit text files
    1. Producing File Statistics
    2. Replacing Text Characters
    3. Text Sorting
    4. Duplicate Removal Utility
    5. Extracting Columns of Text
    6. Combining Files and Merging Text
    7. Comparing File Changes
  2. PCF to OpenShift Terms and Concepts