KBS-103

Kubernetes Administration

Detailed Course Outline

Course Length

3 days

Course Overview

Kubernetes is the de-facto system for container orchestration, e.g. automating the deployment, scaling and management of microservices-based, containerized applications.

This training introduces participants to the basic concepts and architecture of Kubernetes, its initial install, setup and access control, Kubernetes Pods and Workloads, Scheduling and Node management, Accessing the applications, Persistent storage in Kubernetes as well as its Logging, Monitoring and Troubleshooting facilities. This course prepares for the daily administration of Kubernetes based systems.

Learning Objectives

Upon completion of this course, participants will be able to:

  • • Understand the basic concepts and architecture of Kubernetes
  • • Install and set up Kubernetes clusters
  • • Configure access control and security for Kubernetes
  • • Deploy and manage Kubernetes Pods and Workloads
  • • Implement scheduling and node management strategies
  • • Configure application access through Services and Ingress
  • • Manage persistent storage in Kubernetes environments
  • • Work with special workloads like StatefulSets, Jobs, and DaemonSets
  • • Implement logging, monitoring and troubleshooting practices
  • • Upgrade and maintain Kubernetes clusters

Prerequisites

Proficiency with the Linux CLI. A broad understanding of Linux system administration. Basic knowledge of Linux containers, e.g. Docker.

Course Modules

Module 1: Kubernetes introduction

  • Cloud computing in general
  • Cloud types
  • Cloud native computing
  • Container orchestration
  • Kubernetes
  • Kubernetes concepts
  • Kubernetes objects categories
  • Custom resource definitions
  • Kubernetes architecture
  • Kubernetes master
  • Kubernetes node
  • Kubernetes Lab: Health check

Module 2: Accessing Kubernetes

  • Accessing the Kubernetes cluster
  • Controlling access to the API
  • Authorization
  • Role Based Access Control
  • Roles and ClusterRoles
  • Role bindings
  • Admission control
  • Kubernetes Lab: Accessing API

Module 3: Kubernetes Workloads

  • The pod
  • Our first Pod
  • Operations on pods
  • Pod Status and Lifecycle
  • Pod probe examples
  • RestartPolicy examples
  • InitContainers Pod resource management
  • Pod security context
  • Patterns for Composite Containers
  • ReplicationController and ReplicaSet
  • Working with ReplicationController, ReplicaSet
  • Deployments
  • Working with Deployments
  • Kubernetes Lab: Workloads

Module 4: Scheduling and node management

  • The Kubernetes Scheduler
  • Pod priorities and preemption
  • Assigning Pods to Nodes
  • Assigning Pods to Nodes – Node affinities
  • Assigning Pods to Nodes – Pod affinities
  • Taints and tolerations
  • Managing nodes
  • Kubernetes Lab: Scheduling

Module 5: Accessing the applications

  • Services
  • Service types
  • Working with Services
  • Ingress
  • Ingress definition
  • Working with Ingress
  • Network Policies
  • Network Policy example
  • Kubernetes Lab: Accessing Applications

Module 6: Persistent storage in Kubernetes

  • Volumes
  • Volume example
  • Volume types
  • Persistent Volumes
  • Persistent Volume example
  • Dynamic PVC provisioning
  • Secrets
  • Using Secrets as environmental variables
  • Using Secrets as volumes
  • ConfigMaps
  • Kubernetes Lab: Persistent Storage

Module 7: Kubernetes Special Workloads

  • StatefulSets
  • StatefulSets - Limitations
  • StatefulSet example
  • StatefulSet example with PVC
  • Jobs, CronJobs
  • Jobs example
  • CronJobs example
  • DaemonSets
  • Kubernetes Lab: Special workloads

Module 8: Logging, monitoring and troubleshooting

  • Logging architecture
  • Monitoring
  • Troubleshooting
  • Kubernetes Lab: Logging and Monitoring

Module 9: Installing and upgrading Kubernetes

  • Picking the right solution
  • One node Kubernetes install
  • Kubernetes universal installer
  • Install using kubeadm on CentOS
  • Upgrading Kubernetes
  • Kubernetes Networking
  • Kubernetes Lab: Upgrading Kubernetes

Appendix: Application containers

  • Application containers
  • Containers on Linux
  • Container runtime