Containerplattform - Lego für DevOps · 3Master(odermehr) Synchronisationder Konguration...

19
Containerplattform Lego für DevOps Dr. Jonas Trüstedt 19.10.2017

Transcript of Containerplattform - Lego für DevOps · 3Master(odermehr) Synchronisationder Konguration...

Page 1: Containerplattform - Lego für DevOps · 3Master(odermehr) Synchronisationder Konguration Node-Ausfälleautomatisch abfangen Container-Ausfälledurch Healthchecksabfangen API-Server

ContainerplattformLego für DevOps

Dr. Jonas Trüstedt

19.10.2017

Page 2: Containerplattform - Lego für DevOps · 3Master(odermehr) Synchronisationder Konguration Node-Ausfälleautomatisch abfangen Container-Ausfälledurch Healthchecksabfangen API-Server

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

Page 3: Containerplattform - Lego für DevOps · 3Master(odermehr) Synchronisationder Konguration Node-Ausfälleautomatisch abfangen Container-Ausfälledurch Healthchecksabfangen API-Server

Vorteile von Containern

Beweggründe für den Einsatz von Containern:

▶ portabel

▶ schnell

▶ skalierbar

⇒ Container = Docker(Alternativen: rkt, Cloudfoundry, u.a.)

#atix #osad2017

Page 4: Containerplattform - Lego für DevOps · 3Master(odermehr) Synchronisationder Konguration Node-Ausfälleautomatisch abfangen Container-Ausfälledurch Healthchecksabfangen API-Server

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

Page 5: Containerplattform - Lego für DevOps · 3Master(odermehr) Synchronisationder Konguration Node-Ausfälleautomatisch abfangen Container-Ausfälledurch Healthchecksabfangen API-Server

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

Page 6: Containerplattform - Lego für DevOps · 3Master(odermehr) Synchronisationder Konguration Node-Ausfälleautomatisch abfangen Container-Ausfälledurch Healthchecksabfangen API-Server

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

Page 7: Containerplattform - Lego für DevOps · 3Master(odermehr) Synchronisationder Konguration Node-Ausfälleautomatisch abfangen Container-Ausfälledurch Healthchecksabfangen API-Server

Aufbau einer Clusterumgebung

#atix #osad2017

Page 8: Containerplattform - Lego für DevOps · 3Master(odermehr) Synchronisationder Konguration Node-Ausfälleautomatisch abfangen Container-Ausfälledurch Healthchecksabfangen API-Server

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

Page 9: Containerplattform - Lego für DevOps · 3Master(odermehr) Synchronisationder Konguration Node-Ausfälleautomatisch abfangen Container-Ausfälledurch Healthchecksabfangen API-Server

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

Page 10: Containerplattform - Lego für DevOps · 3Master(odermehr) Synchronisationder Konguration Node-Ausfälleautomatisch abfangen Container-Ausfälledurch Healthchecksabfangen API-Server

Aufbau einer Clusterumgebung

#atix #osad2017

Page 11: Containerplattform - Lego für DevOps · 3Master(odermehr) Synchronisationder Konguration Node-Ausfälleautomatisch abfangen Container-Ausfälledurch Healthchecksabfangen API-Server

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

Page 12: Containerplattform - Lego für DevOps · 3Master(odermehr) Synchronisationder Konguration Node-Ausfälleautomatisch abfangen Container-Ausfälledurch Healthchecksabfangen API-Server

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

Page 13: Containerplattform - Lego für DevOps · 3Master(odermehr) Synchronisationder Konguration Node-Ausfälleautomatisch abfangen Container-Ausfälledurch Healthchecksabfangen API-Server

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

Page 14: Containerplattform - Lego für DevOps · 3Master(odermehr) Synchronisationder Konguration Node-Ausfälleautomatisch abfangen Container-Ausfälledurch Healthchecksabfangen API-Server

Kataloge/Templates

Vorkon gurierte Vorlagen:

▶ Häu g verwendeteSetups schneller zustarten

▶ Verfügbarkeit fürNicht-Admins(Selbstbedienungsportal)

Ausschnitt des Rancher-Katalogs

#atix #osad2017

Page 15: Containerplattform - Lego für DevOps · 3Master(odermehr) Synchronisationder Konguration Node-Ausfälleautomatisch abfangen Container-Ausfälledurch Healthchecksabfangen API-Server

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

Page 16: Containerplattform - Lego für DevOps · 3Master(odermehr) Synchronisationder Konguration Node-Ausfälleautomatisch abfangen Container-Ausfälledurch Healthchecksabfangen API-Server

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

Page 17: Containerplattform - Lego für DevOps · 3Master(odermehr) Synchronisationder Konguration Node-Ausfälleautomatisch abfangen Container-Ausfälledurch Healthchecksabfangen API-Server

CI/CD

Automatisiertes Bauen, Testen undAusrollen:

▶ Build über Webhooks

▶ Automatische Testläufe

▶ (Teil-)Automatisierung derLifecycles

▶ Tools: z.B. Jenkins, Drone

#atix #osad2017

Page 18: Containerplattform - Lego für DevOps · 3Master(odermehr) Synchronisationder Konguration Node-Ausfälleautomatisch abfangen Container-Ausfälledurch Healthchecksabfangen API-Server

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

Page 19: Containerplattform - Lego für DevOps · 3Master(odermehr) Synchronisationder Konguration Node-Ausfälleautomatisch abfangen Container-Ausfälledurch Healthchecksabfangen API-Server

Containerplattform

Container Container Container Container

Infrastructure

Container-orchestration

Dev-ToolsOp-Tools

GUI

#atix #osad2017