Docker Kubernetes

Overview

This training course covers docker right from how to run a single container to how to package your application into a docker image and finally deploy it at a production scale on a multitude of hosts.

Duration
3 Days

Pre-Requisites
  • Understanding of Linux/Unix Systems Fundaments
  • Understanding of Command Line Interface (CLI)
  • Basic knowledge on editors on Linux
  • Understanding of YAML syntax and familiarity with reading & writing basic YAML specifications
  • Course Outline

    • Basics of Docker
    • Dockerfile
    • Networking
    • Container Images
    • Building Application Images with Docker
    • Storing Images in a Remote Registry
    • The Docker Container Runtime
    • Installing Kubernetes on a Public Cloud Provider
    • Installing Kubernetes Locally Using minikube
    • Running Kubernetes on Raspberry Pi
    • The Kubernetes Client
    • Cluster Components
    • Namespaces
    • Contexts
    • Viewing Kubernetes API Objects
    • Creating, Updating, and Destroying Kubernetes Objects
    • Labelling and Annotating Objects
    • Debugging Commands
    • Pods in Kubernetes
    • Thinking with Pods
    • The Pod Manifest
    • Running Pods
    • Accessing Pod
    • Health Checks
    • Resource Management
    • Persisting Data with Volumes
    • The Distributed System ToolKit
      • Sidecar containers
      • Ambassador containers
      • Adapter containers
    • Labels
    • Annotations
    • Enabling Resource Quota
    • Compute Resource Quota
    • Storage Resource Quota
    • Object Count Quota
    • Quota Scopes
    • Requests vs Limits
    • Viewing and Setting Quotas
    • Quota and Cluster Capacity
    • Limit Priority Class consumption by default
    • What Is Service Discovery?
    • Using CoreDNS for Service Discovery
    • About CoreDNS
    • Upgrading an existing cluster with kubeadm
    • Installing kube-dns instead of CoreDNS with kubeadm
    • The Service Object
    • Looking Beyond the Cluster
    • Cloud Integration
    • Advanced Details
    • Reconciliation Loops
    • Relating Pods and ReplicaSets
    • Designing with ReplicaSets
    • ReplicaSet Spec
    • Creating a ReplicaSet
    • Inspecting a ReplicaSet
    • Scaling ReplicaSets
    • Deleting ReplicaSets
    • DaemonSet Scheduler
    • Creating DaemonSets
    • Limiting DaemonSets to Specific Nodes
    • Updating a DaemonSet
    • Deleting a DaemonSet
    • The Job Object
    • Job Patterns
    • ConfigMaps
    • Secrets
    • Naming Constraints
    • Managing ConfigMaps and Secrets
    • First Deployment
    • Creating Deployments
    • Managing Deployments
    • Updating Deployments
    • Deployment Strategies
    • Deleting a Deployment
    • Importing External Services
    • Running Reliable Singletons
    • Kubernetes-Native Storage with StatefulSets
    • Installing Helm, the Kubernetes Package Manager
    • Using Helm to Install Applications
    • Creating Your Own Chart to Package Your Application with Helm
    • Converting Your Docker Compose Files to Kubernetes Manifests
    • Creating a Kubernetes Cluster with kubicorn
    • Storing Encrypted Secrets in Version Control
    • Deploying Functions with kubeless
    • Why service mesh?
    • Conduit and Istio
    • Managing microservices with Istio
    • Determine Whether a Request is Allowed or Denied
    • Review Your Request Attributes
    • Determine the Request Verb
    • Authorization Modules
    • Using Flags for Your Authorization Module
    • Privilege escalation via pod creation
    • Calico
    • Flannel
    • Scaling a Deployment
    • Automatically Resizing a Cluster in GKE
    • Automatically Resizing a Cluster in AWS
    • Using Horizontal Pod Autoscaling on GKE
    • Providing a Unique Identity for an Application
    • Listing and Viewing Access Control Information
    • Controlling Access to Resources
    • Securing Pods
    • What is Ingress?
    • Prerequisites
    • The Ingress Resource
    • Ingress controllers
    • Before you begin
    • Types of Ingress
    • Updating an Ingress
    • Failing across availability zones
    • Future Work
    • Alternatives
    • Accessing the Logs of a Container
    • Recover from a Broken State with a Liveness Probe
    • Controlling Traffic Flow to a Pod Using a Readiness Probe
    • Adding Liveness and Readiness Probes to Your Deployments
    • Enabling Heapster on Minikube to Monitor Resources
    • Using Prometheus on Minikube
    • Using Elasticsearch–Fluentd–Kibana (EFK) on Minikube