|
Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar. |
Kubernetes-Registry und Container-Image-Registry
Registries sind Kubernetes-Geheimnisse, die Anmeldeinformationen enthalten, die zur Authentifizierung bei privaten Container-Registries verwendet werden.
Das Wort "Registry" kann zwei Bedeutungen haben, je nachdem, ob es sich auf eine Container- oder Kubernetes-Registry bezieht:
-
Eine Container-Image-Registry (ehemals "Docker-Registry") enthält Container-Images, die Sie abrufen und bereitstellen können. Die Registry ist eine zustandslose, skalierbare serverseitige Anwendung, die Container-Images speichert und deren Verteilung ermöglicht.
-
Die Kubernetes-Registry ist ein Image-Pull-Geheimnis, das Ihre Bereitstellung verwendet, um sich bei einer Image-Registry zu authentifizieren.
Bereitstellungen verwenden das Kubernetes-Registry-Geheimnis, um sich bei einer privaten Image-Registry zu authentifizieren und dann ein darauf gehostetes Container-Image abzurufen.
Derzeit ziehen Bereitstellungen die Anmeldeinformationen der privaten Registry automatisch nur ab, wenn die Arbeitslast in der Rancher-Benutzeroberfläche erstellt wird und nicht, wenn sie über kubectl erstellt wird.
Erstellen einer Registry in Namespaces
|
Voraussetzung:
Sie müssen bereits eine verfügbare private Registry bereitgestellt haben. Wenn Sie eine private Registry erstellen müssen, beachten Sie die Dokumentationsseiten für Ihre jeweilige Laufzeit: |
-
Klicken Sie in der oberen linken Ecke auf ☰ > Clusterverwaltung.
-
Gehen Sie zu dem Cluster, in dem Sie eine Registry hinzufügen möchten, und klicken Sie auf Erforschen.
-
Klicken Sie in der linken Navigation entweder auf oder auf .
-
Klicken Sie auf Erstellen.
-
Klicken Sie auf Registry.
-
Geben Sie einen Namen für die Registry ein.
Kubernetes klassifiziert Geheimnisse, Zertifikate und Registries alle als Geheimnisse, und keine zwei Geheimnisse in einem Projekt oder Namespace können doppelte Namen haben. Um Konflikte zu vermeiden, muss Ihre Registry einen eindeutigen Namen unter allen Geheimnissen in Ihrem Arbeitsbereich haben.
-
Wählen Sie einen Namensraum für die Registry aus.
-
Wählen Sie die Website aus, die Ihre private Registry hostet. Geben Sie dann Anmeldeinformationen ein, die mit der Registry authentifizieren. Wenn Sie beispielsweise Docker Hub verwenden, geben Sie Ihren Docker Hub-Benutzernamen und Ihr Passwort ein.
-
Klicken Sie auf Speichern.
Ergebnis:
-
Ihr Geheimnis wird dem von Ihnen gewählten Namensraum hinzugefügt.
-
Sie können das Geheimnis in der Rancher-Benutzeroberfläche anzeigen, indem Sie entweder oder klicken.
-
Jede Arbeitslast, die Sie in der Rancher-Benutzeroberfläche erstellen, hat die Anmeldeinformationen zum Zugriff auf die Registry, wenn die Arbeitslast im Geltungsbereich der Registry liegt.
Eine Registry in Projekten erstellen
|
Voraussetzungen:
Sie müssen bereits eine verfügbare private Registry bereitgestellt haben. Wenn Sie eine private Registry erstellen müssen, beachten Sie die Dokumentationsseiten für Ihre jeweilige Laufzeit: |
Vor v2.6 mussten Geheimnisse im Projektumfang sein. Projekte sind nicht mehr erforderlich, und Sie können stattdessen den Namensraum verwenden. Infolgedessen wurde die Rancher-Benutzeroberfläche aktualisiert, um diese neue Funktionalität widerzuspiegeln. Sie können jedoch weiterhin eine projektbezogene Registry erstellen, wenn gewünscht. Befolgen Sie die folgenden Schritte, um dies zu tun:
-
Klicken Sie in der oberen linken Ecke auf ☰ > Globale Einstellungen im Dropdown-Menü.
-
Klicken Sie auf Funktionsflags.
-
Gehen Sie zum
legacyFunktionsflag und klicken Sie auf Aktivieren. -
Klicken Sie in der oberen linken Ecke auf ☰ > Clusterverwaltung.
-
Gehen Sie zu dem Cluster, in dem Sie eine Registry hinzufügen möchten, und klicken Sie auf Erforschen.
-
Klicken Sie in der linken Navigation entweder auf oder auf .
-
Klicken Sie auf Erstellen.
-
Klicken Sie auf Registry.
-
Filtern Sie in der oberen Navigationsleiste, um nur ein Projekt anzuzeigen.
-
Geben Sie einen Namen für die Registry ein.
Kubernetes klassifiziert Geheimnisse, Zertifikate und Registries alle als Geheimnisse, und keine zwei Geheimnisse in einem Projekt oder Namespace können doppelte Namen haben. Um Konflikte zu vermeiden, muss Ihre Registry einen eindeutigen Namen unter allen Geheimnissen in Ihrem Arbeitsbereich haben.
-
Wählen Sie einen Namensraum für die Registry aus.
-
Wählen Sie die Website aus, die Ihre private Registry hostet. Geben Sie dann Anmeldeinformationen ein, die mit der Registry authentifizieren. Wenn Sie beispielsweise Docker Hub verwenden, geben Sie Ihren Docker Hub-Benutzernamen und Ihr Passwort ein.
-
Klicken Sie auf Speichern.
Ergebnis:
-
Ihr Geheimnis wird dem einzelnen Projekt hinzugefügt, das Sie gewählt haben.
-
Sie können das Geheimnis in der Rancher-Benutzeroberfläche anzeigen, indem Sie entweder oder klicken.
-
Jede Arbeitslast, die Sie in der Rancher-Benutzeroberfläche erstellen, hat die Anmeldeinformationen zum Zugriff auf die Registry, wenn die Arbeitslast im Geltungsbereich der Registry liegt.
|
Projektbezogene Registries im lokalen Cluster sind nur sichtbar, wenn ein einzelnes Projekt ausgewählt ist. |
Verwendung einer privaten Registry
Sie können eine Arbeitslast mit einem Bild aus einer privaten Registry über die Rancher-Benutzeroberfläche oder mit kubectl bereitstellen.
Verwendung der privaten Registry mit der Rancher-Benutzeroberfläche
Um eine Arbeitslast mit einem Bild aus Ihrer privaten Registry bereitzustellen,
-
Klicken Sie in der oberen linken Ecke auf ☰ > Clusterverwaltung.
-
Gehen Sie zu dem Cluster, in dem Sie eine Arbeitslast bereitstellen möchten, und klicken Sie auf Erforschen.
-
Klicken Sie auf Arbeitslast.
-
Klicken Sie auf Erstellen.
-
Wählen Sie den Typ der Arbeitslast aus, die Sie erstellen möchten.
-
Geben Sie einen eindeutigen Namen für die Arbeitslast ein und wählen Sie einen Namespace aus.
-
Geben Sie im Feld Container Image die URL des Pfads zum Bild in Ihrer privaten Registry ein. Wenn Ihre private Registry beispielsweise auf Quay.io ist, könnten Sie
quay.io/<Quay profile name>/<Image name>verwenden. -
Klicken Sie auf Erstellen.
Ergebnis: Ihre Arbeitslast sollte gestartet werden, sich mit den in der Rancher-Benutzeroberfläche hinzugefügten Anmeldeinformationen der privaten Registry authentifizieren und das von Ihnen angegebene Container-Image abrufen.
Verwendung der privaten Registry mit kubectl
Wenn Sie die Arbeitslast mit kubectl erstellen, müssen Sie den Pod so konfigurieren, dass seine YAML den Pfad zum Bild in der privaten Registry enthält. Sie müssen auch das Registry-Secret erstellen und referenzieren, da der Pod nur dann automatisch Zugriff auf die Anmeldeinformationen der privaten Registry erhält, wenn er in der Rancher-Benutzeroberfläche erstellt wird.
Das Secret muss im selben Namespace erstellt werden, in dem die Arbeitslast bereitgestellt wird.
Unten finden Sie ein Beispiel pod.yml für eine Arbeitslast, die ein Bild aus einer privaten Registry verwendet. In diesem Beispiel verwendet der Pod ein Bild von Quay.io, und die .yml gibt den Pfad zum Bild an. Der Pod authentifiziert sich mit der Registry unter Verwendung von Anmeldeinformationen, die in einem Kubernetes-Secret mit dem Namen testquay gespeichert sind, das in spec.imagePullSecrets im Feld name angegeben ist:
apiVersion: v1
kind: Pod
metadata:
name: private-reg
spec:
containers:
- name: private-reg-container
image: quay.io/<Quay profile name>/<image name>
imagePullSecrets:
- name: testquay
In diesem Beispiel befindet sich das Secret mit dem Namen testquay im Standard-Namespace.
Sie können kubectl verwenden, um das Secret mit den Anmeldeinformationen der privaten Registry zu erstellen. Dieser Befehl erstellt das Secret mit dem Namen testquay:
kubectl create secret docker-registry testquay \
--docker-server=quay.io \
--docker-username=<Profile name> \
--docker-password=<password>
Um zu sehen, wie das Secret in Kubernetes gespeichert ist, können Sie diesen Befehl verwenden:
kubectl get secret testquay --output="jsonpath={.data.\.dockerconfigjson}" | base64 --decode
Das Ergebnis sieht folgendermaßen aus:
{"auths":{"quay.io":{"username":"<Profile name>","password":"<password>","auth":"c291bXlhbGo6dGVzdGFiYzEyMw=="}}}
Nachdem die Arbeitslast bereitgestellt wurde, können Sie überprüfen, ob das Image erfolgreich abgerufen wurde:
kubectl get events
Das Ergebnis sollte folgendermaßen aussehen:
14s Normal Scheduled Pod Successfully assigned default/private-reg2 to minikube 11s Normal Pulling Pod pulling image "quay.io/<Profile name>/<image name>" 10s Normal Pulled Pod Successfully pulled image "quay.io/<Profile name>/<image name>"
Für weitere Informationen konsultieren Sie die Kubernetes-Dokumentation zu der Erstellung eines Pods, der Ihr Secret verwendet.