Registry-Spiegel für Container-Images verwenden

Auf dieser Seite wird erläutert, wie Sie Cluster mit Images erstellen und aktualisieren, die aus einer Registry-Spiegelung anstelle einer öffentlichen Registry wie gcr.io abgerufen wurden. Diese Funktion kann jederzeit im Clusterlebenszyklus aktiviert oder deaktiviert werden.

Diese Seite richtet sich an Operatoren und Speicherspezialisten, die Speicherleistung, ‑nutzung und ‑kosten konfigurieren und verwalten. Weitere Informationen zu gängigen Rollen und Beispielaufgaben, auf die wir in Google Cloud Inhalten verweisen, finden Sie unter Häufig verwendete GKE-Nutzerrollen und -Aufgaben.

Eine Registry-Spiegelung ist eine lokale Kopie einer öffentlichen Registry, die die Dateistruktur der öffentlichen Registry kopiert oder spiegelt. Angenommen, der Pfad zu Ihrer lokalen Registry-Spiegelung lautet 172.18.0.20:5000. Wenn containerd auf eine Anfrage zum Abrufen eines Images wie gcr.io/kubernetes-e2e-test-images/nautilus:1.0 stößt, versucht containerd, dieses Image nicht von gcr.io, sondern aus Ihrer lokalen Registry unter dem folgenden Pfad abzurufen: 172.18.0.20:5000/kubernetes-e2e-test-images/nautilus:1.0. Wenn sich das Image nicht in diesem lokalen Registry-Pfad befindet, wird das Image automatisch aus der öffentlichen Registry gcr.io abgerufen.

Die Verwendung einer Registry-Spiegelung bietet die folgenden Vorteile:

  • Schützt vor Ausfällen der öffentlichen Registry.
  • Beschleunigt die Pod-Erstellung.
  • Sie können Ihre eigenen Scans auf Sicherheitslücken durchführen.
  • Vermeidet Limits, die durch öffentliche Registries festgelegt werden, wie häufig Sie Befehle ausführen können.

Hinweis

  • In Ihrem Netzwerk muss ein Artifact Registry-Server eingerichtet sein.
  • Wenn Ihr Registry-Server ein privates TLS-Zertifikat ausführt, benötigen Sie die Datei der Zertifizierungsstelle (Certificate Authority, CA).
  • Wenn Ihr Registry-Server eine Authentifizierung benötigt, benötigen Sie die entsprechenden Anmeldedaten oder eine Docker-Konfigurationsdatei.
  • Wenn Sie eine Red Hat Quay-Registry verwenden, müssen Sie möglicherweise die Verzeichnisstruktur der lokalen Registry manuell erstellen.
  • Wenn Sie eine Registry-Spiegelung verwenden möchten, müssen Sie die Containerlaufzeit auf containerd festlegen.
  • Achten Sie darauf, dass auf Ihrer Administrator-Workstation genügend Speicherplatz für Image-Uploads vorhanden ist. Der Befehl zum Hochladen von Images, bmctl push images, dekomprimiert die heruntergeladene Image-Paketdatei und extrahiert dann alle Image-Dateien lokal, bevor sie hochgeladen werden. Für den Image-Upload benötigen Sie mindestens das Dreifache der Größe der heruntergeladenen Image-Paketdatei an Speicherplatz.

    Beispiel: Die komprimierte Datei bmpackages_1.33.0-gke.799.tar.xz belegt etwa 12 GB Speicherplatz. Sie sollten also mindestens 36 GB Speicherplatz kostenlos haben, bevor Sie die Datei herunterladen.

    Wenn Sie ein Skip Upgrade durchführen (Upgrade von zwei Neben versionen in einem einzigen Vorgang), müssen Sie Images aus Image Paketdateien für die Zielversion (N+2) und die Zwischen (N+1) Version hochladen. In diesem Beispiel benötigen Sie etwa 72 GB freien Speicherplatz für den Image-Upload. Weitere Informationen zur Zwischenversion finden Sie unter Zusätzliche Anforderung für Registry-Spiegelungen.

Alle erforderlichen Images für Google Distributed Cloud herunterladen

Laden Sie die neueste Version des bmctl-Tools und des Image-Pakets von der Downloadseite herunter.

Container-Images auf den Registry-Server hochladen

Wenn Sie mit bmctl push images Container-Images auf Ihren Repository Server hochladen, führt bmctl die folgenden Schritte in der angegebenen Reihenfolge aus:

  1. Dekomprimieren Sie eine heruntergeladene komprimierte TAR-Datei des Image-Pakets, z. B. bmpackages_1.35.0-gke.525.tar.xz in bmpackages_1.35.0-gke.525.tar.

  2. Extrahieren Sie alle Images aus der dekomprimierten TAR-Datei in ein Verzeichnis mit dem Namen bmpackages_1.35.0-gke.525.

  3. Übertragen Sie jede Image-Datei in die angegebene private Registry.

    bmctl verwendet die Werte --username und --password für die einfache Authentifizierung, um die Images in Ihre private Registry zu übertragen.

In den folgenden Abschnitten werden einige gängige Varianten des bmctl push images Befehls zum Hochladen von Images auf Ihren Repository-Server veranschaulicht.

Mit Ihrer Registry authentifizieren und das TLS-Zertifikat freigeben

Der folgende Befehl enthält die Flags --username und --password für die Nutzerauthentifizierung mit Ihrem Registry-Server. Der Befehl enthält auch das Flag --cacert zum Übergeben des CA-TLS-Zertifikats (Transport Layer Security), das für die sichere Kommunikation mit dem Registry-Server verwendet wird, einschließlich Image-Pushes und -Pulls. Diese Flags bieten grundlegende Sicherheit für Ihren Registry-Server.

Wenn für Ihren Registry-Server eine Authentifizierung erforderlich ist und Sie die Flags --username und --password nicht verwenden, werden Sie beim Ausführen von bmctl push images zur Eingabe von Anmeldedaten aufgefordert. Sie können entweder Ihr Passwort eingeben oder die Docker-Konfigurationsdatei auswählen, die die Anmeldedaten enthält.

Verwenden Sie einen Befehl wie den folgenden, um Images mit Authentifizierung und einem privaten CA-Zertifikat hochzuladen:

bmctl push images \
    --source IMAGES_TAR_FILE_PATH \
    --private-registry REGISTRY_IP:PORT \
    --username USERNAME \
    --password PASSWORD \
    --cacert CERT_PATH

Ersetzen Sie Folgendes:

  • IMAGES_TAR_FILE_PATH: der Pfad der heruntergeladenen TAR-Datei des Image-Pakets, z. B. bmpackages_1.35.0-gke.525.tar.xz.

  • REGISTRY_IP:PORT: die IP-Adresse und der Port des privaten Registry-Servers.

  • USERNAME: der Nutzername eines Nutzers mit Zugriffsberechtigungen zum Hochladen von Images auf den Registry-Server.

  • PASSWORD: das Passwort des Nutzers zur Authentifizierung beim Registry-Server.

  • CERT_PATH: der Pfad der CA-Zertifikatsdatei, wenn Ihr Registry-Server ein privates TLS-Zertifikat verwendet.

Beispiel:

bmctl push images \
    --source bmpackages_1.35.0-gke.525.tar.xz \
    --private-registry 172.18.0.20:5000 \
    --username alex --password pa55w0rd \
    --cacert /etc/pki/tls/certs/ca-bundle.crt

Images ohne Nutzerauthentifizierung oder Zertifikate hochladen

Wenn für Ihren Registry-Server keine Anmeldedaten wie ein Nutzername und ein Passwort erforderlich sind, geben Sie --need-credential=false im bmctl-Befehl an. Wenn Ihr Registry-Server ein öffentliches TLS-Zertifikat verwendet, müssen Sie das Flag --cacert nicht verwenden. Diese Art von Upload-Befehl eignet sich am besten für Testumgebungen, in denen die Sicherheit weniger wichtig ist als in der Produktion.

Verwenden Sie einen Befehl wie den folgenden, um Images ohne Authentifizierung oder ein privates CA-Zertifikat hochzuladen:

bmctl push images \
    --source IMAGES_TAR_FILE_PATH \
    --private-registry REGISTRY_IP:PORT \
    --need-credential=false

Beispiel:

bmctl push images \
    --source bmpackages_1.35.0-gke.525.tar.xz \
    --private-registry 172.18.0.20:5000 \
    --need-credential=false.

Anzahl der Threads anpassen

Der Image-Upload kann aufgrund der Größe und Anzahl der Container-Images in der TAR-Datei des Image-Pakets zeitaufwendig sein. Wenn Sie die Anzahl der parallelen Threads erhöhen, wird die Routine schneller ausgeführt. Mit dem Flag --threads können Sie die Anzahl der parallelen Threads ändern, die von bmctl push images verwendet werden.

Standardmäßig verwendet die Image-Upload-Routine 4 Threads. Wenn Ihre Image-Uploads zu lange dauern, erhöhen Sie diesen Wert. Als Benchmark: In einer Google-Testumgebung dauert das Hochladen von Images von einer Workstation mit 4 CPUs mit 8 parallelen Threads etwa 10 Minuten.

bmctl push images \
    --source IMAGES_TAR_FILE_PATH \
    --private-registry REGISTRY_IP:PORT \
    --cacert CERT_PATH \
    --threads NUM_THREADS

Ersetzen Sie NUM_THREADS durch die Anzahl der parallelen Threads, die zum Verarbeiten der Image-Uploads verwendet werden. Standardmäßig verwendet bmctl push images vier parallele Threads.

Mit dem folgenden Befehl wird die Anzahl der Threads für den Upload von 4 auf 8 erhöht, um die Upload-Zeit zu verkürzen:

bmctl push images \
    --source bmpackages_1.35.0-gke.525.tar.xz \
    --private-registry 172.18.0.20:5000 \
    --cacert ~/cert.pem \
    --threads 8

Über einen Proxy hochladen

Wenn Sie einen Proxy zum Hochladen der Images von Ihrer Workstation auf den Registry-Server benötigen, können Sie die Proxy-Details vor dem bmctl-Befehl hinzufügen:

HTTPS_PROXY=http://PROXY_IP:PORT bmctl push images \
    --source=IMAGES_TAR_FILE_PATH \
    --private-registry=REGISTRY_IP:PORT \
    --cacert=CERT_PATH

Ersetzen Sie Folgendes:

  • PROXY_IP:PORT: die IP-Adresse und der Port des Proxys.

  • IMAGES_TAR_FILE_PATH: der Pfad der heruntergeladenen TAR-Datei des Image-Pakets, z. B. bmpackages_1.35.0-gke.525.tar.xz.

  • REGISTRY_IP:PORT: die IP-Adresse und der Port des privaten Registry-Servers.

  • CERT_PATH: der Pfad der CA-Zertifikatsdatei, wenn Ihr Registry-Server ein privates TLS-Zertifikat verwendet.

Geben Sie Ihren Nutzernamen und Ihr Passwort ein, wenn Sie dazu aufgefordert werden, oder wählen Sie eine Docker-Konfigurationsdatei aus.

Mit dem folgenden Befehl werden Images über einen Proxy hochgeladen:

HTTPS_PROXY=http://10.128.0.136:3128 bmctl push images \
    --source bmpackages_1.35.0-gke.525.tar.xz \
    --private-registry 172.18.0.20:5000 \
    --cacert ~/cert.pem

Eigenen Namespace mit bmctl push images verwenden

Wenn Sie auf dem Registry-Server Ihren eigenen Namespace anstelle des Stamm-Namespace verwenden möchten, kann containerd aus diesem Namespace abrufen, wenn Sie den API-Endpunkt für Ihre private Registry im Feld registryMirrors.endpoint Ihrer Cluster-Konfigurationsdatei angeben. Der Endpunkt hat normalerweise das Format von <REGISTRY_IP:PORT>/v2/<NAMESPACE>. Weitere Informationen finden Sie im Nutzerhandbuch für Ihre private Registry. Weitere Informationen finden Sie unter Verwendung von v2 im Registry-Endpunkt.

bmctl push images \
    --source=IMAGES_TAR_FILE_PATH \
    --private-registry=REGISTRY_IP:PORT/NAMESPACE \
    --cacert=CERT_PATH

Ersetzen Sie NAMESPACE durch den Namen des Namespace auf dem Registry-Server, in den Sie Images hochladen möchten.

Wenn Sie beispielsweise nur Zugriff auf 198.51.20.1:5000/test-namespace/ haben, können Sie einen Befehl wie den folgenden verwenden, um alle Images unter dem test-namespace Namespace hochzuladen:

bmctl push images \
    --source=./bmpackages_1.35.0-gke.525.tar.xz \
    --private-registry=198.51.20.1:5000/test-namespace \
    --username=alex \
    --password=pa55w0rd \
    --cacert /etc/pki/tls/certs/ca-bundle.crt

Anschließend können Sie der Clusterkonfigurationsdatei Folgendes hinzufügen, um containerd aus dem Namespace test-namespace abrufen zu lassen:

registryMirrors:
  - endpoint: https://198.51.20.1:5000/v2/test-namespace

Weitere Informationen zum Befehl bmctl push images finden Sie in der bmctl Befehlsreferenz.

Cluster für die Verwendung einer Registry-Spiegelung konfigurieren

Sie können eine Registry-Spiegelung für einen Cluster beim Erstellen des Clusters oder bei jeder Aktualisierung eines vorhandenen Clusters konfigurieren. In den folgenden beiden Abschnitten werden die beiden Methoden zum Konfigurieren von Registry-Spiegelungen beschrieben.

Header-Abschnitt in der Clusterkonfigurationsdatei verwenden

Ab Version 1.35 können Sie Registry-Spiegelungen und private Registries für Administrator- und Nutzercluster konfigurieren oder aktualisieren, indem Sie sie im Header-Abschnitt der obersten Ebene Ihrer Clusterkonfigurationsdatei definieren. Die Konfiguration bleibt bei Aktualisierungen bestehen.

Wenn Sie bmctl update ausführen, überschreibt jede Registry-Konfiguration im Header-Abschnitt automatisch den Abschnitt spec.nodeConfig der Cluster-Konfigurationsdatei.

Für Version 1.34 und früher müssen Sie den Abschnitt nodeConfig.registryMirrors verwenden, um Registry-Spiegelungen und private Registries in Nutzerclustern anzugeben, und nicht den Header-Abschnitt, da der Header-Abschnitt bei Aktualisierungen nicht beibehalten wird.

Die folgende Beispielcluster-Konfigurationsdatei gibt an, dass Images von einer lokalen Registry-Spiegelung mit dem Endpunkt https://198.51.20.1:5000 abgerufen werden sollen. Einige der am Anfang dieser Konfigurationsdatei angezeigten Felder werden in den folgenden Abschnitten beschrieben.

# Sample cluster config with registry mirror:
---
gcrKeyPath: /bmctl/bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-gcr.json
sshPrivateKeyPath: /root/ssh-key/id_rsa
registryMirrors:
  - endpoint: https://198.51.20.1:5000
    caCertPath: /root/ca.crt
    pullCredentialConfigPath: /root/.docker/config.json
    hosts:
      - somehost.io
      - otherhost.io
---
apiVersion: v1
kind: Namespace
metadata:
  name: cluster-admin1
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: admin1
  namespace: cluster-admin1
spec:
  nodeConfig:
    containerRuntime: containerd
...

Abschnitt nodeConfig.registryMirrors in der Clusterspezifikation verwenden

Da Sie die für den verwaltenden Cluster erstellten Secrets für Ihren Nutzercluster freigeben können, können Sie nodeConfig.registryMirrors aus dem verwaltenden Administrator- oder Hybridcluster verwenden, um die Registry-Spiegelung in der Clusterspezifikation für den Nutzercluster anzugeben.

So konfigurieren Sie einen Nutzercluster für die Verwendung derselben Registry-Spiegelung wie der Administratorcluster:

  1. Rufen Sie den Abschnitt nodeConfig.registryMirror einschließlich der Secret-Referenzen aus nodeConfig.registryMirrors der Administratorclusterressource ab:

    kubectl get cluster CLUSTER_NAME -n CLUSTER_NAMESPACE \
        --kubeconfig ADMIN_KUBECONFIG \
        -o yaml
    

    Ersetzen Sie Folgendes:

    • CLUSTER_NAME: der Name des Administrator- oder Hybridclusters, der den Nutzercluster verwaltet.

    • CLUSTER_NAMESPACE: der Namespace-Name für den verwaltenden Cluster.

    • ADMIN_KUBECONFIG: der Pfad der kubeconfig-Datei des verwaltenden Clusters.

  2. Fügen Sie die nodeConfig.registryMirrors Konfiguration aus dem Administratorcluster zur Clusterkonfigurationsdatei des Nutzerclusters hinzu.

    Der Abschnitt registryMirrors in der Konfigurationsdatei des Nutzerclusters sollte in etwa so aussehen:

    ---
    gcrKeyPath: /bmctl/bmctl-workspace/.sa-keys/my-gcp-project-anthos-baremetal-gcr.json
    sshPrivateKeyPath: /root/ssh-key/id_rsa
    ---
    apiVersion: v1
    kind: Namespace
    metadata:
      name: cluster-user1
    ---
    apiVersion: baremetal.cluster.gke.io/v1
    kind: Cluster
    metadata:
      name: user1
      namespace: cluster-user1
    spec:
      nodeConfig:
        containerRuntime: containerd
        registryMirrors:
        -   caCertSecretRef:
            name: the-secret-created-for-the-admin-cluster
            namespace: anthos-creds
          endpoint: https://172.18.0.20:5000
          hosts:
            -   somehost.io
            -   otherhost.io
          pullCredentialSecretRef:
            name: the-image-pull-creds-created-for-the-admin-cluster
            namespace: anthos-creds
    ...
    

Wenn Sie später Änderungen an der Konfiguration der Registry-Spiegelung für Ihren Nutzercluster vornehmen möchten, bearbeiten Sie nodeConfig.registryMirrors in der Konfigurationsdatei des Nutzerclusters und übernehmen Sie die Änderungen mit bmctl update.

Feld hosts

containerd prüft den Abschnitt hosts der Clusterkonfigurationsdatei, um zu ermitteln, welche Hosts lokal gespiegelt werden. Diese Hosts werden dem in der Clusterkonfigurationsdatei angegebenen Endpunkt der Registry-Spiegelung (registryMirror.endpoint) zugeordnet. In der Beispielkonfigurationsdatei aus dem vorherigen Abschnitt sind die im Abschnitt hosts aufgeführten öffentlichen Registries somehost.io und otherhost.io. Da diese öffentlichen Registries im Abschnitt hosts angezeigt werden, prüft containerd die private Registry-Spiegelung erst, wenn Pull-Anfragen für Images von somehost.io oder otherhost.io auftreten.

Angenommen, containerd empfängt einen Pull-Befehl an somehost.io/kubernetes-e2e-test-images/nautilus:1.0. Da somehost.io als einer der Hosts im Abschnitt hosts der Clusterkonfigurationsdatei aufgeführt ist, sucht containerd in der lokalen Registry-Spiegelung nach dem kubernetes-e2e-test-images/nautilus:1.0-Image. Wenn somehost.io nicht im Abschnitt hosts aufgeführt ist, weiß containerd nicht, dass eine lokale Spiegelung von somehost.io vorhanden ist. In diesem Fall prüft containerd nicht die Spiegelung auf das Image und ruft das Image einfach aus der öffentlichen Registry somehost.io ab.

Beachten Sie, dass Google Distributed Cloud standardmäßig Images von gcr.io spiegelt, sodass Sie gcr.io nicht als Host im Abschnitt hosts auflisten müssen.

Die Werte für hosts und endpoint dürfen sich nicht überschneiden. Das folgende Konfigurationsbeispiel zeigt einen Host, europe-docker.pkg.dev, der mit dem Domainteil des Endpunktwerts übereinstimmt. In diesem Fall müssen Sie keinen Wert für hosts angeben:

...
registryMirrors:
  ...
  endpoint: https://europe-docker.pkg.dev:5000/v2/cloud-data-fusion-images
  hosts:
    - europe-docker.pkg.dev
    ...

Feld gcrKeyPath

Wenn Sie möchten, dass Google Distributed Cloud automatisch Artifact Registry (gcr.io) verwendet, um Images abzurufen, die nicht in Ihrer lokalen Registry angezeigt werden, müssen Sie den Pfad zum Artifact Registry-Dienstkontoschlüssel angeben. Google Distributed Cloud haben keinen Mechanismus, um Schlüssel für andere öffentliche Registries bereitzustellen.

Wenn Sie nicht vorhaben, die Funktion zu verwenden, bei der Images aus gcr.io abgerufen werden, wenn sie nicht in Ihrer lokalen Registry angezeigt werden, müssen Sie keinen gcrKeyPath in der Cluster-Konfigurationsdatei hinzufügen.

Feld caCertPath

Wenn für Ihre Registry ein privates TLS-Zertifikat (Transport Layer Security) erforderlich ist, enthält dieses Feld den Pfad zur CA-Zertifikatsdatei des Server-Roots. Diese Zertifikatsdatei sollte sich auf der Administrator-Workstation befinden, also auf dem Computer, auf dem bmctl-Befehle ausgeführt werden. Wenn Ihre Registry kein privates TLS-Zertifikat erfordert, können Sie das Feld caCertPath leer lassen.

Feld pullCredentialConfigPath

Wenn Ihr Registry-Server keine Docker-Konfigurationsdatei zur Authentifizierung erfordert, können Sie das Feld pullCredentialConfigPath leer lassen. Beachten Sie, dass dies der Pfad zur Konfigurationsdatei auf dem Computer ist, auf dem bmctl-Befehle ausgeführt werden.

Registry-Spiegelung mit Nutzerclustern verwenden

Nutzercluster rufen Images nicht automatisch von einer Registry-Spiegelung ab, wenn ihr Administratorcluster für sie konfiguriert wurde. Wenn Sie Nutzercluster aus einer Registry-Spiegelung abrufen möchten, müssen Sie sie einzeln konfigurieren, wie unter Cluster für die Verwendung einer Registry-Spiegelung konfigurieren beschrieben.

Registry-Spiegelungs-Endpunkte, Zertifikate und Pull-Anmeldedaten aktualisieren

So aktualisieren Sie Endpunkte, Zertifikate oder Pull-Anmeldedaten für die Registry-Spiegelung:

  1. Aktualisieren Sie in der Clusterkonfigurationsdatei den Endpunkt, die CA-Zertifikatsdatei und den Pfad zur Konfigurationsdatei für die Pull-Anmeldedaten.

  2. Übernehmen Sie die Änderungen mit dem folgenden Befehl:

    bmctl update cluster -c CLUSTER_NAME --kubeconfig=ADMIN_KUBECONFIG
    

    Ersetzen Sie Folgendes:

    • CLUSTER_NAME durch den Namen des Clusters, den Sie aktualisieren möchten.

    • ADMIN_KUBECONFIG durch den Pfad der Konfigurationsdatei seines Administratorclusters.

Abrufen von Images aus der Registry-Spiegelung prüfen

Sie können feststellen, ob containerd Images aus Ihrer lokalen Registry abruft. Prüfen Sie dazu den Inhalt einer Datei config.toml:

  1. Melden Sie sich bei einem Knoten an und prüfen Sie den Inhalt der folgenden Datei: /etc/containerd/config.toml.

  2. Überprüfen Sie im Abschnitt plugins."io.containerd.grpc.v1.cri".registry.mirrors der Datei config.toml, ob Ihr Registry-Server im Feld endpoint aufgeführt ist. Hier ein Auszug aus der Beispieldatei config.toml, in der das Feld endpoint fett dargestellt wird:

    version = 2
    root = "/var/lib/containerd"
    state = "/run/containerd"
    ...
    [plugins."io.containerd.grpc.v1.cri".registry]
      [plugins."io.containerd.grpc.v1.cri".registry.configs]
        [plugins."io.containerd.grpc.v1.cri".registry.configs."gcr.io"]
          [plugins."io.containerd.grpc.v1.cri".registry.configs."privateregistry2.io".tls]
            ca_file = '/etc/containerd/certs.d/privateregistry2.io/ca.crt'
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."gcr.io"]
          endpoint = ["http://privateregistry.io", "https://privateregistry2.io"]
    ...
    

    Wenn Ihre Registry-Spiegelung im Feld endpoint angezeigt wird, ruft der Knoten Images aus Ihrer Registry-Spiegelung und nicht aus einer öffentlichen Registry ab.

Fehlerbehebung bei den Einstellungen der Registry-Spiegelung

Mit crictl, dem Befehlszeilentool der Container Runtime Interface, können Sie Ihre Registry-Einstellungen testen, indem Sie einzelne Image-Dateien herunterladen. Jede Image-Datei wird unabhängig mit einem aussagekräftigen Versionsstring getaggt. Beispiel: Das Image des Cluster API-Controllers wird mit der Google Distributed Cloud-Release-Version getaggt und das etcd-Image mit der entsprechenden etcd-Version.

Für die Version 1.31.200-gke.59 von Google Distributed Cloud für Bare Metal haben das Image des Cluster API-Controllers (cluster-api-controller) und das etcd-Image (etcd) die folgenden Tags:

  • cluster-api-controller:1.31.200-gke.59
  • etcd:v3.4.30-0-gke.1

Image aus der Registry-Spiegelung abrufen

Wenn Ihre Registry-Spiegelung keine Namespaces verwendet, rufen Sie ein Image mit dem folgenden Befehl ab:

crictl pull REGISTRY_IP:PORT/IMAGE_PATH:IMAGE_TAG

Image aus einer Registry-Spiegelung abrufen, die Namespaces verwendet

Wenn Ihre Registry-Spiegelung Namespaces verwendet, rufen Sie ein Image mit dem folgenden Befehl ab:

crictl pull REGISTRY_IP:PORT/NAMESPACE/IMAGE_PATH:IMAGE_TAG

Verwendung von v2 im Registry-Endpunkt

Wenn Ihre Registry benutzerdefinierte Namespaces verwendet, müssen Sie dem Namespace im Registry-Endpunkt (registryMirror.endpoint) in der Konfigurationsdatei des Clusters v2/ voranstellen. Wenn Sie keine Namespaces verwenden, verwenden Sie v2 nicht. Verwenden Sie v2 in keinem Fall im Wert des Flags --private-registry oder in Befehlen zum Abrufen von Images:

Ohne Namespaces

  • Gültig:
    • endpoint: https://172.18.0.20:5000
    • crictl pull 172.18.0.20:5000/anthos-baremetal-release/etcd:v3.4.30-0-gke.1
  • Ungültig:
    • endpoint: https://172.18.0.20:5000/v2
    • crictl pull 172.18.0.20:5000/v2/anthos-baremetal-release/etcd:v3.4.30-0-gke.1

Mit Namespaces

  • Gültig:
    • endpoint: https://172.18.0.21:5000/v2/namespace
    • crictl 172.18.0.21:5000/namespace/anthos-baremetal-release/etcd:v3.4.30-0-gke.1
  • Ungültig:
    • endpoint: https://172.18.0.21:5000/namespace
    • crictl pull 172.18.0.21:5000/v2/namespace/anthos-baremetal-release/etcd:v3.4.30-0-gke.1