This document provides an overview of Kubernetes and containers by beginning with an introduction to containers and their benefits over virtual machines. It then discusses microservices architectures and introduces key Kubernetes concepts like pods, deployments, and services. It explains the Kubernetes architecture by describing the main components like the master node, API server, etcd, workers and kubelet. Finally, it compares Kubernetes to the Azure Kubernetes Service.
7. Isolating filesystem with namespaces
HDD
VIRTUAL
DISK
VIRTUAL
DISK
/
/var /etc /mnt
/
/var /etc /mnt
/
/var /etc /mnt
1
3 42
5 6 7 8
8. Isolating networks with namespaces
1
3 42
6 7 8, 1
Process
namespace
Process
namespace
E
T
H
0
vETH0
LO
vETH0
LO
Network
namespace
Network
namespace
5, 1
Routing
table
Network
Bridge
9. CGroups
Cgroups (abbreviated from control groups) is a Linux kernel feature that
limits, accounts for, and isolates the resource usage (CPU, memory, disk I/O,
network, etc.) of a process or a collection of processes
10.
11. Introduction to container: image layering
app1 app2
sshd perl python asp.net
debian nanoserver
scratch
1
3 42
5 6 7 8, 1
Process
namespace
17. Mutable Infrastructure
sIIS v7.0
APP 1 APP 2
DEP 1 DEP 2
Production Host V1
sIIS v8.0
APP 1 APP 2
DEP 1 DEP 2
Production Host V2
sIIS v7.0
APP 1 APP 2
DEP 1 DEP 2
Production Host V1
sIIS v8.0
APP 1 APP 2
DEP 1 DEP 2
Production Host V2Risk
Complexity
25. Kubernetes concepts: Pods
A Pod is a group of one or more containers
(such as Docker containers), with shared
storage/network.
Containers within a Pod share an IP address and
port space and can find each other via
localhost.
Like individual containers, Pods are relatively
ephemeral (rather than durable) entities.
26. Kubernetes concepts: Deployments
Pods aren’t intended to be durable entities,
since they won’t survive scheduling failures,
node failures, or other evictions.
Deployments provide self-healing capabilities
for Pods, as well as replication and rollout
strategies.
Deployment
POD POD
27. Kubernetes concepts: Services
Services expose an application running on a
set of Pods as a network service.
Kubernetes Services provide:
• Service discovery
• Load balancing
• DNS registration
Service
10.0.0.10
Pod1
10.0.0.1
Pod1
10.0.0.2
Pod1
10.0.0.3
28. Kubernetes vs Azure Kubernetes Service
Master Nodes
Api Server
DNSScheduler
ETCD
Yaml Template
Pod
Image: svc1
Replicas: 2
---
Pod
Image: svc2
Replicas: 2
---
Pod
Image: svc3
Replicas: 1
Worker 1
Kubelet
Worker 2
Kubelet
Worker 3
Kubelet
Pod
Pods
Pod
Pods
Pod
Pods
Azure Managed
Customer Managed