Course Outline
Day 1 – Containers and Image Management
Introduction to Container Platforms
- Contrasting traditional application deployment with container-based approaches
- Differences between containers and virtual machines
- Container runtimes and engines
- The specific roles of Docker, Kubernetes, and OpenShift
- Standard container platform architectures
- Workflows for development, testing, and production
Working with Containers
- Executing and overseeing containers
- The container lifecycle
- Starting, stopping, and deleting containers
- Running commands within containers
- Environment variables
- Port mapping
- Container logs
- Resource utilization and process inspection
Building Container Images
- Image structure and layers
- Authoring Dockerfiles and Containerfiles
- Selecting appropriate base images
- Including application dependencies
- Defining entry points and commands
- Leveraging image caching
- Optimizing image size
- Creating reproducible images
Container Registries
- Public versus private registries
- Tagging and version control for images
- Pushing and pulling images
- Image authentication mechanisms
- Image retention strategies and cleanup
- Basic image security principles
Container Networking and Storage
- Fundamentals of container networking
- Bridge networking
- Exposing ports
- Inter-container communication
- Bind mounts and volumes
- Persistence of container data
- Backup considerations
Hands-on Exercises
- Execute and inspect containers
- Construct an application image
- Set up ports and environment variables
- Publish an image to a registry
- Store persistent data externally
Day 2 – Kubernetes Architecture and Workloads
Kubernetes Fundamentals
- The objective of container orchestration
- Kubernetes architectural overview
- Control plane components
- Worker nodes
- The API server
- The Scheduler
- Controllers
- Cluster state versus 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
- Rolling updates
- Rollbacks
- Reviewing 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
- Deploy a containerized application
- Create and modify Kubernetes manifests
- Scale an application
- Execute a rolling update and rollback
- Configure the application using ConfigMaps and Secrets
- Apply resource requests and limits
Day 3 – Kubernetes Networking, Storage, and Security
Kubernetes Networking
- The cluster networking model
- Pod-to-pod communication
- Service discovery
- Internal cluster DNS
- ClusterIP services
- NodePort services
- LoadBalancer services
- Ingress concepts
- Patterns for application exposure
Network Policies
- Regulating traffic between workloads
- Ingress and egress rules
- Namespace-based traffic control
- Testing network connectivity
- Troubleshooting service communication
Persistent Storage
- Ephemeral versus persistent storage
- Volumes
- PersistentVolumes
- PersistentVolumeClaims
- StorageClasses
- Dynamic provisioning
- Access modes
- Reclaim policies
- 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
- Inspecting effective permissions
Workload Security
- Security contexts
- Running containers as non-root users
- Linux capabilities
- Read-only filesystems
- Handling secrets securely
- Image provenance
- Common configuration risks
Hands-on Exercises
- Expose an application using Kubernetes services
- Configure ingress
- Restrict traffic via network policies
- Provision persistent storage
- Configure RBAC permissions
- Run a workload with a suitable security context
Day 4 – Working with OpenShift Environments
Introduction to OpenShift
- OpenShift as a Kubernetes-based application platform
- Kubernetes resources within an OpenShift context
- OpenShift cluster architecture
- Projects and namespaces
- Platform users and service accounts
- Utilizing the web console
- Using the OpenShift CLI
Managing Projects and Access
- Creating and managing projects
- Assigning user permissions
- Project-level roles
- Administrative access
- Resource quotas
- Limit ranges
- Service accounts
- Reviewing project resources
Deploying Applications
- Deploying container images
- Creating application workloads
- Managing deployments
- Scaling applications
- Updating application versions
- Rollbacks
- Managing application configuration
- Working with secrets
Application Exposure
- Services in OpenShift
- Routes
- TLS concepts
- Internal and external application access
- Hostnames and certificates
- Diagnosing route and service issues
Storage in OpenShift
- Persistent Volume Claims
- StorageClasses
- Attaching storage to workloads
- Stateful workloads
- Storage access permissions
- Troubleshooting volume mounting
Scheduling and Node Management
- Labels and selectors
- Node selectors
- Taints and tolerations
- Affinity and anti-affinity concepts
- Workload placement
- Cordoning and draining nodes
- Node maintenance considerations
Hands-on Exercises
- Access an OpenShift environment
- Create and configure a project
- Deploy and expose an application
- Configure user and service-account access
- Attach persistent storage
- Scale and update a running workload
Day 5 – Operations, Monitoring, and Troubleshooting
Platform Monitoring
- Monitoring cluster and application health
- Resource metrics
- Node health
- Workload status
- Capacity and resource utilization
- Identifying performance constraints
Logging and Events
- Container logs
- Pod logs
- Previous container logs
- Kubernetes events
- 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
- Pending pods
- Image pull failures
- Crash loops
- Misconfigured environment variables
- Failed mounts
- Insufficient resources
- Permission errors
- Service and route connectivity problems
- DNS issues
- Application startup failures
Operational Security
- Reviewing permissions
- Service account usage
- Secure handling of credentials
- Image security practices
- Network isolation
- Platform access auditing
- Applying the principle of least privilege
Maintenance and Lifecycle Management
- Routine platform checks
- Node maintenance
- Application backup considerations
- Configuration backup
- Update planning
- Change management
- Testing updates
- Rollback planning
- Disaster recovery concepts
Final Practical Workshop
Participants will complete an end-to-end operational scenario:
- Build and tag a container image.
- Publish the image to a registry.
- Deploy the application to Kubernetes or OpenShift.
- Configure application settings and credentials.
- Expose the application.
- Attach persistent storage.
- Configure access permissions.
- Add health checks.
- Scale and update the application.
- Diagnose and resolve an introduced failure.
Course Format
- Interactive lectures and technical discussions.
- Instructor demonstrations.
- Extensive hands-on exercises.
- Scenario-based administration and troubleshooting workshops.
- Practical work in 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 are expected to possess:
- Proficiency with the Linux command line.
- Foundational knowledge in system administration or DevOps practices.
- A solid grasp of general networking concepts.
- Familiarity with software deployment processes.
Prior experience with Docker, Kubernetes, or OpenShift is beneficial but not mandatory.
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.
Price per private group, online live training, starting from 7250 € + VAT*
Contact us for an exact quote and to hear our latest promotions
Testimonials (7)
Reda explanations and he simplified alot of the understanding
Eric Van Wyk
Course - Docker, Kubernetes and OpenShift 3 for Administrators
The labs were the best. Very practical and provides hands-on experience. I personally think that it is the most effective means of truly understanding the course and applying the concepts that were covered.
Hishaam Johnstone
Course - Docker, Kubernetes and OpenShift 3 for Administrators
I loved the willingness to help and explain further when uncertain
Letlotlo Miffi
Course - Docker, Kubernetes and OpenShift 3 for Administrators
Adriano studied the subject very deeply which is the style i mostly prefer ie: less about the commands more on the mechanism behind it. Discussed scenarios were well supported by the practical examples which helped a lot to understand the presented stuff.
Mariusz BANASZCZYK - Sopra Steria
Course - Docker, Kubernetes and OpenShift for Administrators
Deep knowledge of Adriano. Explanation of base concepts
Tomasz Szalankiewicz - LPP SA
Course - Docker, Kubernetes and OpenShift for Administrators
I generally liked the presenter.
Josif Kovacevic - ANZ
Course - Docker, Kubernetes and OpenShift for Administrators
Adrian clearly knows and enjoys this technology.