Читать книгу Kubernetes - Kelsey Hightower - Страница 31
2.4Images in einer Remote-Registry ablegen
ОглавлениеWas nützt einem ein Container-Image, wenn es nur auf einem einzelnen Rechner verfügbar ist?
Kubernetes baut darauf auf, dass in einem Pod-Manifest beschriebene Images auf jeder Maschine im Cluster zur Verfügung stehen. Eine Möglichkeit, dieses Image auf allen Maschinen im Cluster nutzen zu können, wäre ein Export des kuard-Image und der Import auf allen anderen Maschinen im Kubernetes-Cluster. Aber das klingt doch sehr aufwendig. Es schreit geradezu nach Fehlern, Docker-Images manuell zu exportieren und zu importieren. Sag nein!
Standard in der Docker-Community ist, Docker-Images in einer Remote-Registry abzulegen. Es gibt unglaublich viele Optionen rund um Docker-Registries, und wofür Sie sich entscheiden, hängt stark davon ab, wie Ihre Sicherheitsanforderungen aussehen und welche Kollaborations-Features Sie benötigen.
Im Allgemeinen müssen Sie zunächst entscheiden, ob Sie eine private oder eine öffentliche Registry brauchen. Öffentliche Registries erlauben es jedermann, dort abgelegte Images herunterzuladen, während für private Registries eine Authentifizierung notwendig ist. Machen Sie sich also Gedanken über Ihren Use Case.
Öffentliche Registries sind super, wenn Sie Images der ganzen Welt verfügbar machen wollen, denn sie erlauben einen einfachen, nicht authentifizierten Einsatz der Container-Images. Sie können Ihre Software als Container-Image gut verteilen und haben die Sicherheit, dass die Anwender auf der ganzen Welt die gleiche Software einsetzen.
Im Gegensatz dazu ist eine private Registry gut, wenn Sie Anwendungen ablegen wollen, die nur für Ihren Service benötigt werden und die sonst niemand einsetzen soll.
Unabhängig davon brauchen Sie zum Pushen eines Image eine Authentifizierung für die Registry. Sie können das im Allgemeinen mit dem Befehl docker login erreichen, allerdings gibt es für die verschiedenen Registries Unterschiede im Detail. In den hier eingesetzten Beispielen pushen wir auf die Registry der Google Cloud Platform – die Google Container Registry (GCR). Andere Clouds, so zum Beispiel Azure oder Amazon Web Services (AWS), besitzen ebenfalls gehostete Container Registries. Für Neueinsteiger, die öffentlich lesbare Images nutzen wollen, ist der Docker Hub (https://hub.docker.com) ein guter Ausgangspunkt.
Sind Sie angemeldet, können Sie das kuard-Image taggen, indem Sie die gewünschte Docker-Registry anfügen. Sie können auch eine andere Kennung anhängen, die normalerweise für die Version oder Variante dieses Image genutzt wird, indem Sie sie durch einen Doppelpunkt (:) abtrennen:
$ docker tag kuard gcr.io/kuar-demo/kuard-amd64:blue
Dann können Sie das kuard-Image pushen:
$ docker push gcr.io/kuar-demo/kuard-amd64:blue
Jetzt steht das kuard-Image in einer Remote-Registry zur Verfügung und Sie können es über Docker deployen. Weil wir es in die öffentliche Docker-Registry geschoben haben, steht es jedermann ohne Authentifizierung zur Verfügung.