Microservices using Docker & Kubernetes
- Course Covered -
- Docker for Enterprise Operations - 2 Days
Docker, Container and Docker SWARM Fundamentals - 3 Days
Docker, Container and Kubernetes Foundations - 3 Days
Kubernetes Administration - 2 Days
- Technology - Java, JavaScript, Dotnet, mySql, IIS
- Platform - Windows 2016 (30%) & RHEL 7 (70%)
- Number of Days - 5 Day
- Cliet Name - Cognizant Banaglore
- Date and Time - 09:30 AM to 6:00 PM
- Mode - Classroom
- Lab Setup - Docker | Kubernetes
- Trainer - Rajesh Kumar
Docker for Enterprise Operations
Prerequisites of the training
- Linux Essential
- Docker Essential
Day - 1 Agenda Outlined
| Time |
Topic |
Discussion |
Demo |
Lab |
| 09:30 AM - 11:15 AM |
- Welcome and Intro
- Installing UCP
- UCP Architecture
- Introduction to Docker Datacenter
- Docker Engine Swarm mode
|
YES |
NO |
NO |
| 11:15 AM - 11:30 AM |
BREAK |
|
|
|
| 11:30 AM - 01:00 PM |
- Deploying services in UCP
- UCP Networking and load balancing
- Deploying applications across multiple nodes
- Backwards compatibility with classic Swarm
|
YES |
YES |
YES |
| 01:00 PM - 02:00 PM |
BREAK |
|
|
|
| 02:00 PM - 03:30 PM |
- UCP User Management
- UCP role based access control
- Basic troubleshooting
|
YES |
YES |
YES |
| 03:30 PM - 03:45 PM |
BREAK |
|
|
|
| 03:45 PM - 06:00 PM |
- Installing Docker Trusted Registry
- DTR Overview
- Creating public and private DTR repositories
|
YES |
YES |
YES |
Day - 2 Agenda Outlined
| Time |
Topic |
Discussion |
Demo |
Lab |
| 09:30 AM - 11:15 AM |
- DTR access control
- Content Trust and Imaging Signing with Notary
- Designing a DDC Deployment
|
YES |
YES |
YES |
| 11:15 AM - 11:30 AM |
BREAK |
|
|
|
| 11:30 AM - 01:00 PM |
- Closing notes, further information and discussion
- Deploying Docker Datacenter for Evaluation and Production
- Managing Container Services with Docker Universal Control Plane
|
YES |
YES |
YES |
| 01:00 PM - 02:00 PM |
BREAK |
|
|
|
| 02:00 PM - 03:30 PM |
- Docker Networking Drivers - Use Cases and Definitions
- Continuous Integration with Docker Compose
- Deploy Docker Swarm cluster on Azure
- Filtering And Scheduling(Introduction ,Scheduling Overview ,Scheduling with RAM Reservations ,Affinity Filters,Standard Constraints ,Custom Constraints)
- Create Overlay Network
|
YES |
YES |
YES |
| 03:30 PM - 03:45 PM |
BREAK |
|
|
|
| 03:45 PM - 06:00 PM |
- Load Balance and Service Discover in Swarm Mode
- Apply Rolling Updates Across Swarm Cluster
- Add Healthcheck for Containers
- Keeping Secrets with Docker Swarm
- Enable Maintenance Mode for a Swarm Node
- Graphing Docker Metrics with Prometheus
- Backup recovery and HA
- Docker APIs
|
YES |
YES |
YES |
Docker, Container and Docker SWARM Fundamentals
Prerequisites of the training
(3 Days)
Agenda of the day 1
Introduction to Virtualization (Discussion)
- What is virtualization
- Para Virtualization
- Full Vurtualization
Architecture (Discussion)
- Containers (Why containers (non-technical elevator pitch),Why containers (technical elevator pitch),How Docker helps us to build, ship, and run,The history of containers)
- Docker architecture
- Introduction to docker
- Devs vs Ops, before Docker
- Devs vs Ops, after Docker
Containerization Basics and docker basics (Discussion, Demo & Lab)
- The Docker Story
- Learning the Basics of Docker
- Docker Deep Dive - A Quick Update
- The Docker Hub
- Docker Installation(on linux and windows )
- Creating our First Image
- Working with Multiple Images
- Packaging a Customized Container
- Running Container Commands with Docker
- Introduction to Images
- Creating Images,understanding images (Differences between containers and images)
- Managing Images
- Docker Continous Integration
- Volumes
- Containers Virtualization
- Differences between virtualization and containers
Agenda of the day 2
The Dockerfile, Builds and Network Configuration (Discussion, Demo & Lab)
- Dockerfile Directives: USER and RUN
- Dockerfile Directives: RUN Order of Execution
- Dockerfile Directives: ENV
- Dockerfile Directives: CMD vs. RUN
- Dockerfile Directives: ENTRYPOINT
- Dockerfile Directives: EXPOSE
- Container Volume Management
- Docker Network: List and Inspect
- Docker Network: Create and Remove
- Docker Network: Assign to Containers
- Using Docker into a Continuous Integration and Deployment process
Docker Commands and Structures (Discussion, Demo & Lab)
- Inspect Container Processes
- Previous Container Management
- Controlling Port Exposure on Containers
- Naming Our Containers
- Docker Events
- Managing and Removing Base Images
- Saving and Loading Docker Images
- Image History
- Taking Control of Our Tags
- Pushing to Docker Hub
Orchestration Basics (Discussion, Demo & Lab)
- Docker Networking Basics
- Compose
- .Scaling out with Swarm Mode(Introduction,Architecture and Terminology,Filtering and scheduling,Filtering In Depth,Scheduling in depth)
- Swarm Operations
Building a Swarm Cluster in the real world (Discussion, Demo & Lab)
- Introduction
- Lets Build a High Availability (HA) Discovery Service
- Lets Build a High Availability (HA) Swarm Managers
- Lets Add Nodes to the Cluster
- Lets validate the cluster Configuration
- Managing Secrets
Agenda of the day 3
Lab exercise (Discussion, Demo & Lab)
- Exercise: Exercise: Installation and Image Setup
- Exercise: Exercise: Creating Images from Containers
- Exercise: Exercise: Exposing Container Ports to the Host
Working with docker client (Discussion, Demo & Lab)
- Finding the version of docker
- Creating a container
- Running a container
- getting a list of all containers
- Inspecting a container
- Attaching and detaching a container process
- Sending SIGKILL and SIGTERM signals to the detached process
- Restarting a container
- Using container in interactive mode
- Commitingfilesystem changes
- Quit a container
- Connecting to a remote docker server
Docker Hub (Discussion, Demo & Lab)
- What is Docker Hub
- Pushing a container into docker hub
- Pulling a container into docker hub
- Searching For Container
Getting Practical with Docker by using WordPress (Discussion, Demo & Lab)
- Introduction to Docker for WordPress Developers
- How to Manually Build Docker Containers for WordPress
- How to Use the Official Docker WordPress Image
- Deploying WordPress with Docker
Docker, Container and Kubernetes Foundations
Prerequisites of the training
Day - 1 Agenda Outlined
Introduction to Virtualization (Discussion)
- What is virtualization
- Para Virtualization
- Full Vurtualization
Architecture (Discussion)
- Containers (Why containers (non-technical elevator pitch),Why containers (technical elevator pitch),How Docker helps us to build, ship, and run,The history of containers)
- Docker architecture
- Introduction to docker
- Devs vs Ops, before Docker
- Devs vs Ops, after Docker
Containerization Basics and docker basics (Discussion, Demo & Lab)
- The Docker Story
- Learning the Basics of Docker
- Docker Deep Dive - A Quick Update
- The Docker Hub
- Docker Installation(on linux and windows )
- Creating our First Image
- Working with Multiple Images
- Packaging a Customized Container
- Running Container Commands with Docker
- Introduction to Images
- Creating Images,understanding images (Differences between containers and images)
- Managing Images
- Docker Continous Integration
- Volumes
- Containers Virtualization
- Differences between virtualization and containers
Day - 2 Agenda Outlined
The Dockerfile, Builds and Network Configuration (Discussion, Demo & Lab)
- Dockerfile Directives: USER and RUN
- Dockerfile Directives: RUN Order of Execution
- Dockerfile Directives: ENV
- Dockerfile Directives: CMD vs. RUN
- Dockerfile Directives: ENTRYPOINT
- Dockerfile Directives: EXPOSE
- Container Volume Management
- Docker Network: List and Inspect
- Docker Network: Create and Remove
- Docker Network: Assign to Containers
- Using Docker into a Continuous Integration and Deployment process
Docker Commands and Structures (Discussion, Demo & Lab)
- Inspect Container Processes
- Previous Container Management
- Controlling Port Exposure on Containers
- Naming Our Containers
- Docker Events
- Managing and Removing Base Images
- Saving and Loading Docker Images
- Image History
- Taking Control of Our Tags
- Pushing to Docker Hub
Day - 3 Agenda Outlined
Kubernetes fundamentals (Discussion, Demo & Lab)
- Container Orchestration
- Kubernetes Architecture – Overview(Kubernetes Architecture,Networking,Other Cluster Systems)
- Why does Kubernetes exist?
- History of clustered workloads & schedulers
- Services(Overview,AccessingServices,DNS)
- APIs and Access(API Access,Annotations,Working with A Simple Pod,kubectl and API,Swagger and OpenAPI)
- API Objects(API Objects,The v1 Group,APIResources,RBAC APIs)
- Understanding Kubernetes Objects(Understanding Kubernetes Objects,Object Spec and Status,Describing a Kubernetes Object Required Fields)
- What is a Pod?
- Pod Lifecycle(Pod phase,Podconditions,Containerprobes,When should you use liveness or readiness probes?,Pod and Container status,Restartpolicy,Pod lifetime
- Examples,Advanced liveness probe example,Examplestates,What’s next
- pod phase)
- Labels and Selectors(Motivation,Syntax and character set,Labelselectors,Equality-based requirement,Set-based requirement,API,LIST and WATCH filtering,Set references in API objects,Service and ReplicationController,Resources that support set-based requirements,Selecting sets of nodes)
- Kubernetes CLI (kubectl)(Overview of kubectl,kubectl,kubectlCommands,kubectl for Docker Users,kubectl Usage Conventions)
- Kubernetes components and Architecture - Overview
- Kubernetes basic administration
- Web UI(Deploying the Dashboard UI,Accessing the Dashboard UI,Command line proxy,Masterserver,Welcomeview,Deploying containerized applications,Specifying application details,Uploading a YAML or JSON file,UsingDashboard,Navigation
- Admin,Workloads,Services and discovery,StorageConfig
- Logs viewer)
Kubernetes Administration
Prerequisites of the training
- Linux Essential
- Docker Essential
- Kubernetes Essentials
Day - 1 Agenda Outlined
- Installation and Configuration (Discussion, Demo & Lab)
- Getting Started With Kubernetes
- Minikube
- kubeadm
- More Installation Tools
- APIs and Access (Discussion, Demo & Lab)
- API Access
- Annotations
- Working with A Simple Pod
- kubectl and API
- Swagger and OpenAPI
- API Objects (Discussion, Demo & Lab)
- API Objects
- The v1 Group
- API Resources
- RBAC APIs
- Managing State With Deployments (Discussion, Demo & Lab)
- Deployment Overview
- Managing Deployment States
- Deployments and Replica Sets
- DaemonSets
- Labels
- Volumes and Data (Discussion, Demo & Lab)
- Volumes Overview
- Volumes
- Persistent Volumes
- Passing Data To Pods
- ConfigMaps
- Ingress (Discussion, Demo & Lab)
- Overview
- Ingress Controller
- Ingress Rules
- Labs
- Scheduling (Discussion, Demo & Lab)
- Overview
- Scheduler Settings
- Policies
- Affinity Rules
- Taints and Tolerations
- Labs
- Logging and Troubleshooting (Discussion, Demo & Lab)
- Overview
- Troubleshooting Flow
- Monitoring
- Logging
- Troubleshooting Resources
- Labs
- Custom Resource Definition (Discussion, Demo & Lab)
- Overview
- Custom Resource Definitionsa
- Admission Controller
- Pod Policies
- Network Policies
- Attribute Based Access Control
- Policies
- Service Accounts
- Secrets
- Container Security
- Cluster Administration (Discussion, Demo & Lab)
- Planning a cluster
- Managing a cluster
- Securing a cluster
- Securing the kubelet
- Optional Cluster Services
- ELK
- CAdvisor/sysdig/prometheus/influxdb
- Networking and Kubernetes (Discussion, Demo & Lab)
- Docker Networking
- Kubernetes Networking
- Pod to Pod
- Exposing Services
- IP Per Pod
- Inter Pod Communication
- Intra Pod Communication
- Continuous Integration with Kubernetes (Discussion, Demo & Lab)
- Canary Release
- Blue Green Deployment
- A/B Testing
- Rolling Update
- Jenkins Plugin
- Roadmap/Beta (Discussion, Demo & Lab)
- Ingress
- Deployments
- Autoscaling
- Jobs
- DaemonSets
- Network Plugins
- DNS
Day - 2 Agenda Outlined
- Backups (Discussion, Demo & Lab)
- Before you begin
- Snapshot etcd data
- Restore etcd data
- Migrating an etcd cluster
- Known Limitations
- Loss of PKI warning
- Restoring from snapshot on a scaled cluster
- Monitoring (Discussion, Demo & Lab)
- Before you begin
- Connecting Datadog
- Installation of Datadog
- Connecting Elastic stack
- New install of ElasticSearch
- Existing ElasticSearch cluster
- Connecting Nagios
- New install of Nagios
- Existing install of Nagios
- Master-Node communication (Discussion, Demo & Lab)
- Overview
- Cluster -> Master
- Master -> Cluster
- apiserver ->kubelet
- apiserver -> nodes, pods, and services
- SSH Tunnels
- StatefulSet Basics (Discussion, Demo & Lab)
- Objectives
- Before you begin
- Creating a StatefulSet
- Ordered Pod Creation
- Pods in a StatefulSet
- Examining the Pod’s Ordinal Index
- Using Stable Network Identities
- Writing to Stable Storage
- Scaling a StatefulSet
- Scaling Up
- Scaling Down
- Ordered Pod Termination
- Updating StatefulSets
- Rolling Update
- Staging an Update
- Rolling Out a Canary
- Phased Roll Outs
- On Delete
- Deleting StatefulSets
- Non-Cascading Delete
- Cascading Delete
- Pod Management Policy
- OrderedReady Pod Management
- Parallel Pod Management
- Cleaning up
- DaemonSet (Discussion, Demo & Lab)
- What is a DaemonSet?
- Writing a DaemonSet Spec
- Create a DaemonSet
- Required Fields
- Pod Template
- Pod Selector
- Running Pods on Only Some Nodes
- How Daemon Pods are Scheduled
- Communicating with Daemon Pods
- Updating a DaemonSet
- Alternatives to DaemonSet
- Init Scripts
- Bare Pods
- Static Pods
- Deployments
Overview of the following topics (Discussion)
- Kubernetes on AWS+
- Kubernetes on Azure
- Kubernetes on OTC
- Kubernetes on OpenStack
- Kubernetes in Kubernetes (aka Kubeception)
- Learn Machine Learning on Kubernetes
- Big Data on Kubernetesn
- Get Serverless with OpenWhisk on Kubernetes
- Cluster Federation
- Multi-Cloud Kubernetes
- Multi-Platform Kubernetes
- Kubernetes Interoperability