Skip to content

Instantly share code, notes, and snippets.

@gunjan5
Last active February 28, 2019 22:25
Show Gist options
  • Save gunjan5/f2429a38685dc6e92aebaec5086dc32c to your computer and use it in GitHub Desktop.
Save gunjan5/f2429a38685dc6e92aebaec5086dc32c to your computer and use it in GitHub Desktop.

I will be doing a 2 part workshop on Container/Kubernetes. March 2nd and March 9th. Here is what I'm planning to cover. Time: 12:00pm to 3pm (3/2, and 3/9) Registration: www.npu.edu/news/containerMarch2019

Workshop (Day 1 - Basics) March 2nd

Overview (How we got here): [20 min]

  • Story of a web dude (how a monolith service is managed)
  • Move from monolith to microservices
  • How is the infrastructure moving with this trend (baremetal -> VM -> containers -> serverless)
  • Where everything is at on the technology curve
  • What are containers? And what business problem do they solve?
    • Briefly explain namespaces
  • What is k8s? What business problem does it solve?
    • operational cost (resource utilization)
  • Some k8s adoption numbers, how fast it’s growing, adoption

Cloud Native Ecosystem Landscape: [10 min]

  • Explain all the names in the industry:
  • *aaS layers (explain the different XaaS layers and where do containers/k8s fit in)
  • Container runtime: docker, rkt, CRI-O, CRI-containerd, ...
  • Orchestrators: K8s, Mesos, Swarm, OpenShift, Rancher, ...
  • CNI: Calico, Weave, Flannel, Romana, ...
  • Servicemesh: istio, callium, nginmesh, hashicorp consul, ...
  • Managed k8s (K8SaaS): GKE, EKS, AKS, VNX (VMware), PCS, DigitalOcean, ...

Containers basics (Docker intro) [30 min]

  • What is a container

  • How are containers implemented

  • Terminology

  • Live example:

    Code -> Binary -> Dockerfile -> local container image -> image on DockerHub -> image on another machine -> image deployed in the cloud

K8s core concepts: [30 min]

  • Pods
  • Namespaces
  • Labels/Selectors
  • Service
  • Deployment (ReplicaSets)
  • Kubernetes YAML (API format)

Lab 1: Basics [45 min] - take home

  • Deploy a simple nginx service (deployment, service)
  • Scale it up/down
  • Create a service (expose it to the internet using GCP external Load Balancer)
  • Look at pod logs, audit logs
  • Do a rolling update
  • Configure Horizontal Autoscaler
  • GKE Kubernetes UI
  • Basic kubectl CLI operations

Workshop (Day 2 - Intermediate and Advanced) March 9th

Day in a life of a container native app (CI/CD) [30 min]

  • Typical workflow from developer's laptop (code) to production
  • Dev tools
  • Testing/QA
  • CI tools
  • CD workflow
  • Production cluster management, A/B testing, upgrades, etc.

Advanced K8s concepts & security [45 min]

  • ConfigMap
  • DaemonSet
  • StatefulSet
  • Ingress

  • K8s security concepts
  • RBAC
  • NetworkPolicy
  • Secrets
  • Security in k8s context
  • Easy ways to secure a k8s cluster

K8s architecture: [60 min]

  • Day in a life of a packet

    • Same pod
    • Different pods, same host
    • Different pods, different host
    • Pod to service IP
    • Pod to service name
    • Pod to outside world
    • Outside world to pod
  • Networking/CNI overview

Architecture:

  • Control Plane

    • API server (components)
    • Networking CP (istio)
    • etcd
  • “Data” Plane

    • kubelet
    • docker/CRI
    • Networking DP (CNI, Envoy)
  • Brief overview of istio

(take home) Lab 2: Advanced use (istio) [60 min]

Could be a take home lab

  • Deploy istio on kubernetes
  • Deploy the istio guestbook app
  • Create istio policies, monitoring, request routing, tracing, service graph, visualization

Closing

  • Kubernetes deployers
  • Kubernetes learning resources
  • Free clusters
  • Future courses
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment