Rechercher

3.7. Configuration du registre pour vSphere

download PDF

3.7.1. Registre d'images supprimé lors de l'installation

Sur les plateformes qui ne fournissent pas de stockage d'objets partageables, l'opérateur de registre d'images OpenShift s'amorce lui-même en tant que Removed. Cela permet à openshift-installer de réaliser des installations sur ces types de plateformes.

Après l'installation, vous devez modifier la configuration de l'opérateur du registre des images pour faire passer le site managementState de Removed à Managed.

Note

La console Prometheus fournit une alerte ImageRegistryRemoved, par exemple :

"Image Registry has been removed. ImageStreamTags il se peut que les fichiers BuildConfigs et DeploymentConfigs qui font référence à ImageStreamTags ne fonctionnent pas comme prévu. Veuillez configurer le stockage et mettre à jour la configuration à l'état Managed en éditant configs.imageregistry.operator.openshift.io."

3.7.2. Modification de l'état de gestion du registre d'images

Pour démarrer le registre d'images, vous devez modifier la configuration de l'opérateur du registre d'images managementState de Removed à Managed.

Procédure

  • Modifier la configuration de l'opérateur du registre d'images managementState de Removed à Managed. Par exemple :

    $ oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"managementState":"Managed"}}'

3.7.3. Configuration du stockage du registre d'images

L'opérateur de registre d'images n'est pas disponible initialement pour les plates-formes qui ne fournissent pas de stockage par défaut. Après l'installation, vous devez configurer votre registre pour utiliser le stockage afin que l'opérateur de registre soit disponible.

Des instructions sont données pour la configuration d'un volume persistant, qui est nécessaire pour les clusters de production. Le cas échéant, des instructions sont fournies pour configurer un répertoire vide comme emplacement de stockage, ce qui n'est possible que pour les clusters de non-production.

Des instructions supplémentaires sont fournies pour permettre au registre d'images d'utiliser des types de stockage en bloc en utilisant la stratégie de déploiement Recreate lors des mises à niveau.

3.7.3.1. Configuration du stockage de registre pour VMware vSphere

En tant qu'administrateur de cluster, vous devez, après l'installation, configurer votre registre pour utiliser le stockage.

Conditions préalables

  • Permissions de l'administrateur du cluster.
  • Un cluster sur VMware vSphere.
  • Stockage persistant provisionné pour votre cluster, tel que Red Hat OpenShift Data Foundation.

    Important

    OpenShift Container Platform prend en charge l'accès ReadWriteOnce pour le stockage du registre d'images lorsque vous n'avez qu'une seule réplique. L'accès ReadWriteOnce nécessite également que le registre utilise la stratégie de déploiement Recreate. Pour déployer un registre d'images qui prend en charge la haute disponibilité avec deux répliques ou plus, l'accès ReadWriteMany est requis.

  • Doit avoir une capacité de "100Gi".
Important

Les tests montrent des problèmes avec l'utilisation du serveur NFS sur RHEL comme backend de stockage pour les services principaux. Cela inclut OpenShift Container Registry et Quay, Prometheus pour la surveillance du stockage, et Elasticsearch pour la journalisation du stockage. Par conséquent, il n'est pas recommandé d'utiliser le serveur NFS de RHEL pour sauvegarder les PV utilisés par les services principaux.

D'autres implémentations NFS sur le marché peuvent ne pas avoir ces problèmes. Contactez le vendeur de l'implémentation NFS pour plus d'informations sur les tests qui ont pu être réalisés avec ces composants de base d'OpenShift Container Platform.

Procédure

  1. Pour configurer votre registre afin qu'il utilise le stockage, modifiez l'adresse spec.storage.pvc dans la ressource configs.imageregistry/cluster.

    Note

    Lorsque vous utilisez un espace de stockage partagé, vérifiez vos paramètres de sécurité afin d'empêcher tout accès extérieur.

  2. Vérifiez que vous n'avez pas de pod de registre :

    $ oc get pod -n openshift-image-registry -l docker-registry=default

    Exemple de sortie

    No resourses found in openshift-image-registry namespace

    Note

    Si vous avez un pod de registre dans votre sortie, il n'est pas nécessaire de poursuivre cette procédure.

  3. Vérifier la configuration du registre :

    $ oc edit configs.imageregistry.operator.openshift.io

    Exemple de sortie

    storage:
      pvc:
        claim: 1

    1
    Laissez le champ claim vide pour permettre la création automatique d'une réclamation de volume persistant (PVC) image-registry-storage. Le PVC est généré en fonction de la classe de stockage par défaut. Cependant, il faut savoir que la classe de stockage par défaut peut fournir des volumes ReadWriteOnce (RWO), tels qu'un RADOS Block Device (RBD), ce qui peut poser des problèmes lors de la réplication sur plusieurs répliques.
  4. Vérifier l'état de clusteroperator:

    $ oc get clusteroperator image-registry

    Exemple de sortie

    NAME             VERSION                              AVAILABLE   PROGRESSING   DEGRADED   SINCE   MESSAGE
    image-registry   4.7                                  True        False         False      6h50m

3.7.3.2. Configuration du stockage pour le registre d'images dans les clusters de non-production

Vous devez configurer le stockage pour l'opérateur de registre d'images. Pour les clusters de non-production, vous pouvez définir le registre d'images dans un répertoire vide. Dans ce cas, toutes les images seront perdues si vous redémarrez le registre.

Procédure

  • Pour définir le stockage du registre d'images dans un répertoire vide :

    $ oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"storage":{"emptyDir":{}}}}'
    Avertissement

    Configurez cette option pour les clusters de non-production uniquement.

    Si vous exécutez cette commande avant que l'opérateur de registre d'images n'initialise ses composants, la commande oc patch échoue avec l'erreur suivante :

    Error from server (NotFound): configs.imageregistry.operator.openshift.io "cluster" not found

    Attendez quelques minutes et exécutez à nouveau la commande.

3.7.3.3. Configuration du stockage dans le registre de blocs pour VMware vSphere

Pour permettre au registre d'images d'utiliser des types de stockage en bloc tels que vSphere Virtual Machine Disk (VMDK) lors des mises à niveau en tant qu'administrateur de cluster, vous pouvez utiliser la stratégie de déploiement Recreate.

Important

Les volumes de stockage en bloc sont pris en charge mais ne sont pas recommandés pour une utilisation avec le registre d'images sur des clusters de production. Une installation où le registre est configuré sur un stockage en bloc n'est pas hautement disponible car le registre ne peut pas avoir plus d'une réplique.

Procédure

  1. Pour définir le stockage du registre d'images comme un type de stockage en bloc, corrigez le registre afin qu'il utilise la stratégie de déploiement Recreate et qu'il s'exécute avec la seule réplique 1:

    $ oc patch config.imageregistry.operator.openshift.io/cluster --type=merge -p '{"spec":{"rolloutStrategy":"Recreate","replicas":1}}'
  2. Provisionnez le PV pour le périphérique de stockage en bloc et créez un PVC pour ce volume. Le volume bloc demandé utilise le mode d'accès ReadWriteOnce (RWO).

    1. Créez un fichier pvc.yaml avec le contenu suivant pour définir un objet VMware vSphere PersistentVolumeClaim:

      kind: PersistentVolumeClaim
      apiVersion: v1
      metadata:
        name: image-registry-storage 1
        namespace: openshift-image-registry 2
      spec:
        accessModes:
        - ReadWriteOnce 3
        resources:
          requests:
            storage: 100Gi 4
      1
      Un nom unique qui représente l'objet PersistentVolumeClaim.
      2
      L'espace de noms de l'objet PersistentVolumeClaim, qui est openshift-image-registry.
      3
      Le mode d'accès de la demande de volume persistant. Avec ReadWriteOnce, le volume peut être monté avec des autorisations de lecture et d'écriture par un seul nœud.
      4
      Taille de la demande de volume persistant.
    2. Créer l'objet PersistentVolumeClaim à partir du fichier :

      $ oc create -f pvc.yaml -n openshift-image-registry
  3. Modifiez la configuration du registre de manière à ce qu'elle fasse référence au PVC correct :

    $ oc edit config.imageregistry.operator.openshift.io -o yaml

    Exemple de sortie

    storage:
      pvc:
        claim: 1

    1
    La création d'un PVC personnalisé vous permet de laisser le champ claim vide pour la création automatique par défaut d'un PVC image-registry-storage.

Pour obtenir des instructions sur la configuration du stockage du registre afin qu'il référence le PVC correct, voir Configuration du registre pour vSphere.

3.7.3.4. Configurer l'opérateur de registre d'images pour utiliser le stockage Ceph RGW avec Red Hat OpenShift Data Foundation

Red Hat OpenShift Data Foundation intègre plusieurs types de stockage que vous pouvez utiliser avec le registre d'images interne :

  • Ceph, un système de fichiers partagé et distribué et un système de stockage d'objets sur site
  • NooBaa, une passerelle d'objets multicloud

Ce document décrit la procédure à suivre pour configurer le registre d'images afin d'utiliser le stockage Ceph RGW.

Conditions préalables

  • Vous avez accès au cluster en tant qu'utilisateur ayant le rôle cluster-admin.
  • Vous avez accès à la console web de OpenShift Container Platform.
  • Vous avez installé le CLI oc.
  • Vous avez installé l'opérateur OpenShift Data Foundation pour fournir le stockage d'objets et le stockage d'objets Ceph RGW.

Procédure

  1. Créez la demande de seau d'objets à l'aide de la classe de stockage ocs-storagecluster-ceph-rgw. Par exemple :

    cat <<EOF | oc apply -f -
    apiVersion: objectbucket.io/v1alpha1
    kind: ObjectBucketClaim
    metadata:
      name: rgwtest
      namespace: openshift-storage
    spec:
      storageClassName: ocs-storagecluster-ceph-rgw
      generateBucketName: rgwtest
    EOF
  2. Obtenez le nom du seau en entrant la commande suivante :

    $ bucket_name=$(oc get obc -n openshift-storage rgwtest -o jsonpath='{.spec.bucketName}')
  3. Obtenez les informations d'identification AWS en entrant les commandes suivantes :

    $ AWS_ACCESS_KEY_ID=$(oc get secret -n openshift-storage rgwtest -o yaml | grep -w "AWS_ACCESS_KEY_ID:" | head -n1 | awk '{print $2}' | base64 --decode)
    $ AWS_SECRET_ACCESS_KEY=$(oc get secret -n openshift-storage rgwtest -o yaml | grep -w "AWS_SECRET_ACCESS_KEY:" | head -n1 | awk '{print $2}' | base64 --decode)
  4. Créez le secret image-registry-private-configuration-user avec les informations d'identification AWS pour le nouveau seau sous openshift-image-registry project en entrant la commande suivante :

    $ oc create secret generic image-registry-private-configuration-user --from-literal=REGISTRY_STORAGE_S3_ACCESSKEY=${AWS_ACCESS_KEY_ID} --from-literal=REGISTRY_STORAGE_S3_SECRETKEY=${AWS_SECRET_ACCESS_KEY} --namespace openshift-image-registry
  5. Créez une route de cryptage pour Ceph RGW en entrant la commande suivante :

    $ oc create route reencrypt <route_name> --service=rook-ceph-rgw-ocs-storagecluster-cephobjectstore --port=https -n openshift-storage
    1. Obtenez l'hôte de la route en entrant la commande suivante :

      route_host=$(oc get route <route_name> -n openshift-storage -o=jsonpath='{.spec.host}')
  6. Créez une carte de configuration qui utilise un certificat d'entrée en entrant les commandes suivantes :

    $ oc extract secret/router-certs-default  -n openshift-ingress  --confirm
    $ oc create configmap image-registry-s3-bundle --from-file=ca-bundle.crt=./tls.crt  -n openshift-config
  7. Configurez le registre d'images pour utiliser le stockage d'objets Ceph RGW en entrant la commande suivante :

    $ oc patch config.image/cluster -p '{"spec":{"managementState":"Managed","replicas":2,"storage":{"managementState":"Unmanaged","s3":{"bucket":'\"${bucket_name}\"',"region":"us-east-1","regionEndpoint":'\"https://${route_host}\"',"virtualHostedStyle":false,"encrypt":false,"trustedCA":{"name":"image-registry-s3-bundle"}}}}}' --type=merge

3.7.3.5. Configurer l'opérateur de registre d'images pour utiliser le stockage Noobaa avec Red Hat OpenShift Data Foundation

Red Hat OpenShift Data Foundation intègre plusieurs types de stockage que vous pouvez utiliser avec le registre d'images interne :

  • Ceph, un système de fichiers partagé et distribué et un système de stockage d'objets sur site
  • NooBaa, une passerelle d'objets multicloud

Ce document décrit la procédure à suivre pour configurer le registre d'images afin d'utiliser le stockage Noobaa.

Conditions préalables

  • Vous avez accès au cluster en tant qu'utilisateur ayant le rôle cluster-admin.
  • Vous avez accès à la console web de OpenShift Container Platform.
  • Vous avez installé le CLI oc.
  • Vous avez installé l'opérateur OpenShift Data Foundation pour fournir le stockage d'objets et le stockage d'objets Noobaa.

Procédure

  1. Créez la demande de seau d'objets à l'aide de la classe de stockage openshift-storage.noobaa.io. Par exemple :

    cat <<EOF | oc apply -f -
    apiVersion: objectbucket.io/v1alpha1
    kind: ObjectBucketClaim
    metadata:
      name: noobaatest
      namespace: openshift-storage
    spec:
      storageClassName: openshift-storage.noobaa.io
      generateBucketName: noobaatest
    EOF
  2. Obtenez le nom du seau en entrant la commande suivante :

    $ bucket_name=$(oc get obc -n openshift-storage noobaatest -o jsonpath='{.spec.bucketName}')
  3. Obtenez les informations d'identification AWS en entrant les commandes suivantes :

    $ AWS_ACCESS_KEY_ID=$(oc get secret -n openshift-storage noobaatest -o yaml | grep -w "AWS_ACCESS_KEY_ID:" | head -n1 | awk '{print $2}' | base64 --decode)
    $ AWS_SECRET_ACCESS_KEY=$(oc get secret -n openshift-storage noobaatest -o yaml | grep -w "AWS_SECRET_ACCESS_KEY:" | head -n1 | awk '{print $2}' | base64 --decode)
  4. Créez le secret image-registry-private-configuration-user avec les informations d'identification AWS pour le nouveau seau sous openshift-image-registry project en entrant la commande suivante :

    $ oc create secret generic image-registry-private-configuration-user --from-literal=REGISTRY_STORAGE_S3_ACCESSKEY=${AWS_ACCESS_KEY_ID} --from-literal=REGISTRY_STORAGE_S3_SECRETKEY=${AWS_SECRET_ACCESS_KEY} --namespace openshift-image-registry
  5. Obtenez l'hôte de la route en entrant la commande suivante :

    $ route_host=$(oc get route s3 -n openshift-storage -o=jsonpath='{.spec.host}')
  6. Créez une carte de configuration qui utilise un certificat d'entrée en entrant les commandes suivantes :

    $ oc extract secret/router-certs-default  -n openshift-ingress  --confirm
    $ oc create configmap image-registry-s3-bundle --from-file=ca-bundle.crt=./tls.crt  -n openshift-config
  7. Configurez le registre d'images pour utiliser le stockage d'objets Nooba en entrant la commande suivante :

    $ oc patch config.image/cluster -p '{"spec":{"managementState":"Managed","replicas":2,"storage":{"managementState":"Unmanaged","s3":{"bucket":'\"${bucket_name}\"',"region":"us-east-1","regionEndpoint":'\"https://${route_host}\"',"virtualHostedStyle":false,"encrypt":false,"trustedCA":{"name":"image-registry-s3-bundle"}}}}}' --type=merge

3.7.4. Configurer l'opérateur de registre d'images pour utiliser le stockage CephFS avec Red Hat OpenShift Data Foundation

Red Hat OpenShift Data Foundation intègre plusieurs types de stockage que vous pouvez utiliser avec le registre d'images interne :

  • Ceph, un système de fichiers partagé et distribué et un système de stockage d'objets sur site
  • NooBaa, une passerelle d'objets multicloud

Ce document décrit la procédure à suivre pour configurer le registre d'images afin d'utiliser le stockage CephFS.

Note

CephFS utilise le stockage par revendication de volume persistant (PVC). Il n'est pas recommandé d'utiliser les PVC pour le stockage des registres d'images s'il existe d'autres options, telles que Ceph RGW ou Noobaa.

Conditions préalables

  • Vous avez accès au cluster en tant qu'utilisateur ayant le rôle cluster-admin.
  • Vous avez accès à la console web de OpenShift Container Platform.
  • Vous avez installé le CLI oc.
  • Vous avez installé OpenShift Data Foundation Operator pour fournir le stockage d'objets et le stockage de fichiers CephFS.

Procédure

  1. Créez un PVC pour utiliser la classe de stockage cephfs. Par exemple :

    cat <<EOF | oc apply -f -
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
     name: registry-storage-pvc
     namespace: openshift-image-registry
    spec:
     accessModes:
     - ReadWriteMany
     resources:
       requests:
         storage: 100Gi
     storageClassName: ocs-storagecluster-cephfs
    EOF
  2. Configurez le registre d'images pour utiliser le système de stockage de fichiers CephFS en entrant la commande suivante :

    $ oc patch config.image/cluster -p '{"spec":{"managementState":"Managed","replicas":2,"storage":{"managementState":"Unmanaged","pvc":{"claim":"registry-storage-pvc"}}}}' --type=merge

3.7.5. Ressources complémentaires

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.