Harbour - eine Registrierung für sofort einsatzbereite Docker-Container

Am 31. Juli kündigte CNCF die Annahme eines neuen Open Source-Projekts an, das als „Cloud Native Registry“ in seiner Sandbox (dh zum frühesten Zeitpunkt der Unterstützung), Harbour, bezeichnet wird . Auf seiner Website erklären sie uns, dass das Produkt erstellt wurde, um Bilder von Docker-Containern in einer sicheren Umgebung zu verwalten.



Es scheint, dass es bereits eine Docker-Registrierung gibt (oder beispielsweise Quay von CoreOS), aber es ist offensichtlich, dass neue Lösungen nicht erscheinen und nicht einfach zu solchen Produktionsanwendungen reifen - insbesondere Open Source-Lösungen ... und noch mehr dazu CNCF. Dieser Übersichtsartikel soll Aufschluss über die Gründe für das Erscheinungsbild von Harbour, seine Hauptmerkmale und Merkmale geben.

Der erste Schwerpunkt von Harbour: Netzwerk und Unternehmen


Die Geschichte des Projekts beginnt im Jahr 2016, im März fand die erste Veröffentlichung statt - 0.1.0. Hinter seiner Erstellung standen VMware- Ingenieure, die das Projekt als "Registrierungsserver der Enterprise-Klasse" bezeichneten, der auf der Grundlage der Docker-Entwicklung "die Funktionen der Docker-Registrierung erweitert, indem sie weitere Funktionen hinzufügt, die normalerweise vom Unternehmen benötigt werden".

Zu dieser Zeit lag der Schwerpunkt mehr auf der Möglichkeit, diese Registrierung im Unternehmen zu verwenden, insbesondere um die Produktivität durch Speichern von Bildern im Unternehmensnetzwerk zu verbessern: „[Harbour] ist sehr nützlich für Containernutzer, die keine gute Internetverbindung haben. Zum Beispiel verbessert Harbour die Produktivität chinesischer Entwickler, indem es die Schwierigkeit beseitigt, Bilder aus dem öffentlichen Internet herunterzuladen “ (von README zu Harbour 0.1.0 ) .

Hinweis : Die Ausrichtung von Harbour auf China, die durch das Vorhandensein einer angemessenen Lokalisierung aus den ersten Veröffentlichungen bestätigt wurde, war kein Zufall: Die Erstellung des Projekts als solches wurde von der chinesischen Abteilung des Unternehmens (VMware China R & D) initiiert .

Harbour wurde von Anfang an in der Sprache Go geschrieben und unter der Apache-Lizenz 2.0 lizenziert. Wenn wir über die funktionalen Fähigkeiten des Projekts sprechen, haben die Autoren in der ersten Version einige relevante Merkmale bis heute festgelegt, wie zum Beispiel:

  • rollenbasierte Zugriffssteuerung ( RBAC , mit der Sie Benutzer und Repositorys als „Projekte“ organisieren und Bildern in diesen Projekten unterschiedliche Rechte gewähren können) sowie LDAP- und AD-Unterstützung für die Benutzerauthentifizierung;
  • Webbasierte Benutzeroberfläche zum Anzeigen von Repositorys, Suchen nach Repositorys und Verwalten von Projekten;
  • Prüfung aller Operationen;
  • REST-API für die Verwaltung.


Projektmanagement in der Harbor Web-Benutzeroberfläche

Hafenentwicklung: Sicherheit


Im Jahr 2017 fand VMware eine logische Anwendung für sein neues Projekt - die Integration mit anderen Unternehmenslösungen für Container. Insbesondere vSphere Integrated Containers (VIC), bei denen es sich nicht um vollwertige PaaS (Platform as a Service) oder CaaS (Containers as a Service) handelt, die aktiv entwickelt wurden, boten eine Grundlage für die Arbeit mit Containern. Heute ist beispielsweise die vSphere Integrated Containers Engine , die Container-Laufzeit für vSphere, daraus gewachsen. Und so beschrieb der VMware (Nate Reid) -Lösungsingenieur VIC zu dieser Zeit:

„VIC verwendet das Framework eines einzelnen Docker-Hosts und skaliert es auf mehrere ESXi-Hosts. Seine vorgeschlagene Architektur für die Orchestrierung ähnelt Swarm, Kubernetes (K8s) und Mesos. Es gibt jedoch einige Nuancen, und es gibt keine Aufgabe, alle diese Produkte zu ersetzen. VIC bietet ein Netzwerk für Container, ermöglicht das Abrufen ihrer Namen, bietet RBAC, ein HTML5-Kontrollfeld (Admiral; lesen Sie mehr darüber in unserer GUI-Überprüfung für Docker - ca. Übersetzung ), eine Registrierung auf Unternehmensebene (Harbour), viele ähnliche Docker-Befehle, Integration mit vSphere-Tools. [..]

Wenn Sie Kubernetes Orchestrierungsunterstützung und / oder VMware IaaS-basierte CI / CD-Funktionen von VMware benötigen, sollten Sie sich VMware PKS und / oder Pivotal Cloud Foundry ansehen. Dies sind bereits CaaS- und PaaS-Lösungen. “

Gleichzeitig gewinnt das Thema Sicherheit für Docker-Images zunehmend an Bedeutung. Anfang 2018 zitieren Ingenieure der Schwesterfirma von Pivotal für VMware eine Studie, nach der selbst die neuesten Versionen der auf dem Docker Hub veröffentlichten Bilder (sowohl von der Community als auch von Beamten) zahlreiche Sicherheitslücken aufweisen (durchschnittlich 70 pro Bild).

Zu diesem Zeitpunkt erschien Harbour mit seiner neuen sicherheitsorientierten Mission und bereits auf dem oben genannten „Boden“ von CaaS - im Pivotal Container Service (PKS) :

"Dies [Schwachstellen und andere Sicherheitsprobleme in Docker-Images] ist der Grund, warum wir so viele nützliche Add-Ons hinzugefügt haben, die PKS zuverlässig und sicher machen!" [..]

Da sich Kubernetes allein nicht mit solchen Problemen befasst [sicheres Image-Management], haben wir mit VMware-Freunden zusammengearbeitet, um Harbour in PKS aufzunehmen. “

Was ist Harbour so sicher (zusätzlich zu dem RBAC und dem Audit, die bereits im Projekt implementiert wurden)? Zwei Hauptrichtungen sind angegeben:

  1. Vulnerability Scan Zu diesem Zweck implementiert Harbor CVE aus bekannten Datenbanken (NIST NVD, Ubuntu CVE Tracker, Red Hat-Sicherheitsdaten usw.) und scannt jedes Container-Image automatisch auf seine Anwesenheit, wenn Push- und Pull-Vorgänge ausgeführt werden. Wenn eine Sicherheitsanfälligkeit gefunden wird, werden Vorgänge abhängig von den Sicherheitseinstellungen abgebrochen und das Image selbst markiert, das für den Registrierungsadministrator sichtbar ist. Um diese Gelegenheit zu nutzen, integriert sich Harbour in Clair von CoreOS.
  2. Die Unterschrift der Bilder . Es werden auch die Erfolge eines anderen Projekts verwendet - Notar (wir haben es in diesem Artikel erwähnt ) , das beim Verschieben von Bildern eine Signatur erstellt und diese Signaturen dann bei jedem Zug validiert.

Die allgemeine Anwendung von Harbour in PKS ist wie folgt:



Hafen heute


Durch das Anbieten einer Registrierung von Container-Images zur lokalen Verwendung und die Bereitstellung von Sicherheit in verschiedenen Aspekten der Arbeit mit ihnen hat sich Harbour heute zu der folgenden Architektur entwickelt, die offenbar Funktionen aus anderen Open Source-Projekten kombiniert:



Zusätzlich zu der bereits erwähnten Docker-Registrierung, Clair und Notary, die die Hauptfunktionen von Harbour implementieren, können Sie in diesem Schema auch zwei DBMS sehen:

  1. PostgreSQL ( früher war MySQL / MariaDB hier), das zum Speichern von Metadaten über Projekte, Benutzer und deren Rollen, Bilder verwendet wird;
  2. Redis - zum Speichern von Sitzungen .


Datenbanken in der Hafenarchitektur

Auf dieser Wiki-Seite , die mit der offiziellen Dokumentation des Projekts verknüpft ist, finden Sie auch einige Details zum internen Harbour-internen Gerät (es besteht jedoch der Verdacht, dass einige Details zur Architektur an einigen Stellen veraltet sein könnten) . Dort finden Sie auch Links zu Installationsanweisungen für Harbour und deren Bereitstellung in Kubernetes . Letzteres wird jedoch für veraltet erklärt (basierend auf älteren Versionen, unterstützt Clair und Notar nicht), und stattdessen wird vorgeschlagen, das Helm-Diagramm zu verwenden .

Die aktuelle Version von Harbour ist v1.5.2 und wurde Ende Juli veröffentlicht. Die Anforderungen für den Linux-Computer, auf dem die neueste Registrierungsversion installiert ist, sind Docker Version 17.03.0-ce (oder höher) und Docker Compose 1.10.0+ sowie Python und OpenSSL.

Die Unterstützung von Helm-Diagrammen scheint eine sehr interessante Neuerung für die zukünftige Version von Harbor zu sein ( v1.6.0-rc1 wurde bereits veröffentlicht): „Harbor wird ab Version 1.6.0 zu einer zusammengesetzten Cloud-nativen Registrierung, die sowohl die Bildverwaltung als auch die Diagrammverwaltung unterstützt.“ . Weitere Entwicklungspläne umfassen die OAuth 2.0-Unterstützung für die Benutzerauthentifizierung, die Bereitstellung an mehreren Standorten für Fehlertoleranz und Lastausgleich, das Sammeln von Statistiken zu Repositorys und ein Dienstprogramm für die Migration nach Harbor.

Anstelle einer Schlussfolgerung


Harbour ist ein Beispiel für ein erfolgreiches Projekt aus der modernen Cloud-Welt, das es geschafft hat, seine Nische zu finden und sich zu etablieren und gleichzeitig die Funktionen anderer Open Source-Tools zu integrieren. Ein Beweis für seinen Erfolg ist nicht nur die Aufnahme von CNCF in die Liste der Projekte, sondern auch über 5000 Sterne auf GitHub und eine ziemlich aktive Community von Entwicklern.

PS


Lesen Sie auch in unserem Blog:

Source: https://habr.com/ru/post/de419727/


All Articles