Portainer ist ein mächtiges Tool, das alle Funktionen von Docker grafisch darstellt und vereinfacht. Dabei bietet Portainer über die von Docker bekannten Funktionen hinaus, noch einige weitere Features, welche die Verwaltung von Docker Containern noch einfacher machen.
Wie bereits im vorherigen Blogpost erwähnt, ist Portainer ein mächtiges Tool, das alle Funktionen von Docker grafisch darstellt und vereinfacht. Dabei bietet Portainer über die von Docker bekannten Funktionen hinaus, noch einige weitere Features, welche die Verwaltung von Docker Containern noch einfacher machen.
In diesem Blogpost möchte ich fünf dieser Features vorstellen.
Bei den Features handelt es sich nicht unbedingt um die wichtigsten Features, sondern um die Features, welche ich am interessantesten finde.
1. Docker Environments
Portainer bietet die Möglichkeit, mehrere Docker Environments oder auch Kubernetes Environments (aber dazu in Punkt 5 mehr) zu verwalten.
Dies ist besonders für Entwickler und Systemadministratoren wichtig, die mit verschiedenen Docker-Installationen arbeiten.
Mit Portainer können Benutzer mehrere Docker-Hosts hinzufügen und verwalten, die auf verschiedenen VMs oder Servern laufen.
Dadurch muss man nicht mehr zwischen den Systemen wechseln und kann bequem über die Portainer GUI zwischen den verschiedenen Docker Hosts wechseln.
Neben einer höheren Flexibilität und einer verbesserten Skalierbarkeit ist meiner Meinung nach vor allem die Möglichkeit, Systeme fachlich zu trennen, ein großer Vorteil.
Hierdurch kann beispielsweise Abteilung A ein Environment besitzen und Abteilung B ein anderes.
Entwicklern kann somit extrem geholfen werden, sich zurechtzufinden und die Übersicht zu behalten.
2. Zugriffskontrolle
Docker bietet von Haus aus keine Möglichkeit, um Nutzer und Gruppen zu verwalten und diesen Rechte zuzuweisen. Portainer nimmt sich dieser Aufgabe an und bietet eine einfache Möglichkeit.
Dabei können Nutzer und Teams angelegt werden, denen dann Rechte zugewiesen werden können.
In diesem Beispiel wurde ein Team Development angelegt, die Rechte, welches das Team besitzt, werden an einer anderen Stelle zugewiesen.
Im 2. Schritt wird ein neuer Nutzer angelegt, welcher dem Team Development zugeordnet wird.
Schaut man sich nun die Teamdetails an, kann man sehen, welche User bereits dem Team zugewiesen wurden und welche User noch hinzugefügt werden können. Rechts sieht man den eben erstellten testuser, welcher dem Team development zugeordnet wurde. Links zu sehen ist der testuser2, welcher noch nicht dem Team zugewiesen wurde.
Nun haben wir zwar Nutzer und Teams angelegt, aber noch keine Rechte zugeordnet. Dies geschieht im nächsten Schritt.
Dies kann für jedes Environment vorgenommen werden.
Schauen wir uns das Ganze an unserem Beispiel an.
Über die Environmenteinstellungen können wir nun die Zugriffsrechte verwalten.
Einmal ein Environment ausgewählt, können unter dem Punkt Create access sowohl Teams als auch Nutzer ausgewählt werden, um diesen eine Rolle zuzuweisen.
Dabei stehen folgende Rollen zur Verfügung:
Rolle
Beschreibung
Environment administrator
Full control of all resources in an environment
Operator Operational
control of all existing resources in an environment
Helpdesk
Read-only access of all resources in an environment
Standard user
Full control of assigned resources in an environment
Read-only user
Read-only access of assigned resources in an environment
Natürlich können noch mehr feingranularere Rechte vergeben werden, aber für die meisten Anwendungsfälle reichen die bis hierhin gezeigten Einstellungsmöglichkeiten aus, um die Zugriffskontrolle zu verwalten.
3. CI/CD Möglichkeiten
Beim Anlegen eines Stacks bietet Portainer die Möglichkeit, die Stacks automatisch zu aktualisieren, wenn es beispielsweise eine neuere Version eines Images gibt.
Ist das Image als latest getagged, wird das Image automatisch aktualisiert, wenn eine neue Version verfügbar ist.
Neben der automatischen Aktualisierung von Images bietet Portainer auch die Möglichkeit, die Stacks automatisch zu aktualisieren, wenn sich die Konfiguration ändert.
Entweder durch einen Webhook oder durch einen Polling-Intervall kann Portainer überprüfen, ob es aktuellere Versionen gibt.
Sollte es eine neuere Version geben, wird diese automatisch ausgerollt.
4. Monitoring
Neben den bisher genannten Features bietet Portainer auch basic Monitoring Funktionen zum Überwachen der Docker Container.
Metriken wie Memory usage, CPU usage, Network usage und I/O usage werden angezeigt.
Aktuelle bietet Portainer noch keine Möglichkeit, die Metriken zu exportieren oder Checks durchzuführen. Hierfür würde ich eher zu Grafana + Prometheus raten.
Trotzdem ist es eine nette Funktion, um einen schnellen Überblick über die aktuelle Auslastung zu bekommen.
5. Kubernetes
Das letzte und vielleicht wichtigste Feature ist die Möglichkeit, neben Docker, Docker Swarm auch Kubernetes zu verwalten.
Kubernetes ist immer das Erste, an das man denkt, wenn es um Container Orchestrierung geht. Es ist der Big Player in diesem Bereich und wird von vielen Unternehmen eingesetzt.
Das Problem dabei ist nur, dass Kubernetes nicht gerade einfach zu bedienen ist und auch nicht immer unbedingt benötigt wird.
Der große Vorteil von Portainer an dieser Stelle ist, dass es mit einem wachsen kann. Das heißt, ich kann mit Docker Standalone anfangen, um meine Container zu verwalten, kann dann vielleicht auf Docker Swarm umsteigen, um nun mit Rolling Updates meine Services zu verwalten und wenn ich dann Kubernetes benötige, kann ich auch dieses mit Portainer verwalten.
Dies ist aus meiner Sicht ein riesen Mehrwert, da ich mich als Unternehmen nicht auf eine Technologie festlegen muss, sondern mit Portainer die Möglichkeit habe mitzuwachsen.
Hosten Sie Ihre Apps bei ayedo
Profitieren Sie von skalierbarem App Hosting in Kubernetes, hochverfügbarem Ingress Loadbalancing und erstklassigem Support durch unser Plattform Team. Mit der ayedo Cloud können Sie sich wieder auf das konzentrieren, was Sie am besten können: Software entwickeln.
Wer Anwendungen produktiv betreibt, braucht keine schönen Dashboards, sondern harte Daten. Performance-Probleme entstehen nie dann, wenn Zeit für Debugging ist. Sie kommen genau dann, wenn Systeme …
Die Frage stellt sich immer wieder. Entwicklerteams liefern Features, optimieren Releases, bauen saubere Architekturen — und dann hängen sie trotzdem noch in der Infrastruktur. Kubernetes-Cluster …
Die meisten IIoT-Projekte scheitern nicht an den Maschinen. Die Sensorik läuft. Die Steuerungen liefern Daten. Die Netzwerke übertragen Pakete. Das Problem beginnt eine Ebene höher: Die Daten landen …
Softwareentwicklung endet nicht beim Code Wer heute Applikationen für Kunden entwickelt, steht schnell vor dem nächsten Thema: Wie wird die Software produktiv betrieben? Wo laufen Staging und …
Warum IT und OT zusammenwachsen müssen In modernen Industrieumgebungen entstehen an der Schnittstelle zwischen Produktion und Unternehmens-IT zunehmend komplexe Datenströme. Produktionsanlagen, …
Interessiert an weiteren Inhalten? Hier gehts zu allen Blogs →
Noch Fragen? Melden Sie sich!
Unsere DevOps-Experten antworten in der Regel innerhalb einer Stunde.
Zu Gen-Z für E-Mail? Einfach mal Discord versuchen. Unter +49 800 000 3706 können Sie unter Angabe Ihrer Kontaktdaten auch einen Rückruf vereinbaren. Bitte beachten Sie, dass es keine Möglichkeit gibt, uns telefonisch direkt zu erreichen. Bitte gar nicht erst versuchen. Sollten Sie dennoch Interesse an synchroner Verfügbarkeit via Telefon haben, empfehlen wir Ihnen unseren Priority Support.