Abstract:
• Kubernetes Nedir?
• Çalışma prensipleri nelerdir?
• Neler sunuyor?
• Alternatifleri nelerdir?
Bio:
Ahmet Üstün, Comind isimli yapay zeka startup'ının kurucularından. Öncesinde 3 yıl Cybersoft Ar-Ge takımında bulut sistemleri konusunda çalıştı. Bu sürede; Docker, Kubernetes, Openstack ve Aws üzerine yoğunlaştı, projeler geliştirdi. Yüksek lisansını ODTÜ'de yapay zeka ve doğal dil işleme üzerine yaptı. Halen doktora öğrencisi olarak ODTÜ'de araştırmalar yapmaya devam ediyor.
3. Kubernetes
A Production-Grade Container Orchestration System
Google-grown, based on Borg and Omega, systems that run inside of Google
right now and are proven to work at Google for over 10 years.
Google spawns 2 billion containers per week with these systems.
Created by three Google employees initially during the summer of 2014
Hit the first production-grade version v1.0.1 in July 2015.
Have continually released a new minor version every three months since
v1.2.0 in March 2016. v1.8.0 was just released 28th September 2017.
3
4. So what does Kubernetes actually do ?
One thing: Abstract away the underlying hardware. Abstract away the concept
Node.
Principle: Manage your applications like Cattle (generic, bulk operations)
instead of like Pets (every operation is customized with care and love for the
individual)
You (the admin) declares the desired state, Kubernetes' main task is to make
the desired state the actual state.
4
5. So what does Kubernetes actually do ?
A system for container management in a clustered environment.
Multiple cloud and bare-metal environments.
Multiple container engines, mainly based on Docker.
Provides grouping, load balancing, scaling and scheduling features.
Manages applications, not machines
5
8. Master Components
API Server: The main management endpoint for cluster (RESTful interface)
Controller Manages: Handles replication management
Scheduler Server: Assigns workload to specific nodes
etcd: A distributed key-value store for sharing configuration
8
9. Node Components
Docker: A container system which runs on a dedicated network
Kubelet: Is responsible for the communication with master server
Proxy: Used for network forwarding and load balancing
9
10. Work Units: POD 10
POD
= A collocated group of
containers (one-to-many)
with shared resources. e.g.
network, volumes.
It can be viewed as a
"logical host".
11. Work Units: LABELS and SELECTORS 11
LABELS and SELECTORS
= Arbitrary metadata that
represent identity for
generic grouping
mechanism
- pods in a ReplicaSet
- pods in a Service
12. Work Units: SERVICES 12
SERVICES
= An interface to a group of
containers, which acts as
load-balancer and provides
an abstraction layer - no
need to worry about
containers location.
(+ External Services)
13. Work Units: REPLICA SET 13
REPLICA SET
= Ensures that the number
of desired pods
"replicas" are running at
any time.
14. Work Units: DEPLOYMENT 14
DEPLOYMENT
= Declarative way to
describe the desired state
of the application (pods,
replica sets).
15. Work Units: DAEMON SETS 15
DAEMON SETS
= Way to run a Pod on
every node?
16. Work Units: DAEMON SETS 16
CONFIG MAP and SECRET
= Provides one interface to
manage app configuration
& secrets
12-factor says config
comes from the
environment
17. Work Units: DAEMON SETS 17
HORIZONTAL AUTO SCALER
= Automatically scale pods
as needed
- based on CPU utilization (for
now)
- custom metrics in Alpha
18. Work Units: PERSISTENT VOLUME 18
PERSISTENT VOLUME
= Manage storage with its
own lifecycle. +20 supported
driver plugins:
- Google Persistent Disk
- Amazon ESB
- Ceph ...