Kubernetes has now become the de facto standard for deploying containerized applications at scale.
The presentation will follow K8s core concepts, architecture and real life scenarios.
7. HISTORY IN A NUTSHELL
Borg was founded
by Google
2004
Kubernetes was
introduced
2014
2015
Kubernetes
1.0 & CNCF
2017
Docker fully
embraces
Kubernetes
Minikube
2016
19. kubelet
● An Agent that runs on each node
of the cluster
● The kubelet takes a set of
PodSpecs that are provided and
ensures that the containers
described in those PodSpecs are
running and healthy
22. Virtual cluster backed by the
same physical cluster
Volume
Namespace: prod
Pod
Labels: [app: dt-app]
Container
Name: dt-app
Image: nginx
Namespace
Pod
Labels
Volume
smallest deployable units of
computing
key/value pairs that are
attached to objects
Abstraction layer for
having persistence
storage
23. DaemonSet
● Implements a single instance of a pod on a
worker node.
● Common usage:
○ Monitoring
○ Logging
Node
Pod
Node
Pod
Master
Node
Pod
24. Deployment
● Deployment controllers handles declarative
updates for Pods and ReplicaSets.
● Manages changes from the actual state to
the desired state at a controlled rate.
Deployment
Pod Pod
ReplicaSet
Pod Pod
ReplicaSet
ReplicaSet
● Guarantees the availability of a specified
number of identical Pods.
25. Service
● An abstract way to expose an application
running on a set of Pods as a network service.
There are 3 types of Service:
○ Node Port
○ Load balancer
○ ClusterIP
Service
Pod Pod Pod
26. DNS
CoreDNS - Open Source DNS Server written in Go, Kubernetes default DNS server
since version 1.13
● CoreDNS runs as Deployment
● Default cluster domain - cluster.local
● Default allocated DNS records:
○ <SERVICE_NAME>.<NAMESPACE>.svc.cluster.local
○ <POD_IP>.<NAMESPACE>.pod.cluster.local
29. Kubectl
$> kubectl get deployment webapp
$> kubectl get pod web-pod-13je7 -o yaml
$> kubectl apply -f example-service.yaml
● Kubectl is a command line interface for
running commands against Kubernetes
clusters.
● By default, looks for config file at
$HOME/.kube
34. IT’S SHOW TIME!
● Demonstration over AWS
● Run BE & FE services
● Expose the FE service to the internet via
Load balancer
● Use secure HTTPS connection
● Attach DNS record to the load balancer
● Scale automatically the FE service based on
collected metrics
● Scale manually the BE service.
35. ● Helm - deploy apps at ease
● Monitoring - what are the right
metrics?
● Logging - what do we even look
for?
NEXT STEPS