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
- 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
- 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, ...
-
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
- Pods
- Namespaces
- Labels/Selectors
- Service
- Deployment (ReplicaSets)
- Kubernetes YAML (API format)
- 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
kubectlCLI operations
- 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.
- ConfigMap
- DaemonSet
- StatefulSet
- Ingress
- K8s security concepts
- RBAC
- NetworkPolicy
- Secrets
- Security in k8s context
- Easy ways to secure a k8s cluster
-
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
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
- Kubernetes deployers
- Kubernetes learning resources
- Free clusters
- Future courses