Introduction to Containers, Kubernetes and OpenShift

Brought by: edX

Overview

Please Note: Learners who successfully complete this IBM course can earn a skill badge — a detailed, verifiable and digital credential that profiles the knowledge and skills you’ve acquired in this course. Enroll to learn more, complete the course and claim your badge!

In this course designed for beginners, You will learn how to build cloud native applications using current containerization tools and technologies such as containers, Docker, container registries, Kubernetes, OpenShift, and Istio. And also how to deploy and scale your applications in any public, private, or hybrid cloud.

By the end of the course, you’ll be able to build a container image, then deploy and scale your container on the cloud using OpenShift.

If you understand basic cloud and programming concepts, and your career path includes roles such as cloud developer, cloud architect, cloud system engineer, DevOps engineer, and cloud networking specialist, this course is for you!

Syllabus

Module 1

  • Introduction to containers
  • Introduction to Docker
  • Building container images
  • Using container registries
  • Running containers

Module 2

  • Understanding container orchestration
  • Understanding Kubernetes architecture
  • Introduction to Kubernetes objects
  • Using basic Kubernetes objects
  • Using the kubectl command
  • Leveraging Kubernetes

Module 3

  • Using ReplicaSets
  • Using autoscaling
  • Understanding rolling updates
  • Understanding ConfigMaps and secrets
  • Using service bindings

Module 4 - The Kubernetes ecosystem

  • The Kubernetes Ecosystem
  • Introduction to Red Hat OpenShift
  • Red Hat OpenShift and Kubernetes
  • Builds
  • Operators
  • Istio

*Module 5 * - Final Project

Final exam

Taught by

Alex Parker, Upkar Lidder and Heather Nelson

Introduction to Containers, Kubernetes and OpenShift
Go to course

Introduction to Containers, Kubernetes and OpenShift

Brought by: edX

  • edX
  • Free
  • English
  • Certificate Available
  • Certain days
  • beginner
  • English
8.1.2PHP Version1.08sRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (696ms)
    • Application (378ms)
    • 1 x Booting (64.65%)
      696.12ms
      1 x Application (35.1%)
      377.95ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed10.27ms
      • select * from `courses` where `slug_en` = 'introduction-to-containers,-kubernetes-and-openshift' limit 1
        8.25ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. introduction-to-containers,-kubernetes-and-openshift
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-06-16 10:57:20' where `id` = 989
        850μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-06-16 10:57:20
        • 1. 989
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (64)
        270μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        200μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (46) and `institutions`.`deleted_at` is null
        190μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (1) and `providers`.`deleted_at` is null
        180μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 983 limit 1
        330μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 983
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        HpMUrqVzkyPrSVEdF9sTid7LuDubJyjTci0fI6Mh
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/introduction-to-containers,-kubernetes-an...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/introduction-to-containers,-kubernetes-and-openshift
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "216.73.216.148" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.148" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "9509c9214b8de82a-ORD" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "216.73.216.148" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.148" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "9509c9214b8de82a-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "25374" "REMOTE_ADDR" => "172.71.254.141" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/en/courses/introduction-to-containers,-kubernetes-and-openshift" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1750071439.8435 "REQUEST_TIME" => 1750071439 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Mon, 16 Jun 2025 10:57:20 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IkZzdXZlaEUwcGp1M0wrSDNnd3R3YkE9PSIsInZhbHVlIjoiUXk1dU05ZzllTzkvdDhWY2lSbExyc21tVFI2RkhEeWI5VFZvd1pFZnpnenN1YjdUT0FPZ0JqSlV3d3JVN2dsQ0paZTNqRnNrUmVMT3RVeXpDZFZ0UnJuZk5wQXVJUGRtN1JLcXJiak9yTDFnZUs4Skd2Sm94MGxaei95RjhIYlUiLCJtYWMiOiIwNzExM2M5OWJkYWNkODk3YTFiNTVlNGQxMzQ5MzM1N2U0MmNjMjRmYTllYzZmY2MxZWMwMzU3NjU3NTM4ZDRlIiwidGFnIjoiIn0%3D; expires=Mon, 16 Jun 2025 12:57:20 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IkZzdXZlaEUwcGp1M0wrSDNnd3R3YkE9PSIsInZhbHVlIjoiUXk1dU05ZzllTzkvdDhWY2lSbExyc21tVFI2RkhEeWI5VFZvd1pFZnpnenN1YjdUT0FPZ0JqSlV3d3JVN2dsQ0paZTNqR" 1 => "laravel_session=eyJpdiI6ImxsYkF2am9jUUNZdjFRZVJaOXArd1E9PSIsInZhbHVlIjoibkVjOUx3enp1emMrL0xsR0FFM3NFT3NRR1FhNTZLbmxMNUdXcmI5MzVSYlhtNHZxUWZqQ0ozc3VkNTc0dnFNSzRhMFNNb3U0WXJyUXJjLy9rTmRPN0dGOXRPaGxGWWJWSDQ5Q1hIRUlsV0YwL0EwME9EMHZnVjFhSVFKSWp3WWEiLCJtYWMiOiI5NzRkNjA0MTY0N2Y3YWU1ZDZjYWJmMGFlMjg5Y2UxMjFiNjQ0YjQ1Y2Q2ODAxOTY5NzVkMWEwYzVkM2U4MWU5IiwidGFnIjoiIn0%3D; expires=Mon, 16 Jun 2025 12:57:20 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6ImxsYkF2am9jUUNZdjFRZVJaOXArd1E9PSIsInZhbHVlIjoibkVjOUx3enp1emMrL0xsR0FFM3NFT3NRR1FhNTZLbmxMNUdXcmI5MzVSYlhtNHZxUWZqQ0ozc3VkNTc0dnFNSzRh" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IkZzdXZlaEUwcGp1M0wrSDNnd3R3YkE9PSIsInZhbHVlIjoiUXk1dU05ZzllTzkvdDhWY2lSbExyc21tVFI2RkhEeWI5VFZvd1pFZnpnenN1YjdUT0FPZ0JqSlV3d3JVN2dsQ0paZTNqRnNrUmVMT3RVeXpDZFZ0UnJuZk5wQXVJUGRtN1JLcXJiak9yTDFnZUs4Skd2Sm94MGxaei95RjhIYlUiLCJtYWMiOiIwNzExM2M5OWJkYWNkODk3YTFiNTVlNGQxMzQ5MzM1N2U0MmNjMjRmYTllYzZmY2MxZWMwMzU3NjU3NTM4ZDRlIiwidGFnIjoiIn0%3D; expires=Mon, 16-Jun-2025 12:57:20 GMT; path=/XSRF-TOKEN=eyJpdiI6IkZzdXZlaEUwcGp1M0wrSDNnd3R3YkE9PSIsInZhbHVlIjoiUXk1dU05ZzllTzkvdDhWY2lSbExyc21tVFI2RkhEeWI5VFZvd1pFZnpnenN1YjdUT0FPZ0JqSlV3d3JVN2dsQ0paZTNqR" 1 => "laravel_session=eyJpdiI6ImxsYkF2am9jUUNZdjFRZVJaOXArd1E9PSIsInZhbHVlIjoibkVjOUx3enp1emMrL0xsR0FFM3NFT3NRR1FhNTZLbmxMNUdXcmI5MzVSYlhtNHZxUWZqQ0ozc3VkNTc0dnFNSzRhMFNNb3U0WXJyUXJjLy9rTmRPN0dGOXRPaGxGWWJWSDQ5Q1hIRUlsV0YwL0EwME9EMHZnVjFhSVFKSWp3WWEiLCJtYWMiOiI5NzRkNjA0MTY0N2Y3YWU1ZDZjYWJmMGFlMjg5Y2UxMjFiNjQ0YjQ1Y2Q2ODAxOTY5NzVkMWEwYzVkM2U4MWU5IiwidGFnIjoiIn0%3D; expires=Mon, 16-Jun-2025 12:57:20 GMT; path=/; httponlylaravel_session=eyJpdiI6ImxsYkF2am9jUUNZdjFRZVJaOXArd1E9PSIsInZhbHVlIjoibkVjOUx3enp1emMrL0xsR0FFM3NFT3NRR1FhNTZLbmxMNUdXcmI5MzVSYlhtNHZxUWZqQ0ozc3VkNTc0dnFNSzRh" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "HpMUrqVzkyPrSVEdF9sTid7LuDubJyjTci0fI6Mh" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/introduction-to-containers,-kubernetes-and-openshift" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]