Upload
nine-internet-solutions-ag
View
201
Download
1
Embed Size (px)
Citation preview
2
TECHTALKTHURSDAY DOCKER / ÖFFENTLICH SEBASTIAN NICKEL Version 1.0
#TechTalkThursday
MANAGE THE MINIONS
...WITH KUBERNETES
3
TECHTALKTHURSDAY DOCKER / ÖFFENTLICH SEBASTIAN NICKEL Version 1.0
#TechTalkThursday
THEMEN 1. WARUM CONTAINER?
2. WAS IST KUBERNETES?
3. VOR- UND NACHTEILE
4. AUSBLICK
4
TECHTALKTHURSDAY DOCKER / ÖFFENTLICH SEBASTIAN NICKEL Version 1.0
#TechTalkThursday
WARUM CONTAINER?
• mehr „Freiheit im Systembau“ • Kunde stellt Docker Image selbst zur Verfügung • Kunde kann Software im Image selbst deployen
• es kann eigene Software deployed werden, welche als „root“ ausgeführt werden kann
• Continous Deployment • es können die selben Docker Images in allen Entwicklungsstufen
genutzt werden • schnell skalierbar • Es sollen gesamte Infrastrukturen „dockerized“ werden können • Mehr Performance durch direkte Interaktion mit dem Host Kernel
5
TECHTALKTHURSDAY DOCKER / ÖFFENTLICH SEBASTIAN NICKEL Version 1.0
#TechTalkThursday
WARUM CONTAINER?
• Ziele und Auswirkungen für Nine: • ein multi Tenant Cluster auf dem Docker Images der Kunden
laufen • „gewohnte“ Sicherheit zwischen den virtualisierten Systemen • Monitoring kann nicht auf Service Ebene stattfinden • es wird wird ein Tool zur Orchestrierung benötigt • Wir bieten einen „managed Cluster“...keine „managed Services“
6
TECHTALKTHURSDAY DOCKER / ÖFFENTLICH SEBASTIAN NICKEL Version 1.0
#TechTalkThursday
WAS IST KUBERNETES?
• Orchestrierungs- und Clustermanager Framework entwickelt von Google
• alle Komponenten besitzen eine zugängliche API • unterteilt Cluster Aufbau in verschiedene Komponenten • benötigt zusätzlich „etcd“ (verteilter Key-Value Store) • speziell: jeder Cluster Node benötigt ein privates /24 Netz für die
Container, welches zwischen den Nodes geroutet werden muss • Network-overlay: flannel
• alle von intern erreichbaren „Services“ nutzen ein privates Subnetz • um von extern auf „Services“ zugreifen zu können wird auf jedem
Cluster Node ein Port (der selbe) geöffnet
8
TECHTALKTHURSDAY DOCKER / ÖFFENTLICH SEBASTIAN NICKEL Version 1.0
#TechTalkThursday
WAS IST KUBERNETES?
• physischer oder virtueller Server auf dem PODs gestartet werden • Benötigt keine öffentliche IP Adresse, private IP ausreichend • Auf jedem Node läuft ein „kubelet“ Daemon (nimmt API Befehle
entgegen) und ein „kube-proxy“ (routed Netzverkehr) • Netzwerk Verkehr zwischen Nodes wird von „flanneld“ geroutet • ...und es läuft natürlich „docker“
KOMPONENTE: NODE (AKA MINION)
9
TECHTALKTHURSDAY DOCKER / ÖFFENTLICH SEBASTIAN NICKEL Version 1.0
#TechTalkThursday
WAS IST KUBERNETES?
• inhaltlich zusammenhängende Container können in einem POD zusammengefasst werden
• Container in einem POD teilen sich den network stack und den IPC Namespace
• Volumes werden pro POD gemountet und stehen allen Containern zur Verfügung
• jeder POD hat eine eigene IP aus einem privaten Subnetz
KOMPONENTE: POD
10
TECHTALKTHURSDAY DOCKER / ÖFFENTLICH SEBASTIAN NICKEL Version 1.0
#TechTalkThursday
WAS IST KUBERNETES?
• macht Dienste von PODs zugänglich • „interner“ vs. „externer“ Service • PODs werden über Selektoren automatisch zugeordnet
KOMPONENTE: SERVICE
11
TECHTALKTHURSDAY DOCKER / ÖFFENTLICH SEBASTIAN NICKEL Version 1.0
#TechTalkThursday
WAS IST KUBERNETES?
• sorgt dafür das ein gewisser POD in einer gesetzten Anzahl läuft • rescheduled abgebrochene PODs • Kubernetes < 1.1 :
• Wird genutzt um „rolling Releases“ zu unterstützen • Kubernetes >= 1.1 :
• Eigener „Deployment“ Typ wurde eingeführt
KOMPONENTE: REPLICATION CONTROLLER
12
TECHTALKTHURSDAY DOCKER / ÖFFENTLICH SEBASTIAN NICKEL Version 1.0
#TechTalkThursday
WAS IST KUBERNETES?
• stellt einem POD (eventuell nicht flüchtigen) Speicherplatz zur Verfügung
• Unterstützung mehrerer Backends, bspw: • Amazon Elastic Block Store • nfs • iscsi • glusterfs • rbd (ceph) • git
KOMPONENTE: VOLUME
13
TECHTALKTHURSDAY DOCKER / ÖFFENTLICH SEBASTIAN NICKEL Version 1.0
#TechTalkThursday
WAS IST KUBERNETES?
• Methode um Nutzernamen und Passwörter einem POD zur Verfügung zu stellen
• Daten werden als key-value Paar angegeben • Daten dürfen nicht mehr als 1 MB gross sein • werden an bestimmter Stelle im POD als Files gemountet:
• Key entspricht dann dem Dateiname • Value entspricht dem Inhalt der Datei
KOMPONENTE: SECRET
14
TECHTALKTHURSDAY DOCKER / ÖFFENTLICH SEBASTIAN NICKEL Version 1.0
#TechTalkThursday
WAS IST KUBERNETES?
• Ressourcen können in Namespaces verpackt werden • vorranging genutzt um Ressourcen Constraints pro Namespace
anzulegen, bspw: • Maximale Anzahl an PODs • Maximale Anzahl genutzter CPUs • Maximal genutzter Speicher
KOMPONENTE: NAMESPACE
15
TECHTALKTHURSDAY DOCKER / ÖFFENTLICH SEBASTIAN NICKEL Version 1.0
#TechTalkThursday
ABER WIE SCHAUT DAS LIVE AUS? • Blog URL: http://tech-talk-blog.nine.ch • verteilter Content über Git Volume • kein „Single Point of Failure“
16
TECHTALKTHURSDAY DOCKER / ÖFFENTLICH SEBASTIAN NICKEL Version 1.0
#TechTalkThursday
VOR- UND NACHTEILE
• Networking Modell ist durch „Services“ sehr gut Clusterfähig • API für alle Ressourcen • Rolling Releases durch Deployments • Unterstützung von glusterFS, NFS oder RBD als verteilten Volume
Storage
VORTEILE
17
TECHTALKTHURSDAY DOCKER / ÖFFENTLICH SEBASTIAN NICKEL Version 1.0
#TechTalkThursday
VOR- UND NACHTEILE
• Keine Firewall Regeln definierbar • Jeder POD hat auf jeden Service oder anderen POD Netzwerk
Zugriff • Es existiert Feature Request um zumindest Namespaces
voneinander abzugrenzen • Maintenance Modus für einen Node umständlich • Externe Services (bspw. Datenbanken) werden von Node-IP aus
angesprochen, aber auf einem Node laufen mehrere PODs...wie Firewall auf bspw. DB einstellen?
NACHTEILE
18
TECHTALKTHURSDAY DOCKER / ÖFFENTLICH SEBASTIAN NICKEL Version 1.0
#TechTalkThursday
AUSBLICK
• Nine verfolgt die Entwicklung von Kubernetes weiter • Deployment für Kunden vereinfachen • Docker bringt weitere Security Features (laut Roadmap):
• Seccomp (Entfernung von System Calls für bestimmte Prozesse) • User Namespaces („root“ in einem Container ist nicht „root“ auf
Node)
19
TECHTALKTHURSDAY DOCKER / ÖFFENTLICH SEBASTIAN NICKEL Version 1.0
#TechTalkThursday Nine Internet Solutions AG
Albisriederstr. 243a
CH-8047 Zürich
Tel +41 44 637 40 00
Fax +41 44 637 40 01
FRAGEN?
20
TECHTALKTHURSDAY DOCKER / ÖFFENTLICH SEBASTIAN NICKEL Version 1.0
#TechTalkThursday Nine Internet Solutions AG
Albisriederstr. 243a
CH-8047 Zürich
Tel +41 44 637 40 00
Fax +41 44 637 40 01
DANKE FÜR DIE AUFMERKSAMKEIT!