20

TechTalkThursday 26.11.2015: Manage the minions - Docker Container mit Kubernetes

Embed Size (px)

Citation preview

1

TECHTALKTHURSDAY DOCKER / ÖFFENTLICH SEBASTIAN NICKEL Version 1.0

#TechTalkThursday

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

7

TECHTALKTHURSDAY DOCKER / ÖFFENTLICH SEBASTIAN NICKEL Version 1.0

#TechTalkThursday

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

[email protected]

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

[email protected]

DANKE FÜR DIE AUFMERKSAMKEIT!