Podman vs Docker

Als ich über Podman las, habe ich mir immer die Frage gestellt, wieso hat Redhat ihr eigenes Projekt gemacht, das ähnlich wie Docker ist, anstatt Pull Requests mit Verbesserungen an Docker zu schicken? Die Antwort kam mit der Geschichte von Skopeo.

Skopeo :

Skopeo ist die Inspiration und der Anfang von Podman. Skopeo bedeutet “Remote-Suchen” in griechischer Sprache. Das Redhat-Team hat sich gefragt, wieso zuerst ein Image mit hunderten von MB von der Registery gezogen werden muss, um nachschauen zu können, ob man das gewollte Image hat? Wenn ja, behält man es und wenn nein, schmeißt man es weg. Aufgrund dessen hat Redhat ein Pull Request an Docker-Project geschickt. Das Docker-Team hat verweigert die Pull Request anzunehmen und hat gemeint, das schadet dem API und dem CLI von Docker. Deshalb soll das Redhat-Team sein eigenes Tool entwickeln. So kamen Skopeo und die nachträglichen Gedanken von Podam-Project zur Welt. Skopeo bot am Anfang die Möglichkeit die JSON Datei von einem Image herunterzuladen. Scopeo kann mittlerweile folgendes: Images pullen, pushen, Kopieren zwischen Registerys ohne dazwischen lokal pullen zu müssen. Alles passiert ohne Root-Rechte.

$ mkdir fedora-24
$ skopeo copy docker://fedora:24 dir:fedora-24
$ tree fedora-24
fedora-24
├── 7c91a140e7a1025c3bc3aace4c80c0d9933ac4ee24b8630a6b0b5d8b9ce6b9d4.tar
├── f9873d530588316311ac1d3d15e95487b947f5d8b560e72bdd6eb73a7831b2c4.tar
└── manifest.json

Woher kommt der Name

Der Name Podman ist ein Kürzel für Pod Manager. Die Container-Orchestrierung Kubernetes hat den Begriff Pod geprägt. Er beschreibt eine Gruppe von Containern, die sich bestimmte Ressourcen teilen und nicht völlig isoliert voneinander laufen. Während Docker Pods nur indirekt über Kubernetes unterstützt wird, sind sie ein integraler Bestandteil von Podman. Eine Gruppe von Robben bedeutet “pod”, deshalb hat sich Redhat für drei Robben als Logo für Podman entschieden.

Ein Infra-Container verrichtet keine Arbeit, sorgt aber dafür, dass bestimmte Ressourcen des Pods wie Namespaces, CGroups und Netzwerk-Ports am Leben bleiben. Obwohl Podman dem Fork-Exec-Modell folgt und damit nicht als Server läuft, benötigen wir dennoch einen Prozess, der Container überwacht, um etwa Logs und Exit-Codes zu sichern. Dies ist die Aufgabe von Conmon, ein kleines, in C geschriebenes Monitoring-Werkzeug, dass jedem Container angehängt wird. Neben dem Monitoring hält Conmon das Terminal des Containers offen, um per podman exec zu einem späteren Zeitpunkt das Terminal verwenden zu können.

Aus der Grafik ist ebenfalls die runc zu entnehmen. Runc ist für die Ausführung eines Container-Prozesses zuständig und implementiert die Runtime-Spezifikation der OCI (Open Containers Initiative). Redhat, IBM, Google, Microsoft, Docker und andere Unternehmen haben sich 2015 ausgetauscht und definiert ” was ein Image eines Containers bedeutet und wie dies ausschauen soll”. Die Einigung haben sie als Standards für den Image-Aufbau für die Industrie genommen und OCI (Open Containers Initiative) genannt.

(mehr …)

Afeef Ghannam
Afeef Ghannam
Junior Consultant

Afeef macht seit September 2017 eine Ausbildung zum Fachinformatiker für Systemintegration bei NETWAYS. Nachdem der gebürtige Syrer erfolgreich Deutsch gelernt hat, stellt er sich jetzt der Herausforderung Programmiersprache. Neben der IT schätzt er vielfältiges Essen. Sein Motto lautet يد واحدة لا تصفق لوحدها , was so viel bedeutet wie „Eine Hand wird nie allein klatschen“.

Config Management Camp Ghent 2019

Ich habe dieses Jahr die erste Gelegenheit bekommen, mich mit meinen Kollegen und meinem Chef am Configuration Management Camp im Ghent zwischen 4. und 6. Februar zu beteiligen. Wir sind am 3. Februar am Abend in Ghent angekommen und durch die Stadt spazieren gegangen. Ghent hat uns sehr beeindruckt: Nicht nur die Sauberkeit der Straßen, sondern auch die Verbindung von alten und neuen Gebäuden haben Ghent besonders schön wirken lassen.

DevOps und Konfigurationsmanagement

Aber der Höhepunkt war das Camp: Es gab fast 1000 Teilnehmer aus der ganzen Welt. Die Vorträge waren sehr informativ und gingen hauptsächlich um DevOps und Konfigurationsmanagement ( Puppet, Ansible, Chef, Foreman). Viele Referenten haben sowohl ihre Erfahrungen sowie zuletzt aufgekommene und gelöste Probleme in ihrer Firma geteilt, als auch neue Features im Automation- und Konfigurationsmanagement-Feld vorgestellt. Am dritten Tag nahm ich mit meinem Kollegen und Ausbilder auf dem Foreman Construction Day Workshop teil. Wir haben uns in Gruppen praktisch mit “Foreman” beschäftigt. Am Ende des Tages haben einige Foreman-Entwickler und Teilnehmer über Wünsche, Verbesserungen und kommende Features gesprochen.

Ich empfehle jedem, der Interesse am Konfigurationsmanagement hat, das nächste Camp zu besuchen und belgische Waffeln und Bier auf jeden Fall zu probieren. Die sind sehr, sehr lecker.

 

 

 

 

 

 

 

Afeef Ghannam
Afeef Ghannam
Junior Consultant

Afeef macht seit September 2017 eine Ausbildung zum Fachinformatiker für Systemintegration bei NETWAYS. Nachdem der gebürtige Syrer erfolgreich Deutsch gelernt hat, stellt er sich jetzt der Herausforderung Programmiersprache. Neben der IT schätzt er vielfältiges Essen. Sein Motto lautet يد واحدة لا تصفق لوحدها , was so viel bedeutet wie „Eine Hand wird nie allein klatschen“.

Portainer

Übersicht für Docker

Docker ist eine Open Source Lösung, welche eine sehr effiziente und einfache Möglichkeit bietet, deine App als Container problemlos zum Laufen zu bringen bei verschiedenen Umgebungen. Wer mehr über Docker erfahren will, kann den vorherigen Artikel durchlesen. Wir als Netways GmbH arbeiten seit langem mit Docker und bieten Hostings für Ihre gewünschte Umgebung. Als erfolgreiches Beispiel für Docker sind die Apps, die wir durch NWS anbieten.

Eine kleine Wissensrunde über Portainer

Portainer ist ein Container von Docker-Hub, welcher eine Web-Management-Schnittstelle darstellt, die es uns ermöglicht, Docker grafisch zu betreiben.
docker run -d -p 9000:9000 --name=portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

Was kann man mit Portainer zaubern ?

  • Container starten, stoppen, killen, neustarten, löschen, addieren etc…
  • Images aufbauen, löschen, an eigens Konto auf Docker Hub oder an selber konfigurierte Registry exportieren und importieren.
  • Services auf einem Cluster “Swarm” als Hochverfügbarkeit hinzufügen oder löschen. Wir werden mehr über Swarm im nächsten Abschnitt erfahren!
  • Stacks addieren und löschen. Stacks sind Gruppen von Services, die mit einander kommunizieren und am Ende eine App liefern wie zum Beispiel wordpress mit Datenbank.
  •  Administrator oder normale User hinzufügen und zu einem bereitgestelltem Team zuweisen.
  • Zugreifen und managen von Docker-Endpoints. Dazu gibt es zwei Möglichkeiten, entweder erstellen Sie eine Gruppe, weisen Docker-Endpoint/s zu ihr zu und geben Zugriffsrechte für Benutzer oder Team/s auf diese Gruppe, oder Sie geben Rechte direkt im Endpoint-Menü für Benutzer oder Team/s für jeden einzigen Docker-Endpoint .
  •  Eigne Registry anbinden und Zugriffe nach Benutzer oder Team vergeben. Allerdings können Sie Ihre Images nicht durchsuchen. Das heißt der Name des Images muss bekannt sein, bevor ein Container gestartet werden kann.
  • Authentifizierung lokal konfigurieren oder vom LDAP Server ziehen.
  • Einen Überblick über die Swarm “Cluster” Umgebung verschaffen z.B wie viel Leistung bietet das Cluster und welche Container laufen auf welcher Docker Engine. Außerdem können Sie die Availability von einer Docker-Instance auf active, pause oder drain setzen. Dies ist sehr hilfreich bei einem Update oder Backup. Bei active ist Docker immer bereit Tasks von einem Service anzunehmen. Bei Pause akzeptiert Docker keine Tasks mehr. Bei drain werden alle Tasks gestoppt und von anderen Nodes im Swarm übernommen.
Portainer kann auch Infos von einem Swarm visualisieren.

Was ist Swarm ?

Swarm oder Cluster entstehen einfach aus Manager/n und Worker/n, auf denen Docker läuft. Das Hauptziel von Swarm ist die Hochverfügbarkeit und Lastverteilung. Manager können alles konfigurieren und  managen, allerdings sind Worker nur dafür da, die Last zu vermindern und Tasks zum laufen zu bringen. Wenn ein Service bei Default auf dem ganzen Swarm verteilt wird,  können Sie entweder im docker-compose.yml einen Key definieren auf welchen Nodes die Services laufen sollen, oder den Service auf dem ganzen Swarm verteilt lassen. Von einem Swarm dürfen maximal (N-1)/2 Manager ausfallen, ansonsten funktioniert kein Swarm-Befehl bis die fehlenden Manager wieder up sind oder ein neuer Cluster erzwungen wird.
docker swarm init --force-new-cluster --advertise-addr "IP-Adresse von manager"
Trotz des neuen Cluster-Aufbaus synchronisieren sich die wieder up Server mit dem Swarm ganz normal. Ich würde gerne ein Beispiel von einer Swarm-Konfiguration von zwei Managern und einem Worker vorstellen.




Wie kann portainer swarm managen ?

Portainer kann andere Manger in Swarm als Endpoint betreiben, wenn ein overlay Network eingerichtet ist, auf dem portainer_agent als Service läuft.
docker network create --driver overlay --attachable portainer_agent_network
docker service create \
--name portainer_agent \
--network portainer_agent_network \
--publish mode=host,target=9001,published=9001 \
-e AGENT_CLUSTER_ADDR=192.168.56.150 \
--mode global \
--mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock \
--mount type=bind,src=//var/lib/docker/volumes,dst=/var/lib/docker/volumes \
portainer/agent

Für jeden neuen Agent muss ein neuer Service auf dem Overlay Netwok zum laufen gebracht werden mit neuem Namen, veröffentlichen Port und Adresse. Ansonsten bekommt man einen Duplikatfehler.


Für Leser, die sich für Portainer begeistert haben, gibt es eine Demo auf http://demo.portainer.io
Benutzername : admin
Passwort : tryportainer
Hinweis: Das Cluster wird alle 15 Minuten zurückgesetzt.
Ich hoffe der Artikel hat Ihnen weiter geholfen 🙂

Afeef Ghannam
Afeef Ghannam
Junior Consultant

Afeef macht seit September 2017 eine Ausbildung zum Fachinformatiker für Systemintegration bei NETWAYS. Nachdem der gebürtige Syrer erfolgreich Deutsch gelernt hat, stellt er sich jetzt der Herausforderung Programmiersprache. Neben der IT schätzt er vielfältiges Essen. Sein Motto lautet يد واحدة لا تصفق لوحدها , was so viel bedeutet wie „Eine Hand wird nie allein klatschen“.

NETWAYS stellt sich vor – Afeef Ghannam

Name: Afeef Ghannam
Alter: 29
Position bei NETWAYS:
Junior Consultant
Ausbildung: Fachinformatiker, Richtung System-Integration
Bei NETWAYS seit: September 2017
Wie bist du zu NETWAYS gekommen und was genau gehört zu Deinem Aufgabenbereich?
Vor dreieinhalb Jahren hatte ich als Syrer die Gelegenheit, mir ein neues Leben in Deutschland aufzubauen. Zunächst habe ich Deutsch gelernt, da Sprache der Schlüssel zu fast allem ist. Im September 2017 habe ich mich dann dazu entschlossen, eine Ausbildung bei NETWAYS als Fachinformatiker, Richtung System-Integration, anzutreten. Wir arbeiten daran, neue Projekte auf den Weg zu bringen und lernen in Schulungen Programme kennen wie beispielsweise Puppet oder Iciniga 2.
Was macht Dir an Deiner Arbeit am meisten Spaß?
Meiner Meinung nach gibt es im Leben immer wieder neue Herausforderungen, aktuell etwa das Lernen der Programmiersprache. Die Umgebung spielt eine große Rolle, wenn es darum geht, diese zu meistern. Bei NETWAYS motivieren mich das lockere Ambiente und die ständige Unterstützung meiner Kollegen. Sie motivieren mich, Gas zu geben und nie aufzugeben.
Welche größeren, besonders interessanten Projekte stehen künftig an?
Wir konfigurieren derzeit eine Box. Die ist wie ein kleiner Computer, auf dem ein Linux-Betriebssystem läuft, das mit Web Admin zu betreiben ist. Auf dieser Box soll auch Icinga zum Laufen gebracht werden, um Server zu überwachen. Wir sind gerade mittendrin in diesem Projekt und ich bin sehr gespannt, wie es weiter geht.
Was machst Du, wenn Du mal nicht bei NETWAYS bist?
Neben der IT schätze ich vielfältiges Essen. Ich mag es sehr gern, gemeinsam zu kochen. Mein Motto ist يد واحدة لا تصفق لوحدها. Wörtlich übersetzt heißt das: „Eine Hand wird nie allein klatschen“.
Wie geht es in Zukunft bei Dir weiter?
Ich freue mich, wenn ich weiter bei NETWAYS arbeiten und noch mehr lernen kann.

Afeef Ghannam
Afeef Ghannam
Junior Consultant

Afeef macht seit September 2017 eine Ausbildung zum Fachinformatiker für Systemintegration bei NETWAYS. Nachdem der gebürtige Syrer erfolgreich Deutsch gelernt hat, stellt er sich jetzt der Herausforderung Programmiersprache. Neben der IT schätzt er vielfältiges Essen. Sein Motto lautet يد واحدة لا تصفق لوحدها , was so viel bedeutet wie „Eine Hand wird nie allein klatschen“.

Azubiprojektwoche 2018

Ooups, this gallery does not have any images...

Wir, die 8 NETWAYS Azubis, haben wie jedes Jahr ein kleines Projekt umgesetzt. Und zwar in einer Woche und mit einem bestimmten Budget. Zuerst haben wir uns überlegt, welches Projekt Spaß macht und für uns nützlich sein kann.
Wir haben uns dann für ein Online-Spiel mit Fragen zur Allgemeinbildung entschieden. Über den Nutzen lässt sich streiten, aber das es Spass macht war klar. Anschließend haben wir uns in drei Gruppen geteilt.

  • In der erster Gruppe  (Die Techniker) waren Noah und Philipp mit der Programmierung ( Node.js, socket.io beschäftigt
  • In der Zweiter Gruppe (Content-Gruppe) , waren Nicole, Feu, Lukas, Killian und ich. Wir haben die Fragen und Antworten vorbereitet
  • Ufuk hat sich um Media und Präsentation gekümmert 

Damit die Präsentation vor dem Rest der Firma etwas unterhaltsamer ist, haben wir uns dafür entschieden, eine kleine Party und Präsentation am Ende des Projektes zu machen. Lukas und ich sorgten für Catering und haben für die Kolleginnen und Kollegen gekocht.


Darüber hinaus hat Nicole das Projekt vor den NETWAYS Mitarbeitern präsentiert. Da wir Open Source mögen und damit arbeiten, hat Noah den Quelltext unter diesem Link zur Verfügung gestellt https://github.com/N-o-X/GraddlerWars .
Ein Paar Fotos und eine Video lassen diese schöne und gemeinsame Zeiten nicht vergessen.

 

Afeef Ghannam
Afeef Ghannam
Junior Consultant

Afeef macht seit September 2017 eine Ausbildung zum Fachinformatiker für Systemintegration bei NETWAYS. Nachdem der gebürtige Syrer erfolgreich Deutsch gelernt hat, stellt er sich jetzt der Herausforderung Programmiersprache. Neben der IT schätzt er vielfältiges Essen. Sein Motto lautet يد واحدة لا تصفق لوحدها , was so viel bedeutet wie „Eine Hand wird nie allein klatschen“.