OPS-203

Kubernetes - OpenShift:
Understanding the Differences (Extended)

Detailed Course Outline

Course Length

3 days

Course Description

If you are already familiar with the basics of containerization and the usage of Kubernetes, it is time to add OpenShift to your arsenal! This comprehensive OpenShift training equips you with the skills to confidently deploy, manage, and leverage the power of the OpenShift container platform. The curriculum delves into the core concepts of OpenShift, empowering you to gain a deep understanding of the platform's architecture for running microservices reliably.

Throughout the course, you'll gain hands-on experience with essential OpenShift functionalities. Learn to install and configure OpenShift Local (the single machine version of OpenShift, ideal for a learning environment), explore the Web Console and oc CLI for efficient platform management, and deploy applications using Docker images or source code. We'll cover advanced topics like scaling applications automatically, implementing zero-downtime deployments, and utilizing OpenShift operators for streamlined automation.

Explore the principles of CI/CD (Continuous Integration/Continuous Delivery) and its seamless integration with OpenShift, as well as learn to install OpenShift in a disconnected environment. By the end of the course, you'll be empowered to establish efficient and reliable deployment pipelines, accelerating your development process.

Course Objectives

Upon completion, you will be able to confidently:

  • • Understand and articulate the key architectural and feature differences between OpenShift and vanilla Kubernetes.
  • • Deploy and manage your own applications using various methods, including Docker images and source-to-image (S2I) builds.
  • • Implement critical security measures using Security Context Constraints (SCCs) and manage cluster resources effectively with quotas.
  • • Set up and troubleshoot logging and monitoring stacks for applications and cluster health.
  • • Execute the advanced process of installing and configuring a disconnected OpenShift cluster, a crucial skill for high-security environments.

Structure

50% theory, 50% hands-on lab exercises

Target Audience

This course is recommended for people who are already familiar with Docker and Kubernetes, and want to extend their knowledge to the enterprise-oriented world of OpenShift:

  • • Developers, who want to develop and run containerized applications on OpenShift.
  • • System administrators, who operate and manage OpenShift-based infrastructure.
  • • DevOps engineers, who want to implement CI/CD-based process automation over OpenShift.
  • • Architects, who want to design OpenShift-based application architectures.
  • • IT managers, who want to understand the business benefits of OpenShift.

Prerequisites

Proficiency with the Linux CLI. A broad understanding of Linux system administration. Familiarity with Docker and Kubernetes.

System requirements for your own OpenShift Local deployment: min. 16Gb RAM, 200 Gb storage space, min. Intel i7 or AMD Ryzen 5 CPU. Sufficient lab machines are provided.

Course Modules

Module 1: Introduction to OpenShift

  • • Key features
  • • History
  • • Components

Module 2: OpenShift architecture

  • • Control plane nodes, worker nodes, components
  • • CRI-O
  • LAB TASKS: Install OpenShift Local
  • • Overview of OpenShift clients: Web Console, oc CLI

Module 3: OpenShift Workloads and Networking

  • • Build related workloads: BuildConfig, Build, BuildLog, BuildRequest
  • • Deployment related workloads: DeploymentConfig, DeploymentRequest, DeploymentLog, DeploymentConfigRollback
  • • Networking: Services, Routes, Ingresses
  • LAB TASKS: Create a microservice image and deploy it to OpenShift, expose it via a route

Module 4: Deploying applications

  • • Scaling applications automatically
  • LAB TASKS: Configure a horizontal pod autoscaler
  • • Zero-downtime deployment strategies: rolling upgrades, blue-green deployments, testing
  • LAB TASKS: Perform a rolling upgrade and blue-green deployments
  • • Running applications from source code directly
  • LAB TASKS: Deploy an application directly from git

Module 5: Operators in OpenShift

  • • Custom resource definitions
  • • Custom Controllers
  • LAB TASKS: Install an operator from the Operator Hub

Module 6: OpenShift Security

  • • Security Context Constraints (SCC)
  • • Image scanning
  • LAB TASKS: Try image scanning

Module 7: Logging, Monitoring, Troubleshooting

  • • oc CLI commands used for troubleshooting
  • LAB TASKS: Install Prometheus

Module 8: Automating the deployment process, CI/CD

  • • CI/CD fundamentals
  • LAB TASKS: Try Tekton

Module 9: Installing OpenShift in a disconnected environment

  • • Overview of the installation process
  • • UPI and IPI
  • LAB TASKS: Install your own OpenShift production cluster