Kubernetes from Basic to Advanced Training Course

Duration

14 hours (usually 2 days including breaks)

Requirements

  • Experience with Docker containers
  • Familiarity with the Linux command line
  • An understanding of networking concepts

Audience

  • Software Developers
  • Architects
  • Deployment engineers

Overview

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:

  • 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.

Format of the course

  • Part lecture, part discussion, exercises and heavy hands-on practice.

Notes

  • Different Docker images can be used as demos in this training (e.g., Nginx, MongoDB, Tomcat, etc.).
  • To request specific images or any other customization for this training, please contact us to arrange.

Course Outline

[Day 01]

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


[Day 02]

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

Leave a Reply

Your email address will not be published. Required fields are marked *