Skip to main content
NetApp Solutions
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Private Bildregistrien Werden Erstellt

Beitragende

Für die meisten Bereitstellungen von Red hat OpenShift verwenden Sie eine öffentliche Registrierung wie "Quay.io" Oder "DockerHub" Erfüllt die meisten Kundenanforderungen. Es gibt jedoch Zeiten, in denen ein Kunde seine eigenen privaten oder angepassten Bilder hosten möchte.

Dieses Verfahren dokumentiert die Erstellung einer privaten Image-Registry, die durch ein persistentes Volume von Astra Trident und NetApp ONTAP unterstützt wird.

Hinweis Astra Control Center erfordert eine Registrierung, um die Bilder zu hosten, die die Astra-Container benötigen. Im folgenden Abschnitt werden die Schritte zum Einrichten einer privaten Registrierung auf dem Red hat OpenShift-Cluster sowie das Drücken der Bilder beschrieben, die für die Installation des Astra Control Center erforderlich sind.

Erstellen einer privaten Bildregistrierung

  1. Entfernen Sie die Standardanmerkung aus der aktuellen Standard-Storage-Klasse und versehen Sie die Trident-gestützte Storage-Klasse als Standard für das OpenShift-Cluster.

    [netapp-user@rhel7 ~]$ oc patch storageclass thin -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "false"}}}'
    storageclass.storage.k8s.io/thin patched
    
    [netapp-user@rhel7 ~]$ oc patch storageclass ocp-trident -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "true"}}}'
    storageclass.storage.k8s.io/ocp-trident patched
  2. Bearbeiten Sie den Operator imageregistry, indem Sie die folgenden Speicherparameter in eingeben spec Abschnitt.

    [netapp-user@rhel7 ~]$ oc edit configs.imageregistry.operator.openshift.io
    
    storage:
      pvc:
        claim:
  3. Geben Sie die folgenden Parameter in das ein spec Abschnitt zum Erstellen einer OpenShift-Route mit einem benutzerdefinierten Hostnamen. Speichern und beenden.

    routes:
      - hostname: astra-registry.apps.ocp-vmw.cie.netapp.com
        name: netapp-astra-route
    Hinweis Die obige Routenkonfiguration wird verwendet, wenn Sie einen benutzerdefinierten Hostnamen für Ihre Route wünschen. Wenn OpenShift eine Route mit einem Standard-Hostnamen erstellen soll, können Sie dem die folgenden Parameter hinzufügen spec Abschnitt: defaultRoute: true.
    Benutzerdefinierte TLS-Zertifikate

    Wenn Sie einen benutzerdefinierten Hostnamen für die Route verwenden, wird standardmäßig die TLS-Standardkonfiguration des OpenShift Ingress-Operators verwendet. Sie können der Route jedoch eine benutzerdefinierte TLS-Konfiguration hinzufügen. Um das zu tun, führen Sie folgende Schritte durch.

    1. Erstellen Sie ein Geheimnis mit den TLS-Zertifikaten und dem Schlüssel der Route.

      [netapp-user@rhel7 ~]$ oc create secret tls astra-route-tls -n openshift-image-registry –cert/home/admin/netapp-astra/tls.crt --key=/home/admin/netapp-astra/tls.key
    2. Bearbeiten Sie den Operator Imageregistry, und fügen Sie dem die folgenden Parameter hinzu spec Abschnitt.

      [netapp-user@rhel7 ~]$ oc edit configs.imageregistry.operator.openshift.io
      
      routes:
        - hostname: astra-registry.apps.ocp-vmw.cie.netapp.com
          name: netapp-astra-route
          secretName: astra-route-tls
  4. Bearbeiten Sie den Operator Imageregistry erneut, und ändern Sie den Verwaltungsstatus des Bedieners in das Managed Bundesland. Speichern und beenden.

    oc edit configs.imageregistry/cluster
    
    managementState: Managed
  5. Wenn alle Voraussetzungen erfüllt sind, werden PVCs, Pods und Services für die private Image Registry erstellt. In wenigen Minuten sollte die Registrierung betriebsbereit sein.

    [netapp-user@rhel7 ~]$oc get all -n openshift-image-registry
    
    NAME                                                   READY   STATUS      RESTARTS   AGE
    pod/cluster-image-registry-operator-74f6d954b6-rb7zr   1/1     Running     3          90d
    pod/image-pruner-1627257600-f5cpj                      0/1     Completed   0          2d9h
    pod/image-pruner-1627344000-swqx9                      0/1     Completed   0          33h
    pod/image-pruner-1627430400-rv5nt                      0/1     Completed   0          9h
    pod/image-registry-6758b547f-6pnj8                     1/1     Running     0          76m
    pod/node-ca-bwb5r                                      1/1     Running     0          90d
    pod/node-ca-f8w54                                      1/1     Running     0          90d
    pod/node-ca-gjx7h                                      1/1     Running     0          90d
    pod/node-ca-lcx4k                                      1/1     Running     0          33d
    pod/node-ca-v7zmx                                      1/1     Running     0          7d21h
    pod/node-ca-xpppp                                      1/1     Running     0          89d
    
    NAME                              TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)     AGE
    service/image-registry            ClusterIP   172.30.196.167   <none>        5000/TCP    15h
    service/image-registry-operator   ClusterIP   None             <none>        60000/TCP   90d
    
    NAME                     DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
    daemonset.apps/node-ca   6         6         6       6            6           kubernetes.io/os=linux   90d
    
    NAME                                              READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/cluster-image-registry-operator   1/1     1            1           90d
    deployment.apps/image-registry                    1/1     1            1           15h
    
    NAME                                                         DESIRED   CURRENT   READY   AGE
    replicaset.apps/cluster-image-registry-operator-74f6d954b6   1         1         1       90d
    replicaset.apps/image-registry-6758b547f                     1         1         1       76m
    replicaset.apps/image-registry-78bfbd7f59                    0         0         0       15h
    replicaset.apps/image-registry-7fcc8d6cc8                    0         0         0       80m
    replicaset.apps/image-registry-864f88f5b                     0         0         0       15h
    replicaset.apps/image-registry-cb47fffb                      0         0         0       10h
    
    NAME                                COMPLETIONS   DURATION   AGE
    job.batch/image-pruner-1627257600   1/1           10s        2d9h
    job.batch/image-pruner-1627344000   1/1           6s         33h
    job.batch/image-pruner-1627430400   1/1           5s         9h
    
    NAME                         SCHEDULE    SUSPEND   ACTIVE   LAST SCHEDULE   AGE
    cronjob.batch/image-pruner   0 0 * * *   False     0        9h              90d
    
    NAME                                     HOST/PORT                                           PATH   SERVICES         PORT    TERMINATION   WILDCARD
    route.route.openshift.io/public-routes   astra-registry.apps.ocp-vmw.cie.netapp.com          image-registry   <all>   reencrypt     None
  6. Wenn Sie die standardmäßigen TLS-Zertifikate für die Registrierungsroute Ingress Operator OpenShift verwenden, können Sie die TLS-Zertifikate mit dem folgenden Befehl abrufen.

    [netapp-user@rhel7 ~]$ oc extract secret/router-ca --keys=tls.crt -n openshift-ingress-operator
  7. Damit OpenShift-Knoten auf die Bilder zugreifen und sie aus der Registrierung ziehen können, fügen Sie die Zertifikate dem Docker-Client auf den OpenShift-Knoten hinzu. Erstellen Sie im eine Konfigurationskarte openshift-config Namespace mit den TLS-Zertifikaten und patchen Sie ihn mit der Konfiguration des Cluster-Images, um das Zertifikat vertrauenswürdig zu machen.

    [netapp-user@rhel7 ~]$ oc create configmap astra-ca -n openshift-config --from-file=astra-registry.apps.ocp-vmw.cie.netapp.com=tls.crt
    
    [netapp-user@rhel7 ~]$ oc patch image.config.openshift.io/cluster --patch '{"spec":{"additionalTrustedCA":{"name":"astra-ca"}}}' --type=merge
  8. Die interne OpenShift-Registrierung wird durch Authentifizierung gesteuert. Alle OpenShift-Benutzer können auf die OpenShift-Registrierung zugreifen, aber die Vorgänge, die der angemeldete Benutzer durchführen kann, sind von den Benutzerberechtigungen abhängig.

    1. Damit ein Benutzer oder eine Gruppe von Benutzern Bilder aus der Registrierung ziehen kann, müssen den Benutzern die Rolle Registry-Viewer zugewiesen sein.

      [netapp-user@rhel7 ~]$ oc policy add-role-to-user registry-viewer ocp-user
      
      [netapp-user@rhel7 ~]$ oc policy add-role-to-group registry-viewer ocp-user-group
    2. Damit ein Benutzer oder eine Benutzergruppe Bilder schreiben oder übertragen kann, muss dem/den Benutzer die Rolle des Registrierungs-Editors zugewiesen sein.

      [netapp-user@rhel7 ~]$ oc policy add-role-to-user registry-editor ocp-user
      
      [netapp-user@rhel7 ~]$ oc policy add-role-to-group registry-editor ocp-user-group
  9. Damit OpenShift-Knoten auf die Registrierung zugreifen und die Bilder per Push oder Pull übertragen können, müssen Sie einen Pull Secret konfigurieren.

    [netapp-user@rhel7 ~]$ oc create secret docker-registry astra-registry-credentials --docker-server=astra-registry.apps.ocp-vmw.cie.netapp.com --docker-username=ocp-user --docker-password=password
  10. Dieses Pull-Secret kann dann auf Dienstkonten gepatcht oder in der entsprechenden Pod-Definition referenziert werden.

    1. Führen Sie den folgenden Befehl aus, um ihn auf Dienstkonten zu patchen.

      [netapp-user@rhel7 ~]$ oc secrets link <service_account_name> astra-registry-credentials --for=pull
    2. Um den Pull-Secret in der Pod-Definition zu referenzieren, fügen Sie dem den folgenden Parameter hinzu spec Abschnitt.

      imagePullSecrets:
        - name: astra-registry-credentials
  11. Führen Sie die folgenden Schritte aus, um ein Bild von den Arbeitsstationen getrennt vom OpenShift-Knoten zu schieben oder zu ziehen.

    1. Fügen Sie die TLS-Zertifikate zum Docker-Client hinzu.

      [netapp-user@rhel7 ~]$ sudo mkdir /etc/docker/certs.d/astra-registry.apps.ocp-vmw.cie.netapp.com
      
      [netapp-user@rhel7 ~]$ sudo cp /path/to/tls.crt /etc/docker/certs.d/astra-registry.apps.ocp-vmw.cie.netapp.com
    2. Melden Sie sich über den oc-Anmeldebefehl bei OpenShift an.

      [netapp-user@rhel7 ~]$ oc login --token=sha256~D49SpB_lesSrJYwrM0LIO-VRcjWHu0a27vKa0 --server=https://api.ocp-vmw.cie.netapp.com:6443
    3. Melden Sie sich mit den OpenShift-Benutzeranmeldeinformationen über den Befehl podman/Docker bei der Registrierung an.

      Podman
      [netapp-user@rhel7 ~]$ podman login astra-registry.apps.ocp-vmw.cie.netapp.com -u kubeadmin -p $(oc whoami -t) --tls-verify=false

      + HINWEIS: Wenn Sie verwenden kubeadmin Benutzer, um sich bei der privaten Registrierung anzumelden, dann Token statt Passwort verwenden.

      docker
      [netapp-user@rhel7 ~]$ docker login astra-registry.apps.ocp-vmw.cie.netapp.com -u kubeadmin -p $(oc whoami -t)

      + HINWEIS: Wenn Sie verwenden kubeadmin Benutzer, um sich bei der privaten Registrierung anzumelden, dann Token statt Passwort verwenden.

    4. Drücken oder ziehen Sie die Bilder.

      Podman
      [netapp-user@rhel7 ~]$ podman push astra-registry.apps.ocp-vmw.cie.netapp.com/netapp-astra/vault-controller:latest
      [netapp-user@rhel7 ~]$ podman pull astra-registry.apps.ocp-vmw.cie.netapp.com/netapp-astra/vault-controller:latest
      docker
      [netapp-user@rhel7 ~]$ docker push astra-registry.apps.ocp-vmw.cie.netapp.com/netapp-astra/vault-controller:latest
      [netapp-user@rhel7 ~]$ docker pull astra-registry.apps.ocp-vmw.cie.netapp.com/netapp-astra/vault-controller:latest