Erstellen privater Image-Registrierungen
Für die meisten Bereitstellungen von Red Hat OpenShift wird ein öffentliches Register wie "Quay.io" oder "DockerHub" erfüllt die Bedürfnisse der meisten Kunden. Es gibt jedoch Fälle, in denen ein Kunde seine eigenen privaten oder benutzerdefinierten Bilder hosten möchte.
Dieses Verfahren dokumentiert die Erstellung einer privaten Image-Registrierung, die durch ein persistentes Volume von Trident und NetApp ONTAP unterstützt wird.
|
Trident Protect erfordert ein Register zum Hosten der von den Astra Containern benötigten Bilder. Der folgende Abschnitt beschreibt die Schritte zum Einrichten eines privaten Registers auf einem Red Hat OpenShift-Cluster und zum Übertragen der Images, die zur Unterstützung der Installation von Trident Protect erforderlich sind. |
Erstellen einer privaten Bildregistrierung
-
Entfernen Sie die Standardannotation aus der aktuellen Standardspeicherklasse und kommentieren Sie die von Trident unterstützte Speicherklasse als Standard für den 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
-
Bearbeiten Sie den Imageregistry-Operator, indem Sie die folgenden Speicherparameter in das Feld
spec
Abschnitt.[netapp-user@rhel7 ~]$ oc edit configs.imageregistry.operator.openshift.io storage: pvc: claim:
-
Geben Sie die folgenden Parameter in das
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
Die obige Routenkonfiguration wird verwendet, wenn Sie einen benutzerdefinierten Hostnamen für Ihre Route wünschen. Wenn Sie möchten, dass OpenShift eine Route mit einem Standardhostnamen erstellt, können Sie die folgenden Parameter zum spec
Abschnitt:defaultRoute: true
. -
Bearbeiten Sie den Imageregistry-Operator erneut und ändern Sie den Verwaltungsstatus des Operators in
Managed
Zustand. Speichern und beenden.oc edit configs.imageregistry/cluster managementState: Managed
-
Wenn alle Voraussetzungen erfüllt sind, werden PVCs, Pods und Dienste für die private Image-Registrierung erstellt. In wenigen Minuten sollte die Registrierung verfügbar 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
-
Wenn Sie die Standard-TLS-Zertifikate für die OpenShift-Registrierungsroute des Ingress-Operators 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
-
Um OpenShift-Knoten den Zugriff auf die Images und deren Abruf aus der Registrierung zu ermöglichen, fügen Sie die Zertifikate dem Docker-Client auf den OpenShift-Knoten hinzu. Erstellen Sie eine Konfigurationskarte im
openshift-config
Namespace mithilfe der TLS-Zertifikate und patchen Sie es in die Cluster-Image-Konfiguration, 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
-
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 ausführen kann, hängen von den Benutzerberechtigungen ab.
-
Um einem Benutzer oder einer Gruppe von Benutzern das Abrufen von Bildern aus der Registrierung zu ermöglichen, muss dem/den Benutzer(n) die Rolle „Registrierungsbetrachter“ 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
-
Um einem Benutzer oder einer Benutzergruppe das Schreiben oder Pushen von Bildern zu ermöglichen, muss dem/den Benutzer(n) die Rolle des Registrierungseditors 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
-
-
Damit OpenShift-Knoten auf die Registrierung zugreifen und die Bilder pushen oder pullen können, müssen Sie ein Pull-Geheimnis 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
-
Dieses Pull-Geheimnis kann dann in Servicekonten gepatcht oder in der entsprechenden Pod-Definition referenziert werden.
-
Um es auf Dienstkonten zu patchen, führen Sie den folgenden Befehl aus.
[netapp-user@rhel7 ~]$ oc secrets link <service_account_name> astra-registry-credentials --for=pull
-
Um das Pull-Geheimnis in der Pod-Definition zu referenzieren, fügen Sie den folgenden Parameter zum
spec
Abschnitt.imagePullSecrets: - name: astra-registry-credentials
-
-
Führen Sie die folgenden Schritte aus, um ein Image von anderen Workstations als dem OpenShift-Knoten zu pushen oder zu pullen.
-
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
-
Melden Sie sich mit dem Befehl „oc login“ bei OpenShift an.
[netapp-user@rhel7 ~]$ oc login --token=sha256~D49SpB_lesSrJYwrM0LIO-VRcjWHu0a27vKa0 --server=https://api.ocp-vmw.cie.netapp.com:6443
-
Melden Sie sich mit den OpenShift-Benutzeranmeldeinformationen und dem Befehl „podman/docker“ beim Register 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
kubeadmin
Benutzer, um sich beim privaten Register anzumelden, verwenden Sie dann ein Token anstelle eines Kennworts.Docker[netapp-user@rhel7 ~]$ docker login astra-registry.apps.ocp-vmw.cie.netapp.com -u kubeadmin -p $(oc whoami -t)
+ HINWEIS: Wenn Sie
kubeadmin
Benutzer, um sich beim privaten Register anzumelden, verwenden Sie dann ein Token anstelle eines Kennworts. -
Schieben 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
-