Kubernetes uses containers managed by container engines like Docker. It separates containers from the host machine using namespaces and cgroups for isolation. Docker containers share the host kernel and use aufs for the union filesystem. Virtual machines (VMs) run a full guest operating system with virtualization provided by hypervisors like KVM/QEMU. Containers are more lightweight than VMs as they share the host kernel and have smaller base images and faster launch times and resource usage.
5. Kubernetes support Containers
• Windows Server Container (windows kernel)
• Hyper-V Container (window kernel)
• Docker Container (linux kernel)
...
6. Early Docker Architecture
APP A
Bins/Libs
APP B
Bins/Libs
Container Engine
HostOS
Hardware
● Based on LXC (Linux Container)
● LXC appears from kernel 2.6.29
● LXC driver must be activated
10. Container use Kernel API
• namespaces allows us to isolate processes from each
other(process, network, messaging, file system,
hostname)
• cgroups allows us to limit resource utilization
• aufs implements a union mount
• linux bridge bridges each container