Kubernetes Training Course (2-4 days, from basic to advanced) 

 

Why Learn Kubernetes?

Docker is an open-source platform for building, shipping and running applications inside containers. Kubernetes goes one step further by providing the tools needed to deploy and manage containerized applications at scale in a clustered environment.

In this instructor-led, live training (onsite or remote), participants will learn how to deploy a collection of sample servers inside containers, then automate, scale, and manage their containerized servers within a Kubernetes cluster. The training goes on to more advanced topics, walking participants through the process of securing, networking and monitoring a Kubernetes cluster.

By the end of this training, participants will be able to:

Part 1 - Beginner (2 days)

  • Set up and run a Docker container.

  • Deploy containerized databases and servers.

  • Set up a Docker and Kubernetes cluster.

  • Use Kubernetes to deploy and manage different environments under the same cluster.

  • Secure, scale and monitor a Kubernetes cluster.

Part 2 - Advanced (2 days)

  • Use Kubernetes to deploy and manage different environments under the same cluster

  • Secure, scale and monitor a Kubernetes cluster

Course details

This outline below covers both fundamental and advanced topics.

The final training outline will be designed depending on your particular requirements.

The practical exercises constitute a big part of the course time, besides demonstrations and theoretical presentations. Discussions and questions can be asked throughout the course.

Note: the training can be tailored to specific needs upon prior request ahead of the proposed course date.

Audience

  • Software Developers

  • Architects

  • Deployment engineers

Prerequisites

  • Experience with Docker containers

  • Familiarity with the Linux command line

  • An understanding of networking concepts

Course Outline

Beginner (2 days):
  • Introduction

  • Overview of container orchestration with Kubernetes

  • Overview of Kubernetes architecture

  • Pods, labels/selectors, replication controllers, services, API

  • Installing a Kubernetes cluster

  • Pulling a Docker image from the internet

  • Creating Kubernetes pods, volumes and deployments

  • Grouping and organizing your cluster

  • Using Kubernetes Namespaces to manage different environments

  • Managing test, staging, and production environments within the same cluster

  • Kubernetes Namespaces best practices

  • Discovering and connecting to containers

  • Discovering and publishing services

  • Non-HTTP services (Passive FTP, SMTP, LDAP, etc.)

  • Kubernetes security

  • Authentication & authorization

  • Upgrading a Kubernetes cluster

  • Minimizing the impact

  • Advanced networking

  • Docker networking vs Kubernetes networking

  • Interfacing between network providers and Kubernetes networking

  • Best practices for separating services in a cluster

  • Comparison of different CNI providers (performance, features, etc.)

  • Monitoring Kubernetes

  • Cluster logging with Elasticsearch and fluentd

  • Container level monitoring (cAdvisor UI, Influxdb, Prometheus)

  • Best Practices for running containerized servers and data stores

  • Scaling your Kubernetes cluster

  • Infrastructure for Kubernetes

  • Provisioning, partitioning, networking

  • Building a high-availability cluster

  • Load balancing and service discovery

  • Deploying a scalable application

  • Horizontal pod autoscaling

  • Database clustering in Kubernetes

  • Updating your application

  • Releases in Kubernetes

  • Troubleshooting

  • Diagnosing and fixing common Kubernetes issues

  • Summary and Conclusion

Advanced (2 days):

  • Introduction

  • Setting up the Kubernetes Cluster

  • Infrastructure for Kubernetes

  • Provisioning, partitioning, networking

  • Considerations for scaling a Kubernetes Cluster

  • Building in High-Availability

  • Load Balancing and Service Discovery

  • Deploying a Scalable Application

  • Horizontal Pod Autoscaling

  • Database clustering in Kubernetes

  • Securing the Application

  • Authentication

  • Authorization

  • Updating the Application

  • Package Management

  • Releases in Kubernetes

  • Maintainance

  • Logging with Fluentd (optional)

  • Monitoring with Elastic Stack (ELK) (optional)

  • Scheduling with Cronjob

  • Troubleshooting

  • Diagnosing and fixing common Kubernetes issues

  • Summary and Conclusion