- Experience with Docker containers
- Familiarity with the Linux command line
- An understanding of networking concepts
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 training, 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
Audience
- Software Developers
- Architects
- Deployment engineers
Format of the course
- Part lecture, part discussion, exercises and heavy hands-on practice
Notes
- To request a customized training for this course, please contact us to arrange.
[Day 01]
Introduction
How Docker runs and manages containers
- Images, containers, volumes, networks
Installing Docker
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
- Cassandra, ElasticSearch and Couchbase
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 data stores
- Cassandra, Elastic Search and Couchbase
[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