Ibrahim AshShohail
@ibrasho
Container Orchestration
(Kubernetes From A to B 😅)
Ibrahim AshShohail
- Senior Software Development Manager @ Tamkeen Technologies
- "TechTalks Saudi" organizer
- Open Source contributor
- golang/dep maintainer
@ibrasho
http://archive.work-bench.com/blog/2016/07/12/why-kubernetes-is-foundational-for-fortune-500-digital-transformation/
Overview
What is Kubetnetes?
Kubernetes is a portable, extensible open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem.
https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
What does Kubernetes mean? K8s?
The name Kubernetes originates from Greek, meaning helmsman or pilot, and is the root of governor and cybernetic. K8s is an abbreviation derived by replacing the 8 letters “ubernete” with “8”.
https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
Why?
Kubernetes provides a container-centric management environment. It orchestrates computing, networking, and storage infrastructure on behalf of user workloads. This provides much of the simplicity of Platform as a Service (PaaS) with the flexibility of Infrastructure as a Service (IaaS), and enables portability across infrastructure providers.
https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
Is it a PaaS?
Kubernetes is not a traditional, all-inclusive PaaS (Platform as a Service) system. Since Kubernetes operates at the container level rather than at the hardware level, it provides some generally applicable features common to PaaS offerings, such as deployment, scaling, load balancing, logging, and monitoring. However, Kubernetes is not monolithic, and these default solutions are optional and pluggable. Kubernetes provides the building blocks for building developer platforms, but preserves user choice and flexibility where it is important.
https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
Features
- Automatic binpacking
- Horizontal scaling
- Automated rollouts and rollbacks
- Storage orchestration
- Self-healing
- Service discovery and load balancing
- Secret and configuration management
- Batch execution
https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
Stats
- has had 62,906 commits made by 1,920 contributors
- representing 1,444,251 lines of code
is mostly written in Go with an average number of source code comments
has a codebase with a long source history maintained by a very large development team with stable Y-O-Y commits
took an estimated 406 years of effort (COCOMO model) starting with its first commit in June, 2014 ending with its most recent commit 3 days ago
https://www.openhub.net/p/kubernetes
Concepts
What is a Pod?
- Name comes from pod of whales or pea pod
- smallest and simplest unit in the Kubernetes object model that you create or deploy
- represents a running process on your cluster
- group of one or more containers
- with shared storage/network
- specification for how to run the containers
- contents are always co-located and co-scheduled
- models an application-specific “logical host”
https://kubernetes.io/docs/concepts/workloads/pods/pod/
https://kubernetes.io/docs/concepts/workloads/pods/pod-overview/
Workload Controllers
- Replica Sets
- Replication Controllers
- Deployments
- Stateful Sets
- Daemon Sets
- Jobs
- Cron Jobs
Configuration & Secret Management
- Config Maps
- Secrets
Storage
- Persistent Volumes
- Persistent Volume Claims
- Storage Classes
Networking, Service Discovery & Load Balancing
- Services
- Ingresses
- Network Policies
Ecosystem
https://thenewstack.io/ebooks/kubernetes/state-of-kubernetes-ecosystem/
Q & A
Thank You
@ibrasho
Recommended Reading
https://cloud.google.com/kubernetes-engine/kubernetes-comic/
Kubernetes From A to B
By Ibrahim AshShohail
Kubernetes From A to B
- 889