Get in Touch

Course Outline

Day 1 – Containers and Image Management

Introduction to Container Platforms

  • Comparison of traditional application deployment with container-based approaches
  • Containers versus virtual machines
  • Container runtimes and container engines
  • The respective roles of Docker, Kubernetes, and OpenShift
  • Common container platform architectures
  • Workflows for development, testing, and production

Working with Containers

  • Running and managing containers
  • Container lifecycle management
  • Starting, stopping, and removing containers
  • Executing commands within containers
  • Environment variables
  • Port mapping
  • Accessing container logs
  • Inspecting resource usage and processes

Building Container Images

  • Image structure and layers
  • Creating Dockerfiles and Containerfiles
  • Selecting appropriate base images
  • Incorporating application dependencies
  • Configuring entry points and commands
  • Leveraging image caching
  • Strategies for reducing image size
  • Ensuring reproducibility of images

Container Registries

  • Distinguishing between public and private registries
  • Tagging and versioning images
  • Pushing and pulling images
  • Image authentication processes
  • Managing image retention and cleanup
  • Essential security considerations for images

Container Networking and Storage

  • Fundamentals of container networking
  • Bridge networking configurations
  • Port exposure techniques
  • Facilitating container-to-container communication
  • Utilising bind mounts and volumes
  • Maintaining persistent container data
  • Considerations for backup procedures

Hands-on Exercises

  • Running and inspecting containers
  • Constructing an application image
  • Configuring ports and environment variables
  • Publishing an image to a registry
  • Storing persistent data external to the container

Day 2 – Kubernetes Architecture and Workloads

Kubernetes Fundamentals

  • The objectives of container orchestration
  • Understanding Kubernetes architecture
  • Components of the control plane
  • Worker nodes
  • The API server
  • The scheduler
  • Controllers
  • Distinction between cluster state and desired state
  • Interacting with the cluster via kubectl

Kubernetes Resources

  • Pods
  • ReplicaSets
  • Deployments
  • Namespaces
  • Labels and annotations
  • Selectors
  • Declarative resource definitions
  • YAML manifests

Deploying Applications

  • Creating and managing Deployments
  • Scaling workloads
  • Updating container images
  • Implementing rolling updates
  • Performing rollbacks
  • Maintaining deployment history
  • Restarting workloads
  • Managing application replicas

Application Configuration

  • ConfigMaps
  • Secrets
  • Environment variables
  • Configuration files
  • Decoupling application code from configuration
  • Managing environment-specific settings

Resource Management

  • CPU and memory requests
  • CPU and memory limits
  • Resource quotas
  • Limit ranges
  • Scheduling implications
  • Diagnosing resource-related failures

Hands-on Exercises

  • Deploying a containerized application
  • Creating and updating Kubernetes manifests
  • Scaling an application
  • Executing a rolling update and rollback
  • Configuring the application using ConfigMaps and Secrets
  • Applying resource requests and limits

Day 3 – Kubernetes Networking, Storage and Security

Kubernetes Networking

  • The cluster networking model
  • Pod-to-pod communication mechanisms
  • Service discovery processes
  • DNS integration within the cluster
  • ClusterIP services
  • NodePort services
  • LoadBalancer services
  • Ingress concepts
  • Patterns for application exposure

Network Policies

  • Controlling traffic flow between workloads
  • Defining ingress and egress rules
  • Namespace-based traffic control
  • Testing network connectivity
  • Troubleshooting service communication issues

Persistent Storage

  • Distinguishing between ephemeral and persistent storage
  • Volumes
  • PersistentVolumes
  • PersistentVolumeClaims
  • StorageClasses
  • Dynamic provisioning
  • Access modes
  • Reclaim policies
  • Utilizing storage for stateful applications

Kubernetes Access Control

  • Concepts of authentication and authorization
  • Role-Based Access Control (RBAC)
  • Roles and ClusterRoles
  • RoleBindings and ClusterRoleBindings
  • Service accounts
  • Principle of least-privilege access
  • Inspecting effective permissions

Workload Security

  • Security contexts
  • Executing containers as non-root users
  • Linux capabilities management
  • Implementing read-only filesystems
  • Managing secrets securely
  • Verifying image provenance
  • Identifying common configuration risks

Hands-on Exercises

  • Exposing an application via Kubernetes services
  • Configuring ingress rules
  • Restricting traffic using network policies
  • Provisioning persistent storage
  • Configuring RBAC permissions
  • Running a workload with an appropriate security context

Day 4 – Working with OpenShift Environments

Introduction to OpenShift

  • OpenShift as a Kubernetes-based application platform
  • Kubernetes resources within an OpenShift environment
  • OpenShift cluster architecture
  • Distinguishing between projects and namespaces
  • Platform users and service accounts
  • Navigating the web console
  • Utilizing the OpenShift CLI

Managing Projects and Access

  • Creating and managing projects
  • Assigning user permissions
  • Project-level roles
  • Granting administrative access
  • Applying resource quotas
  • Setting limit ranges
  • Managing service accounts
  • Reviewing project resources

Deploying Applications

  • Deploying container images
  • Creating application workloads
  • Managing deployments
  • Scaling applications
  • Updating application versions
  • Performing rollbacks
  • Managing application configuration
  • Working with secrets

Application Exposure

  • Services in OpenShift
  • Routes
  • TLS concepts
  • Internal and external application access methods
  • Managing hostnames and certificates
  • Troubleshooting route and service issues

Storage in OpenShift

  • Persistent Volume Claims
  • StorageClasses
  • Attaching storage to workloads
  • Managing stateful workloads
  • Handling storage access permissions
  • Troubleshooting volume mounting issues

Scheduling and Node Management

  • Using labels and selectors
  • Node selectors
  • Taints and tolerations
  • Affinity and anti-affinity concepts
  • Workload placement strategies
  • Cordoning and draining nodes
  • Considerations for node maintenance

Hands-on Exercises

  • Accessing an OpenShift environment
  • Creating and configuring a project
  • Deploying and exposing an application
  • Configuring user and service-account access
  • Attaching persistent storage
  • Scaling and updating a running workload

Day 5 – Operations, Monitoring and Troubleshooting

Platform Monitoring

  • Monitoring cluster and application health
  • Analyzing resource metrics
  • Assessing node health
  • Checking workload status
  • Evaluating capacity and resource utilization
  • Identifying performance constraints

Logging and Events

  • Accessing container logs
  • Viewing pod logs
  • Retrieving previous container logs
  • Reviewing Kubernetes events
  • Analyzing application and platform messages
  • Filtering and interpreting operational data

Health Checks

  • Startup probes
  • Readiness probes
  • Liveness probes
  • Designing effective health endpoints
  • Diagnosing probe failures
  • Preventing unnecessary application restarts

Troubleshooting Workloads

  • Investigating pending pods
  • Addressing image pull failures
  • Resolving crash loops
  • Correcting misconfigured environment variables
  • Fixing failed mounts
  • Addressing insufficient resources
  • Resolving permission errors
  • Troubleshooting service and route connectivity problems
  • Diagnosing DNS issues
  • Investigating application startup failures

Operational Security

  • Reviewing permissions
  • Evaluating service account usage
  • Secure handling of credentials
  • Implementing image security practices
  • Ensuring network isolation
  • Auditing platform access
  • Applying the principle of least privilege

Maintenance and Lifecycle Management

  • Conducting routine platform checks
  • Performing node maintenance
  • Considering application backup strategies
  • Backing up configuration files
  • Planning updates
  • Managing changes
  • Testing updates rigorously
  • Developing rollback plans
  • Understanding disaster recovery concepts

Final Practical Workshop

Participants will complete an end-to-end operational scenario:

  • Building and tagging a container image.
  • Publishing the image to a registry.
  • Deploying the application to Kubernetes or OpenShift.
  • Configuring application settings and credentials.
  • Exposing the application externally.
  • Attaching persistent storage.
  • Configuring access permissions.
  • Adding health checks.
  • Scaling and updating the application.
  • Diagnosing and resolving an introduced failure.

Course Format

  • Interactive lectures and technical discussions.
  • Instructor demonstrations.
  • Extensive hands-on exercises.
  • Scenario-based administration and troubleshooting workshops.
  • Practical work within container, Kubernetes, and OpenShift environments.

Course Customization Options

  • The course can be adapted to the participant's existing infrastructure, cloud provider, and container tooling.
  • The balance between Docker, Kubernetes, and OpenShift topics can be adjusted according to the team's experience.
  • Practical exercises can be tailored to the organization's applications, deployment processes, and operational requirements.

Trademark Notice

OpenShift is a trademark of Red Hat, Inc. This independently developed training is not affiliated with, endorsed by, or authorized by Red Hat.

Requirements

Participants should possess:

  • Experience using the Linux command line.
  • Foundational knowledge of system administration or DevOps principles.
  • A general understanding of networking concepts.
  • Familiarity with software deployment processes.

Previous experience with Docker, Kubernetes, or OpenShift is beneficial but not mandatory.

 35 Hours

Custom Corporate Training

Training solutions designed exclusively for businesses.

  • Customized Content: We adapt the syllabus and practical exercises to the real goals and needs of your project.
  • Flexible Schedule: Dates and times adapted to your team's agenda.
  • Format: Online (live), In-company (at your offices), or Hybrid.
Investment

Price per private group, online live training, starting from 6500 € + VAT*

Contact us for an exact quote and to hear our latest promotions

Testimonials (7)

Provisional Upcoming Courses (Contact Us For More Information)

Related Categories