Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
ContainerplattformLego für DevOps
Dr. Jonas Trüstedt
19.10.2017
Idee von Containern
Virtualisierung in Containern:
▶ Minimalisierung der Abhängigkeiten
▶ Mit Host geteilter Kernel
→ Wenig Overhead
▶ 1 Container pro Funktion/Prozess(Microservices)
→ Anwendungen aus mehrerenContainern
Infrastruktur
OS (Host)
Docker
Abhängigkeiten
Anwendung 1
Abhängigkeiten
Anwendung 2
Container A Container B
#atix #osad2017
Vorteile von Containern
Beweggründe für den Einsatz von Containern:
▶ portabel
▶ schnell
▶ skalierbar
⇒ Container = Docker(Alternativen: rkt, Cloudfoundry, u.a.)
#atix #osad2017
Docker vs. klassische VMs
Docker-Container:
▶ OS-unabhängig (sofern Linux)
▶ werden nicht gep egt sondernneuerstellt (Pets vs Cattle)
▶ Schnell und speicheref zient
Klassische virtuelle Maschinen(VM):
▶ Engverzahnte monolithischeSoftware schwer zucontainerisieren
▶ Leichter zu überwachen und zuhärten
⇒ Kombination von VMs und Containern
#atix #osad2017
Entwicklung der Server
AppAppAppApp
LibsLibsLibsLibs
Containercluster
OS OS
Hypervisor
Hardware
OS OS
Hypervisor
Hardware
App App
Libs Libs
Hardware
Anwendung
OperatingSystem
AbhängigkeitenLibs
#atix #osad2017
Grenzen von Docker
Docker alleine reicht oft nicht:
▶ Anzahl der Container
▶ Lastverteilung (Skalierung)
▶ Erstellung und Starten der Container erfolgt einzeln
→ Erweiterung der Infrastruktur auf einen Cluster mithilfe von z.B.:
→ Features wie Scheduling, Loadbalancing, Healthchecks, Autoscaling
#atix #osad2017
Aufbau einer Clusterumgebung
#atix #osad2017
Containercluster
▶ Docker Swarm Mode:▶ Erweiterung auf mehrere Hosts von Docker selbst
▶ Rancher:▶ Unterstützung von Docker, Kubernetes, Mesos, Docker Swarm▶ Ab Version 2.0 nur mit Kubernetes
▶ Kubernetes:▶ ursprünglich entwickelt von Google▶ Fokus auf hohe Skalierbarkeit
#atix #osad2017
Kubernetes
Kubernetes momentan als Favorit was Orchestrierung angeht:
▶ Rancher:Wechsel von Docker zu Kubernetes als Basiskomponente
▶ Red Hat:Openshift mit RHEL Atomic Host
▶ Canonical:Kubernetes mit Ubuntu Core
▶ SUSE:SUSE CaaS mit SLE MicroOS
#atix #osad2017
Aufbau einer Clusterumgebung
#atix #osad2017
Hochverfügbarkeit
HA-Umsetzung durch:
▶ 3 Master (oder mehr)
▶ Synchronisation derKon guration
▶ Node-Ausfälle automatischabfangen
▶ Container-Ausfälle durchHealthchecks abfangen
API-Server
Scheduler
Controller Manager
etcd-cluster
API-Server
Scheduler
Controller Manager
API-Server
Scheduler
Controller Manager
Master A Master B Master C
Zone 1 Zone 2 Zone 3
Nodes Nodes Nodes
#atix #osad2017
Persistenter Speicher
Daten-Container:
▶ Cluster-Storage für alle Nodeserreichbar
▶ Bereitstellung von Volumes fürContainer
▶ Wahl des Storages bei Planungder Infrastruktur berücksichtigen!
Container
Container
Container
Container
Volume
Node Node
Cluster-Storage(NFS, GlusterFS, etc.)
Master
#atix #osad2017
Registry
Zentrale Sammelstelle für Containerimages(z.B. Docker Registry, Quay, Docker Hub)
▶ Bereitstellung der Container-Images mit Versionskontrolle/Tags
▶ Intern gehostet oder öffentliche Varianten
▶ Docker Hub als zentrale öffentliche Registry
→ of zielle Images von Entwicklern
→ potentielles Sicherheitsrisiko
▶ Zerti zierte Registries wie z.B. Red Hat Container Catalog
#atix #osad2017
Kataloge/Templates
Vorkon gurierte Vorlagen:
▶ Häu g verwendeteSetups schneller zustarten
▶ Verfügbarkeit fürNicht-Admins(Selbstbedienungsportal)
Ausschnitt des Rancher-Katalogs
#atix #osad2017
RBAC
Rollenbasierte Zugriffsrechte:
▶ Rechteverwaltung für Benutzer,Gruppen, Umgebungen,Projekte
▶ Gra sche Ober äche(WebGUI)
▶ Zuweisung von Ressourcen anProjekte
A-web A-web
A-db
B-svc1
B-svc2
B-db
Node 1 Node 2
User B
Group A
#atix #osad2017
Monitoring & Logging
Mögliche Monitoring Ansätze:
▶ Verfügbarkeit der Dienste (Health-Checks)
▶ Metrics = RAM-, CPU- und Netzwerkauslastung
→ Monitoring & Alerting-Tools z.B. mit Prometheus (+ Grafana) odersysdig
Logging:
▶ Fluentd als Logging-Agent
▶ Meistens mit Elasticsearch und Kibana (ELK/EFK-Stack)
#atix #osad2017
CI/CD
Automatisiertes Bauen, Testen undAusrollen:
▶ Build über Webhooks
▶ Automatische Testläufe
▶ (Teil-)Automatisierung derLifecycles
▶ Tools: z.B. Jenkins, Drone
#atix #osad2017
Containerplattform
Hosts (Baremetal, VMs, Cloud)
Container-Clustermanagment
Orchestrierung Network/Services
Monitoring Logging
HACatalog/
Templates RBAC
Storage Registry
CI/CD + Dev-Tools
Container Container Container Container
Infrastructure
Clustering
Operations
Developers
#atix #osad2017
Containerplattform
Container Container Container Container
Infrastructure
Container-orchestration
Dev-ToolsOp-Tools
GUI
#atix #osad2017