KEMBAR78
Docker and kubernetes_introduction | PPTX
Container Docker and
Kubernetes
An introduction of basics
Contents
 Container
 Docker
 Kubernetes
Container
 What is Container?
• isolated
• include all required files
• portable
• lightweight VM
• share host kernel
referance: https://www.redhat.com/en/topics/containers/whats-a-linux-container
Container
* kubernetes: remove the Container Daemon
Container
Reference:https://www.backblaze.com/blog/vm-vs-containers/
Container
 Building Blocks
• Control groups
• CPU/Memory/Disk IO
• namespace
• pid/net/mnt/user etc..
• Storage
• Copy-on-Write
• AUFS, overlay FS
Container
 Runtimes
• LXC
• Docker Engine
• rkt(CoreOS--App Container)
• runC(Open Container Project--OCP)
• OpenVZ
• Jails/Zones
Container
 Open Container Project(OCP)
• Open Container Initiative (OCI)
• the Runtime Specification (runtime-spec) and the Image Specification (image-spec)
 CNI and CNM
• Docker vs CoreOS(Google)
referance:https://www.opencontainers.org/about
referance:https://thenewstack.io/container-networking-landscape-cni-
coreos-cnm-docker/
Docker
Docker
Docker
Docker--image
Docker--Dockerfile
Docker
 Network
• bridge/overlay/host/none
 Storage
• bind mounts
 Service Discovery & Load Balancing
• DNS based
Docker--Overlay
Docker--Pid 1 and Signal
referance: https://github.com/Yelp/dumb-init
Docker--Swarm
 Docker Swarm
• simple to create
• limited ability(auto-scaling, cloud-integration,multi-user, log)
 Full Production Environment Stack
• Nginx as Frontend load balancer and Service Router
• Consul+Consul-template to update Nginx config and reload Nginx
• registrator on every worker node
• logspout+ELK
• NFS as storage persistent solution
• cAdvisor+Node_exporter+Prometheus
Docker
Docker
Docker
Docker
 https://chrisshort.net/docker-inc-is-dead/
 https://thenewstack.io/solomon-hykes-departs-from-docker/
kubernetes
 Why Kubernetes?
• automate deployment, scaling, and management of containerized applications
• container orchestration
• new era of infrastructure
• Docker Swarm/Rancher/Mesos
 feature
• auto-failover/Blue-Green/Rollback
• Service Discovery/Load Balance
• Cloud-Integration
• multi-namespace
• Support from Google/Redhat/IBM
kubernetes
kubernetes
kubernetes--Components
 API Server
 Scheduler
 Control Manager
 etcd
 kubelet
 kube-proxy
kubernetes--Scheduler
 Scheduler
kubernetes
 Pod
 Deployment/Replica Sets
 DaemonSet(nginx as Ingress)
 StatefulSets
 CronJob
 Service
kubernetes
kubernetes
kubernetes--yaml
kubernetes--pod
 the smallest and simplest unit
 shared storage/network
 routable IP address
 one or more containers
kubernetes--pod
https://matthewpalmer.net/kubernetes-app-developer/articles/multi-container-pod-design-
patterns.html
kubernetes--pod
 HealthCheck
• Liveness Probes
• Readiness Probes
https://matthewpalmer.net/kubernetes-app-developer/articles/multi-container-pod-design-
patterns.html
kubernetes--Deployment
kubernetes--Deployment
kubernetes--Expose Service
 NodePort
 Ingress(Nginx and ConfigMap)
 LoadBalancer(OpenStack,AWS,GCE,AliCloud)
 kube-proxy
• iptables vs ipvs
kubernetes--NodePort+LB
kubernetes--Ingress
kubernetes--Ingress
kubernetes--storage
 Volume
 PersistentVolume: a resource like a node in a cluster
 PersistentVolumeClaims: request for PV
 static/dynamic PVs
• StorageClasses
 cloud-provider
kubernetes--storage
 Static PVs and PVCs
kubernetes--storage
 Dynamic PVs and PVCs
kubernetes--ConfigMap
 separate application code from configuration
 examples:
• redis example:https://kubernetes.io/docs/tutorials/configuration/configure-redis-using-
configmap/
• nginx example: https://kubernetes.io/docs/tutorials/configuration/configure-redis-
using-configmap/
kubernetes
kubernetes--monitor
 Host Monitor
• zabbix/node_exporter
 Pod Monitor
• cAdvisor
 Heapster
 ELK
 Horizontal Pod Autoscaler(HPA)
kubernetes--Advanced Topics
 Blue-green/Canary deployment
 Service Mesh
 helm(rpm,apt)
http://blog.christianposta.com/deploy/blue-green-deployments-a-b-testing-and-canary-
releases/

Docker and kubernetes_introduction